如何将 initramfs 和内核放在两个单独的分区上?

如何将 initramfs 和内核放在两个单独的分区上?

我想将 initramfs 放在 USB 设备上,将 Linux 内核保留在 SSD 上,这样我就可以快速启动,同时保护 USB 设备上的加密设置。知道怎么做吗?

答案1

在 grub 中,通常情况下,在引导过程中它会决定使用哪个 initrd(如果有)。

在普通启动中,当执行“grub-update”(或手动)时,您会找到它的位置,并将该部分添加到grub配置文件文件(/boot/grub/grub.cfg 或 /boot/grub.cfg 或许多其他位置。)

例如,假设它位于分区 2(并使用 gpt 分区)上,则会有该行。

initrd (hd0,gpt2)/boot/initrd

或者更正常地说,

set root=(hd0,gpt2)
initrd /boot/initrd

假设 USB 始终是第二个硬盘类型的东西,您可以将第一行或第二行的最后部分更改为

initrd (hd1,gpt1)/initrd

(initrd==initramfs。)如果使用不同类型的分区可能需要加载可以处理它的 grub 模块,“insmod blah”

要查看是否可以完成此操作,可能会帮助进行正常安装并在 USB 中复制 initrd,然后在 grub 中选择命令行,并尝试自己完成整个操作。 (

set root=(hd0,gpt..)
set prefix=(hd0,gpt..)/grub    (or wherever the grub things are)
linux /boot/vmlinuz
initrd (hd1,gpt1)/initrd

根据分布,可能需要改变一些东西。另外,可能需要一些 _insmod_s 在那里。

(如果一切正常,可能有一种方法可以让 grub 自己这样做,使用 grub-update。看看 /etc/default/grub 或其他地方)

相关内容