![如何将 initramfs 和内核放在两个单独的分区上?](https://linux22.com/image/91312/%E5%A6%82%E4%BD%95%E5%B0%86%20initramfs%20%E5%92%8C%E5%86%85%E6%A0%B8%E6%94%BE%E5%9C%A8%E4%B8%A4%E4%B8%AA%E5%8D%95%E7%8B%AC%E7%9A%84%E5%88%86%E5%8C%BA%E4%B8%8A%EF%BC%9F.png)
我想将 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 或其他地方)