使用systemd-boot管理统一内核镜像

本教程使用mkinitcpio,EndeavourOS用户默认使用Dracut,请自行参阅wiki

情况一:两系统在不同硬盘,使用systemd-boot引导

添加启动参数

1
2
3
4
5
su
mkdir /etc/cmdline.d
touch /etc/cmdline.d/root.conf
echo root=$(cat /etc/fstab | grep ext4 | awk '{ print $1 }') rw >> /etc/cmdline.d/root.conf
cat /etc/cmdline.d/root.conf

文件内容如下所示

1
root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw

修改.preset文件

1
2
su
vim /etc/mkinitcpio.d/linux.preset #zen内核则为/etc/mkinitcpio.d/linux-zen.preset

注释掉image字样的行,取消注释uki字样的行,示例文件如下所示
splash是启动时闪过的图片,默认是archlinux的logo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# mkinitcpio preset file for the 'linux' package

#ALL_config="/etc/mkinitcpio.conf"
ALL_kver="/boot/vmlinuz-linux"

PRESETS=('default' 'fallback')

#default_config="/etc/mkinitcpio.conf"
#default_image="/boot/initramfs-linux.img"
default_uki="/efi/EFI/Linux/arch-linux.efi"
default_options="--splash=/usr/share/systemd/bootctl/splash-arch.bmp"

#fallback_config="/etc/mkinitcpio.conf"
#fallback_image="/boot/initramfs-linux-fallback.img"
fallback_uki="/efi/EFI/Linux/arch-linux-fallback.efi"
fallback_options="-S autodetect"

构建UKI镜像

1
2
mkdir -p /efi/EFI/Linux
mkinitcpio -p linux #zen内核则为linux-zen

简单清理

最好手打下面的命令,用tab补全文件路径

1
2
3
4
5
6
sudo rm -rf /efi/initramfs-linux.img 
sudo rm -rf /efi/initramfs-linux-fallback.img
# sudo rm -rf /boot/initramfs-linux.img
# sudo rm -rf /boot/initramfs-linux-fallback.img
sudo rm -rf /efi/loader/entries/arch.conf
sudo rm -rf /efi/loader/entries/arch-fallback.conf

情况二:两系统在同一块硬盘,使用systemd-boot引导

添加启动参数

与情况一相同

修改.preset文件

1
2
su
vim /etc/mkinitcpio.d/linux.preset #zen内核则为/etc/mkinitcpio.d/linux-zen.preset

注释掉image字样的行,取消注释uki字样的行,示例文件如下所示
splash是启动时闪过的图片,默认是archlinux的logo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# mkinitcpio preset file for the 'linux' package

#ALL_config="/etc/mkinitcpio.conf"
ALL_kver="/boot/vmlinuz-linux"

PRESETS=('default' 'fallback')

#default_config="/etc/mkinitcpio.conf"
#default_image="/boot/initramfs-linux.img"
default_uki="/boot/EFI/Linux/arch-linux.efi"
default_options="--splash=/usr/share/systemd/bootctl/splash-arch.bmp"

#fallback_config="/etc/mkinitcpio.conf"
#fallback_image="/boot/initramfs-linux-fallback.img"
fallback_uki="/boot/EFI/Linux/arch-linux-fallback.efi"
fallback_options="-S autodetect"

构建UKI镜像

1
2
mkdir -p /boot/EFI/Linux
mkinitcpio -p linux #zen内核则为linux-zen

简单清理

最好手打下面的命令,用tab补全文件路径

1
2
3
4
sudo rm -rf /boot/initramfs-linux.img
sudo rm -rf /boot/initramfs-linux-fallback.img
sudo rm -rf /boot/loader/entries/arch.conf
sudo rm -rf /boot/loader/entries/arch-fallback.conf

使用systemd-boot管理统一内核镜像
https://rukkhadevata123.github.io/2024/08/26/uki/
作者
Dawn Chirps
发布于
2024年8月26日
许可协议