我在一台使用 systemd-boot 和 UEFI 启动系统的机器上使用 ArchLinux。当我收到新的内核更新时,新内核会在我的 中创建/boot
,但 UEFI-Boot 分区会/boot/efi
与我告诉系统加载的文件一起安装在/boot/efi/EFI/arch/
.
我在哪里可以配置一个钩子,每当我更新内核时,.img
它都会将文件vmlinuz-linux
从 my复制/boot
到 my 中?/boot/efi/EFI/arch/
答案1
由于问题没有得到解答,并且我遇到了同样的问题,我编写了自己的方法,也许它可以帮助未来的搜索者:
请注意,我使用 Kali,我无法确认它是否有效,因为我的内核已经升级(我将在最终确认后更新此答案)
/etc/kernel/postinst.d
例如,创建一个文件zz_systemd_boot
(grub 文件以开头,zz
所以我假设文件是按字母顺序执行的),其内容与此类似:
#!/bin/sh
echo Copy files for systemd-boot
cp /initrd.img /mnt/boot/kali/initrd.img
cp /vmlinuz /mnt/boot/kali/vmlinuz
并使文件可执行chmod 755 zz_systemd_boot
答案2
使用 uefi 而不是旧版不会更改内核映像的位置。我使用 uefi 引导加载程序,我的图像都在引导中。
为了进行比较,这里是我的启动分区;
$ find /boot/ -type d
/boot/
/boot/grub
/boot/grub/backup
/boot/grub/fonts
/boot/grub/x86_64-efi
/boot/grub/i386-pc
/boot/grub/locale
/boot/efi
/boot/efi/EFI
/boot/efi/EFI/debian
/boot/efi/EFI/boot
/boot/efi/EFI/ubuntu
/boot/efi/EFI/ubuntu/fw
/boot/efi/EFI/grub
目录 /boot/efi/EFI 包含 uefi 启动映像;
$ find /boot/efi/EFI/ -type f
/boot/efi/EFI/debian/grubx64.efi
/boot/efi/EFI/debian/grubx64.efi.bkup1
/boot/efi/EFI/boot/bootx64.efi
/boot/efi/EFI/boot/bootx64.efi.old
/boot/efi/EFI/boot/grubx64.efi
/boot/efi/EFI/ubuntu/fwupx64.efi
/boot/efi/EFI/ubuntu/grubx64.efi
/boot/efi/EFI/ubuntu/grub.cfg
/boot/efi/EFI/ubuntu/shimx64.efi
/boot/efi/EFI/ubuntu/MokManager.efi
/boot/efi/EFI/ubuntu/grubx64.efi.old
/boot/efi/EFI/grub/grubx64.efi
目录“/boot/grub/x86_64-efi”包含所有 uefi mod 文件
$ find /boot/grub/x86_64-efi -type f | head -10
/boot/grub/x86_64-efi/ufs2.mod
/boot/grub/x86_64-efi/minix3.mod
/boot/grub/x86_64-efi/date.mod
/boot/grub/x86_64-efi/odc.mod
/boot/grub/x86_64-efi/lvm.mod
/boot/grub/x86_64-efi/font.mod
/boot/grub/x86_64-efi/reboot.mod
/boot/grub/x86_64-efi/file.mod
/boot/grub/x86_64-efi/functional_test.mod
/boot/grub/x86_64-efi/ohci.mod
我的linux镜像都存储在“/boot/”中
$ find /boot -maxdepth 1 -type f -iname "vmlin*" | head -10
/boot/vmlinuz-4.4.8-M1.old
/boot/vmlinuz-4.8.5-MX1
/boot/vmlinuz-4.8.2-MX1.old
/boot/vmlinuz-4.8.5-MXC2.old
/boot/vmlinuz-4.3.0-1-amd64
/boot/vmlinuz-4.4.8-M1
/boot/vmlinuz-4.8.2-MX1
/boot/vmlinuz-4.8.5-MX1.old
/boot/vmlinuz-4.4.8-M3
/boot/vmlinuz-4.4.5-M1