我的计算机的 BIOS 无法将我的 PCIe NVME SSD(足够的缩写?)驱动器识别为我可以从中启动的驱动器。BIOS 较旧(上次更新为 2011 年),并且 PCIe 卡可能未实现启动支持。
一旦 Ubuntu(在另一个 SATA 驱动器上)运行,我就可以看到并访问 PCIe 驱动器。
作为一种解决方法,我想知道是否可以创建一个带有 grub 的可启动 USB,然后能够识别 PCIe SSD 并从其启动?这可能吗?我该怎么做?(我认为我不需要 UEFI 启动,它是一台旧机器。)
对于 Linux,如果您使用 initramfs 或类似的东西,您可以执行双步引导。
Linux 几乎可以从任何东西启动,比如慢速 USB 记忆棒、存储卡等,但它必须从 BIOS 可以看到的东西启动。
据说,有一种双步引导方式可以引导任何 Linux,我将尝试解释它。
Linux 和 Grub2 可以从 USB 启动,启动时要做的第一件事是加载内核和 initramfs 或等效文件。
要从 BIOS 之外的设备启动,您可以将该部件放在 USB 驱动器、内部 HDD 分区或 SSD 或 BIOS 可以启动的任何位置。
所以基本上你把引导代码(MBR)+ Grub 阶段+ 内核+ initramfs 放在BIOS 可以看到的设备上......又名/boot 作为分区。其余的你可以把它放在快速 NVMe 上或任何你想要的地方,但它必须位于可以从 initramfs 启动步骤中看到的设备上(这与从 LVM 和/或 LUKS 等内部启动是相同的技巧) 。
因此,有一个技巧,在 initramfs 上放置一些驱动程序(或编译内核或内核模块等),这些驱动程序将为 PCIe 卡和 NVMe 供电,从中可以看到驱动器,并且启动过程可以继续;在大多数情况下,Linux 安装程序会自动执行此操作,因此不必惊慌。
恢复:
瞧,Linux 可以启动...这是一个双步启动...它首先从 BIOS 可启动设备启动一小部分,然后从 RAM 驱动器内部加载为 PCIe 卡和 NVMe 供电所需的内容(以及更多的事情),然后它继续使用从 NVMe 安装的 root 启动。
听起来很简单,但可能很棘手,调试 initramfs PCIe 和 NVMe 电源的部分可以像什么都没有或真正的头一样简单。
我可以建议你,尝试使用 LiceCD,如果它看到 NVMe,则插入 USB 记忆棒,并在安装时告诉安装程序将 /boot 放在 USB 分区上,并将 Grub 放在 USB MBR 上;然后将 BIOS 配置为从 USB 启动,奇迹就完成了。
在慢速设备上使用 /boot 不会使启动速度减慢很多,因为它只有几兆字节。
但是一些非常旧的 PC(我的旧 Pentium IV 之一)有一个非常奇怪的 BIOS,在启动时它以 USB 1.x 速度使用所有 USB 2.0,因此启动 Grub 菜单相当快,但加载 kernel+initramfs 可以从两到五分钟。
如果您有任何可启动的 USB 3.x 记忆棒和 USB 3.x 端口(并非所有主板都允许从 USB 3.x 启动),请尝试使用它,它比 USB 2.x 快得多,而且比旧的快得多传统 USB 1.x 速度。
当然,如果您有 BIOS 可以识别的任何其他存储设备(内部),例如普通 HDD 或 sata SSD,请使用此类设备而不是 USB,因为在大多数情况下速度更快。
解决方案:
在大多数情况下就是这么简单,大多数情况下,如果在 LiveCD 上看到 PCie NVMe,而无需安装任何东西,则测试在没有互联网连接的情况下启动此类 LiveCD(以确保没有下载任何内容),查看是否看到 NVMe,然后连接到互联网如果你想。
希望你能明白:Grub 和 /boot 分区位于一个单独的设备上,一个可以被 BIOS 视为可启动的设备,这就是关键。
PD:我喜欢解释为什么事情有效以及为什么我建议事情,而不仅仅是通过解决方案而不解释想法、步骤等,并且论坛不允许我发表评论。
归档时间: |
|
查看次数: |
7352 次 |
最近记录: |