小编sko*_*ima的帖子

我应该如何配置 grub 以从 USB 硬盘驱动器启动 linux 内核?

我在外部机箱中有一个笔记本电脑硬盘驱动器,用作大型笔式驱动器。另外,我在其上安装了 Linux,因此我可以使用我选择的发行版启动任何机器(例如,用于数据恢复或修复 b0rked 系统或仅使用借来的笔记本电脑而不破坏预装的 Windows)。

问题是,根据硬件配置,USB 硬盘驱动器可能在不同路径下可见。对于 grub 配置,我只是使用(hda0,0)它,因为它与启动 grub 的设备相关。我在/etc/fstab. 我还在rootwait内核参数中指定,以便它在尝试挂载设备之前等待 USB 子系统稳定下来。

我应该将什么传递给内核root=?目前,从 pendrive 启动一次,检查调试消息以查看/dev/sdX内核已将哪些设备分配给 USB 驱动器,然后重新启动并编辑 grub 配置。除了Boot from USB hard drive在 BIOS 中启用并将其设置为比内部硬盘驱动器更高的优先级之外,我无法更改 PC 上的任何内容。

有多种 initrd 生成脚本在根设备路径中包含对 UUID 的支持,不幸的是,Gentoo 原生脚本(genkernel)不支持rootwait,我没有运气尝试使用其他脚本。

启动过程是这样的(在 Windows 中非常相似):

  1. BIOS 选择引导设备并加载其 MBR(恰好是 grub stage-1)。
  2. Grub 从它设置为的设备加载它的配置和第 2 阶段文件root,使用(hd0)它从 BIOS 加载的设备。
  3. Grub 加载并启动内核(仍然是相同的编号,所以我可以(hd0,0)再次使用)。
  4. 内核初始化所有内置设备(rootwait现在是不是很神奇)。
  5. 内核挂载它作为传递的分区root(这是一个内核参数,而不是 grub …

linux boot kernel usb grub2

22
推荐指数
2
解决办法
4362
查看次数

标签 统计

boot ×1

grub2 ×1

kernel ×1

linux ×1

usb ×1