我应该如何配置grub从USB硬盘启动Linux内核?
我的笔记本电脑硬盘驱动器在一个外接盒中,用作大型笔式驱动器。另外,我已经在上面安装了Linux,因此可以选择自己的发行版来引导任何计算机(例如,用于数据恢复或修复已保存的系统,或者仅使用借用的笔记本电脑而不会破坏预装的Windows)。问题是,根据硬件配置,USB硬盘驱动器可能在不同路径下可见。对于grub配置,我只使用(hda0,0)它,因为它与启动grub的设备有关。我在中有UUID条目/etc/fstab。我还在rootwait内核参数中指定了它,以便它在尝试挂载设备之前等待USB子系统稳定下来。 我应该以什么形式传递给内核root=?当前从笔式/dev/sdX驱动器引导一次,检查调试消息以查看内核已将哪些设备分配给USB驱动器,然后重新引导并编辑grub配置。除了启用Boot from USB hard driveBIOS并将其设置为比内部硬盘驱动器更高的优先级之外,我无法在PC上进行任何更改。 有各种各样的initrd生成脚本,其中包括对根设备路径中的UUID的支持,不幸的是,Gentoo本机脚本(genkernel)不支持rootwait,我没有运气尝试使用其他脚本。 引导过程如下(在Windows中非常相似): BIOS选择引导设备并加载其MBR(碰巧是grub stage-1)。 Grub从它设置为的设备中加载配置文件和Stage-2文件root,(hd0)用于从BIOS加载该设备的设备。 Grub加载并启动了内核(仍然是相同的编号,因此我可以(hd0,0)再次使用)。 内核初始化所有内置设备(rootwait现在这样做很神奇)。 内核安装传递它的分区root(这是内核参数,而不是grub参数)。 init.d开始userland引导过程,包括从安装/etc/fstab。 第五部分是给我麻烦的那一部分。