在具有软件 Raid 的系统上安装 Ubuntu LTS 20.4.1 时出现问题 - Grub-install 失败(错误:无法获取“/cow”的规范路径)
该错误源于 grub-probe,对我来说这是一个谜:我不知道 /cow 是什么,也不知道这个错误消息是如何产生的。
我正在尝试使用 EFI 模式从实时 USB 棒安装 Ubuntu Desktop 20.04.1 LTS。所有 HDD 和 SSD 均使用 GPT 分区。
grub-install --verbose /dev/nvme0
运行直到调用 grub-probe 并退出并显示错误消息(也包含在标题中)
grub-install:错误:无法获取规范路径
/cow
该系统是 Tuxedo Mini-PC(来自奥格斯堡的德国制造商,专门生产 Linux PC),配有 2 个 RAID 1 中的 HDD 和一个额外的 SSD(NVMe)。即使在软件 raid 上使用 EFI 分区,OpenSuse Leap 15.1/15.2 和 Tumbleweed 也可以顺利启动。
起初我以为添加未连接到 RAID 的 SSD 可以解决问题,但事实并非如此,即使所有安装分区都位于 SSD 上。
任何帮助都非常感谢。尤其是那些了解 Grub 源代码的人,他们可以告诉你导致此错误消息的具体原因。
答案1
解决方案是:
步骤1:断开RAID(连接到BIOS-Raid的所有硬盘)。
步骤 2:在 SSD 上安装 Ubuntu 20.04.1(使用具有 ext4 文件系统的分区)。使用硬盘也可能有效。
步骤 3:安装后:重新连接硬盘。主板 BIOS(我的情况是 AS-Rock)确实识别出存在 RAID 并显示出来,无需重新安装任何东西。最重要的是没有数据丢失。
如果您希望将 Ubuntu 安装到镜像磁盘上:
步骤 4:使用 USB Live 系统(我使用了 PartedMagic)将分区从 SSD 复制到 RAID(如果您需要)。
步骤5:调整/etc/fstab
第 6 步:使用工具 efibootmgr 将启动分区调整到 raid。
对于问题原因的猜测:
看来这是 Ubunto 提供的 grub 版本的 grub-probe 解析错误,而 Suse Leap/Tumbleweed 上不会出现这种情况。这意味着这两个发行版的源代码一定存在差异。
声明:
Ubunto 20.04.1 无法安装在具有软件 RAID 的系统上,无论是 BIOS 支持还是由 Linux 发行版生成。
但是 Ubunto 20.04.1 确实可以在具有软件 RAID 的系统上运行,只是不支持安装,因为 Ubunto 使用的 grub 版本不支持它们。失败的调用是 grub-install,它反过来调用 grub-probe,这是失败的最终原因(很可能是由于解析错误)。