我可以通过 apt 将 Linux 内核安装到不同的目录中吗?

我可以通过 apt 将 Linux 内核安装到不同的目录中吗?

我有一个带有 4 个分区的 SSD(EFI 分区、第一个用户的操作系统、第二个用户的操作系统、交换分区)并systemd-boot安装为引导加载程序(个人偏好)。由于systemd-boot只能从同一文件系统启动内核,因此我将/etc/fstabFAT32 分区挂载到 FAT32 分区/boot/boot/efi以便包管理器将内核安装在所在分区上systemd-boot。我在该分区上有许多类似的文件(几个 vmlinuz,但版本不同,与其他文件相同),如下所示:

ls -> EFI/ loader/ vmlinuz-1 vmlinuz-2 config-1 config-2 ...

所以我把它们分成不同的文件夹,现在看起来像这样:
ls -> EFI/ loader/ user1/ user2/

唯一的问题是,当apt尝试升级系统时,它会严重失败,因为它无法对文件进行符号链接,因为它们位于 FAT32 分区上,即使它们能够进行符号链接,它们仍然会在主/boot文件夹中,而我不这样做。我不希望他们这样。使用相同的内核不是一个选择。

所以我的问题是:是否可以指定下载新内核文件的位置,或者每次内核更新时我都必须手动移动它?

答案1

按照这篇文章解决:https://kernel-team.pages.debian.net/kernel-handbook/ch-update-hooks.html

我创建的/etc/kernel/postinst.d/zz-update-efi脚本只是将编译后的内核和 init 移动到用户目录。

USER_NAME="mint"
mv "/boot/vmlinuz-$1" "/boot/$USER_NAME/vmlinuz-linux"
mv "/boot/initrd.img-$1" "/boot/$USER_NAME/initramfs-linux.img"

相关内容