一段时间以来,我一直在尝试设置一个以 RAID 1 作为启动源的新服务器系统。该 RAID 由两个 4TB 硬盘组成。因此,我从使用 Debian 12 安装映像准备的 USB 记忆棒启动。一开始一切运行正常。我配置网络并创建前两个用户。 分区部分我选择手动方式
在接下来的表格中,我看到我的两个 4TB 驱动器和 USB 启动设备,硬盘 SCSI9 是紧急备用,我在这里不会使用它。 我选择配置软件RAID
我选择创建MD设备
我选择RAID 1
2 个 RAID 设备
0 备用设备
再次回到分区。 这次我选择引导模式
所有文件都在一个分区中
一两分钟后,新的分区 RAID 就会出现。 看起来很有希望...
我确认更改后,系统开始获取并安装操作系统的其余部分和所有实用程序。这个过程设计得很好并且到目前为止非常简单。唯一的问题是:它没有完成。:-( 当安装 GRUB 时(2 小时后),它死了...... 我找不到超越这一点的方法。我的错误是什么?我该如何解决?
我根据广泛的互联网搜索结果尝试了很多变体,但结果都相同。这是最有希望的一个:跳过部分安装过程并使用 mdadm 手动生成阵列: https://www.server-world.info/en/note ?os=Debian_12&p=raid1
添加
4T 需要使用 GPT,并且您无法正确地同时拥有全磁盘可分区 RAID并让 BIOS 可以识别磁盘并从中启动(对于 EFI 来说是完全不可能的,对于旧版则不是那么严格,但这将需要您不具备的黑魔法不想知道)。
(令人遗憾的是 Debian 安装程序甚至接受了这个方案。它不应该,它是严格无效的并且不可能工作。)
这是因为GPT分区表实际上存储在设备的开头和结尾。当使用全磁盘 RAID 且没有正确的 MD 元数据解释时,两个 GPT 副本永远不会同时发生:
无论哪种方式,它都不会将磁盘识别为具有有效的分区表并拒绝从它们启动。
除此之外,如果您想使用 UEFI 启动,您需要知道 EFI 固件不知道 ESP 可能是软件 RAID(规范中没有任何相关内容)。所以一定不能。ESP 必须始终是简单的 GPT 分区。
因此,要解决此问题,您不必先构建 RAID 然后再分区,而是先对磁盘进行分区,然后将一些分区收集到 RAID 中。虽然这是有争议的,但我建议采用以下方案:
然后,创建两个 RAID(/boot 和其余的),并选择其中一个 ESP 作为“ESP”。安装后,您将启用从第二个磁盘启动。然后在大型 RAID 上创建 LVM,以保存文件系统;在那里您可以创建交换卷、根 FS 卷(对于 Debian 来说 30 GiB 就足够了,并且很容易动态扩大;请注意,您将把所有数据放置到其他已安装的专用卷中 - 将应用程序数据存储在根卷中是没有好处的)。其余的可以在系统生命周期内根据需要创建。
然后你就可以像往常一样安装系统了。必须在ESP分区上创建FAT32;Debian 11 安装程序有问题,所以我必须手动创建它;我不知道 12 的情况如何,因为我没有执行过这样的安装,只进行了升级。当涉及到引导加载程序安装时,您只需按照 EFI 的建议进行操作,而对于旧版本,您可能只需重复此步骤并安装两次,第二次选择第二个磁盘,这样它将立即成为冗余可引导的。
对于 EFI,第一次系统启动后,您需要在第二个“ESP”分区上手动创建文件 FAT32 文件系统,将其安装在某个位置(我使用 /boot/efi2)并从 /boot/efi 复制所有内容,保留结构。然后,您使用 创建第二个固件启动条目
efibootmgr
,以下是说明。完成...谢谢尼基塔指出正确的方向!这是一个快速烹饪食谱,说明它如何为我工作(我省略了几个“你真的想重新分区磁盘吗” - 确认):
sudo watch cat /proc/mdstat
您可以通过从命令行启动来检查 RAID 的状态(包括同步过程的进度) 。