你将会看到:
将不会看到:
你可能需要基本的 GNU/Linux 知识
systemd-boot 的前身是 gummiboot, 这是一个为使用 UEFI 引导的系统而设计的软件,它的配置非常简单,致力于提供一个精简的引导程序(所谓的 ‘just works’) 来替代 GRUB.
注意,你需要自行了解你的计算机是否可以使用 UEFI, 尽管现代的多数计算机都已经在使用 UEFI 进行系统引导,但检查你的计算机是否支持仍然是必要的步骤。值得一提的是互联网上有许多简便的方法来判断你的计算机是否支持 UEFI, 在此不再赘述。
单独下载并安装 systemd-boot 通常是不必要的,因为多数发行版已经默认利用 systemd 代替了 SysV, systemd-boot 作为 systemd的一部分已经随之安装了。对于 Arch Linux 来说,systemd 是默认安装好的,这意味着 systemd-boot 也是安装在系统内的,只需将引导程序复制到 boot 分区,并且简单地配置即可使用。
假设你已经使用安装媒介或者 netboot 进入了 live 环境,这里跳过了硬盘分区的步骤,如果你需要,请参考 Arch wiki,在使用 pacstrap 安装脚本之前,你需要将 EFI 分区挂载在 /boot 下。假设你的硬盘分区如下所示:
# fdisk -l
Disk /dev/sda:
Disklabel type: gpt
Device
/dev/sdap1 EFI System
/dev/sdap2 Linux filesystem
注意,systemd-boot 只支持文件系统为 FAT32 的 EFI 分区
要将 EFI 分区挂载在 /boot 下,使用 mount 指令,在 tty 界面输入:
# mount /dev/sdap2 /mnt
# mkdir /mnt/boot
# mount /dev/sdap1 /mnt/boot
接下来使用 pacstrap 安装系统:
# pacstrap /mnt base base-devel
安装 systemd-boot 到 EFI 分区中:
# bootctl --path=/boot$esp install
执行完成后,/boot 目录下的文件(通常来说)如下所示:
/boot
├── EFI
│ ├── BOOT
│ │ └── BOOTX64.EFI
│ └── systemd
│ └── systemd-bootx64.efi
├── initramfs-linux-fallback.img
├── initramfs-linux.img
├── intel-ucode.img
├── loader
│ └── entries
└── vmlinuz-linux
你需要创建两个配置文件,分别是:
引导程序的配置文件 /boot/loader/loader.conf
以及
增加的启动选项 /boot/loader/entries/arch.conf
文件内容如下:
#后的内容代表注释,你并不需要将其内容保存在文件中
/boot/loader/loader.conf
default arch #默认引导的系统,注意这里的 arch 对应的是 arch.conf
timeout 1 #在引导界面停留的时间,如果你想引导不止一个系统,不应将这一项设置成0
editor 0 #这将会禁用编辑内和参数的功能,默认是开启的,如果你的计算机可能被他人使用,将该功能关闭是推荐的选择
此外,你还可以修改其他一些选项的参数,尽管他们往往不需要特别指定值,输入 man loader.conf 以查看更多
/boot/loader/entries/arch.conf
title Arch Linux #这是启动选项的名称,将会出现在引导界面
linux /vmlinuz-linux #压缩的可引导内核,用于系统启动
initrd /intel-ucode.img #由芯片制造商提供的对 CPU 微码的稳定性和安全性更新,按照 Arch wiki 的说法
#它应当是' first initrd in the bootloader config file'
initrd /initramfs-linux.img #为内核提供的一个临时的文件系统
options root=/dev/sdap2 rw #/root 挂载的位置,可以由 LABEL, PARTUUID 或者 UUID识别,此处使用了块设备的路径
注意,微码需要手动安装,对于 Intel 和 AMD, 对应的包分别是: intel-ucode 和 amd-ucode, 利用 pacman 安装后会出现在 /boot 下,如上文所示。
完成了以上步骤,systemd-boot 就已经配置好了,你可以继续安装 Arch Linux了。
https://wiki.archlinux.org/index.php/Systemd-boot
https://wiki.archlinux.org/index.php/Microcode
https://blog.linuxserver.io/2018/05/17/how-to-configure-systemd-boot/https://blog.linuxserver.io/2018/05/17/how-to-configure-systemd-boot/