我对双启动机(Ubuntu/Windows)和 Raid1 阵列(2x HDD 5TB 通过 RST)的配置有疑问。
我在 sdd(SATA SDD)上安装了 Ubuntu。Windows 安装在 NVME M2 SDD 上。Raid HDD 是 sdb 和 sdc。还有另一个用于数据存储的单个 HDD(sda)。
问题如下:我无法在 Ubuntu 中检测到 NVME M2 SDD(已安装 Windows)。因此,GRUB 不会让我选择在启动 Ubuntu 之前启动 Windows。
我已经研究过这个问题,发现我需要将 BIOS/UEFI 中的选项切换到 AHCI。但是,如果我这样做,我的 Raid 阵列就会出现问题,不是吗?所以我有点被锁定在 BIOS/UEFI 中的 Raid-On 选项中。我想知道是否有办法让 Ubuntu 在 BIOS/UEFI 中启用 RST/Raid-On 选项的情况下检测 NVME M2 SDD(上面有 Windows)?如果这不可能:除了 GRUB 之外,您是否知道如何配置双启动选项,让我可以在启动 Ubuntu 或 Windows 之间进行选择?
以下是 lsblk 输出,显示未检测到 NVME SSD:
micha@micha-XPS-8940:~$ lsblk | grep -v '^loop'
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 931,5G 0 disk
├─sda1 8:1 0 128M 0 part
└─sda2 8:2 0 931,4G 0 part
sdb 8:16 0 4,5T 0 disk
├─md126 9:126 0 4,5T 0 raid1
│ ├─md126p1 259:0 0 16M 0 part
│ └─md126p2 259:1 0 4,5T 0 part
└─md127 9:127 0 0B 0 md
sdc 8:32 0 4,5T 0 disk
├─md126 9:126 0 4,5T 0 raid1
│ ├─md126p1 259:0 0 16M 0 part
│ └─md126p2 259:1 0 4,5T 0 part
└─md127 9:127 0 0B 0 md
sdd 8:48 0 465,9G 0 disk
├─sdd1 8:49 0 200M 0 part /boot/efi
├─sdd2 8:50 0 195,3G 0 part /var/snap/firefox/common/host-hunspell
│ /
├─sdd3 8:51 0 619,9M 0 part
├─sdd4 8:52 0 195,3G 0 part /home
└─sdd5 8:53 0 74,5G 0 part [SWAP]
这是 lsmod 输出,显示 nvme 模块已加载。
micha@micha-XPS-8940:~$ lsmod | grep nv
nvme 49152 0
nvme_core 135168 1 nvme
答案1
半年后,当我需要重新安装 Ubuntu 时,我找到了这个问题的答案。
我需要在硬盘 sda 上创建一个 EFI 分区,并将引导加载程序移至此硬盘。重新配置 GRUB 后,Windows 和 Ubuntu 都得到了识别。现在,一旦我启动 PC,GRUB 就会加载,我可以选择启动 Ubuntu 还是 Windows。这篇文章帮助我将引导加载程序移至正确的分区并重新配置 GRUB: https://askubuntu.com/a/1296430/1665605
但是我仍然无法通过 Ubuntu 访问 NVME SSD。
答案2
除非您在 UEFI 中配置了 RAID 成员,否则您可能正在使用软件 RAID(即在 Linux 内核中配置的 RAID,而不是在控制器固件中配置的 RAID)。在这种情况下,我认为您不需要在 UEFI 中将磁盘从 AHCI 切换到 RAID 模式。据我所知,该开关配置了 UEFI 如何向操作系统公开您的磁盘。将其设置为 RAID 可能会启用某些旧协议,这可能也比 AHCI 慢。所以,如果我自己使用软件 RAID,我仍然会保持 AHCI 设置,除非它不能那样工作。
另外/或者,您的 UEFI 可能有一个设置来启用“启动菜单”键(例如 F12 或类似键;该键也可能永久启用)。假设 Linux 仍然无法检测到您的 Windows 驱动器,您可以直接使用 UEFI 的启动菜单键来启动 Windows,而不是通过 Grub。