Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1132993
  • 博文数量: 759
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 5136
  • 用 户 组: 普通用户
  • 注册时间: 2016-11-11 09:12
个人简介

To be a better coder

文章分类

全部博文(759)

文章存档

2020年(101)

2019年(214)

2018年(216)

2017年(146)

2016年(82)

分类: LINUX

2020-05-08 09:57:43

https://zhuanlan.zhihu.com/p/20623053?refer=archlinux

顺便先试一下EFISTUB。这个更早,11年Linux 3.3加入。简单来说,它让kernel自己成为EFI bootloader,从而不需要再安装别的bootloader(如grub),而直接从EFI BIOS引导。

安装方法非常简单:

  1. 把kernel和initrd复制到ESP分区(硬盘的第一个分区)。如果把ESP分区挂载到/boot,pacman就可以把相关文件直接安装进去。
  2. 用root执行:
efibootmgr -d /dev/sda -p 1 -c -L "Arch Linux" -l /vmlinuz-linux -u "root=/dev/sda2 rw initrd=/initramfs-linux.img"

好了,重启进BIOS选择引导顺序就成了。比安装grub步骤更少。

理论上也可以不用efibootmgr,在BIOS里直接添加引导项。但我不知道怎么在BIOS里输入命令行参数...


说回systemd-boot。安装也不复杂。

  1. 把ESP分区挂载到/boot。
  2. 用root执行bootctl install。它会把systemd-boot复制到ESP,并且设置成系统缺省bootloader。(一贯的霸道总裁作风)。
  3. 编辑/boot/loader/loader.conf,设置default和timeout。如果不设置timeout,它会直接引导default,除非你按住空格键才会显示菜单。
  4. 编辑/boot/loader/entries/arch.conf:
title archlinux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=/dev/sda2 rw 

好了。

systemd-boot的优点(相比grub):

  1. 单文件,安装简单。
  2. 引导项是独立的配置文件,因此每个发行版只需要把自己的文件复制到/boot/loader/entries,不会互相覆盖。

可是问题来了:systemd-boot只能引导两种东西:

  1. Linux kernel
  2. 别的EFI bootloader

而前面说了,Linux kernel本身就是EFI bootloader。所以这东西就是个选择EFI bootloader的菜单,和BIOS自带的菜单功能差不多。唯一好处是,编辑配置文件毕竟比操作efibootmgr简单。可是,rEFInd可以0配置完成同样功能。所以说,systemd搞这个有啥用啊... 倒是前面被我们嫌弃的grub反而不可替代,因为它可以loopback引导live iso。






参考:
  1. wiki.archlinux.org/inde
  2. EFISTUB - ArchWiki
发布于 2016-03-05
阅读(849) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~