在两台设备上使用 RAID 1 安装 Ubuntu 20.04 Focal Fossa

在两台设备上使用 RAID 1 安装 Ubuntu 20.04 Focal Fossa

我想在使用 RAID 1 的两块硬盘的机器上安装 Ubuntu 20.04 Focal Fossa。

不幸的是,这似乎不起作用。如果我使用“创建软件 RAID (md)”选项并选择我的两个磁盘,安装程序会告诉我:

如果将所有磁盘放入 RAIDS 或 LVM VG,则没有地方放置启动分区。

我发现关于 18.04 的详细答案但问题是相似的 发现关于这个问题的原因是Focal放弃了替代安装程序,因此所需的分区选项就消失了。

我有哪些选择来实现这一目标?

答案1

当我偶然发现同样的问题并发现实际文档尚未针对新的存储配置器进行更新时(截至 2021 年 3 月仍然如此,现在安装程序的 bios_grub 配置器可能存在错误),下面是我在 2 个磁盘上设置 softRAID 1 的操作Ubuntu 服务器版本(适用于 20.04 或更新版本):

  • 当您到达安装程序的存储配置步骤时,选择“自定义存储布局”。
  • 如果磁盘有现有分区,请单击“可用设备”下的每个磁盘,然后选择“重新格式化”。这将(暂时)清除分区。
  • 现在选择第一个磁盘添加为“启动”磁盘(与 REFORMAT 中的菜单相同)。
  • 对第二张磁盘执行相同操作。[2021 年 3 月注释:如果在最新的 20.04.2 安装程序中此方法不起作用,请跳过该部分。最后,第一个磁盘将有 4 个分区(bios、/boot、swap 和 /),第二个磁盘只有 3 个分区(/boot、swap 和 /),这其实并不重要。如果希望每个磁盘上的分区数量相同,请先在第二个磁盘上创建一个 1 MB 的分区,然后再创建其他 3 个分区。这样,两个磁盘之间的块就会同步。使用多个磁盘时,安装程​​序中创建 bios_grub 分区的方式可能存在错误,因为此行为与版本 20.04.1 或当前的 Ubuntu Server 文档不一致如此处所述
  • 现在您应该看到在 USED DEVICES 下创建了两个 1.000M 的 bios_grub 分区。GRUB 将使用这些小分区来启动服务器。[2021 年 3 月注释:该安装程序也适用于一个 bios_grub 分区。
  • 设置 softRAID 阵列的技巧是在每个磁盘上为 /boot、swap 和 / 创建分区,但不要格式化它们(因此,暂时不会有挂载点)。
  • 因此,继续在第一个磁盘上“添加 GPT 分区”,将其设置为 1G 大小并选择不格式化。对第二个磁盘执行相同操作。这些将是 softRAID 阵列的 /boot 分区。在 AVAILABLE DEVICES 上的每个磁盘下,您现在将看到“分区 2”。
  • 现在我们将准备交换分区。在第一个磁盘上“添加 GPT 分区”,将其设置为 RAM 的相同大小或一半大小(例如,假设为 16G,因为我们有 16G 的实际 RAM - 但这取决于您自己决定),并选择不格式化。对第二个磁盘执行相同操作。在“可用设备”上的每个磁盘下,您现在将看到“分区 3”。
  • 现在我们将准备 / 分区。在第一个磁盘上“添加 GPT 分区”,不要设置大小(因此它将使用所有可用分区),并选择将其保留为未格式化,就像您迄今为止创建的所有其他分区一样。对第二个磁盘执行相同操作。在可用设备的每个磁盘下,您现在将看到“分区 4”。
  • 现在单击“可用设备”下的“创建软件 RAID (md)”。我们将通过选择两个“分区 2”条目(每个磁盘一个)来创建第一个软 RAID 分区 (md0)。单击“保存”。
  • 对 md1 重复此过程并选择两个“分区 3”条目。点击“保存”。
  • 对 md2 重复此过程并选择两个“分区 4”条目。点击“保存”。
  • 我们现在有 3 对可用设备,它们现在将格式化为实际的 softRAID 分区。因此选择 md0,然后选择“添加 GPT 分区”,格式化为 EXT4 并挂载到 /boot。
  • 选择 md1,然后选择“添加 GPT 分区”,格式化为 SWAP。
  • 选择 md2,然后选择“添加 GPT 分区”,格式化为 EXT4 并挂载在 / 上。
  • 所有这些 mdX softRAID 分区现在将出现在 USED DEVICES 下,您可以继续进行 Ubuntu 的安装。
  • 在最底部,您应该看到已启用“完成”,因此点击它并继续。

享受 :)

(另请参阅:https://gist.io/@fevangelou/2f7aa0d9b5cb42d783302727665bf80a

答案2

我按照这种方法修复了它。

解决方案 1:安装 RAID 1 但不加密磁盘

首先,我准备好了两个硬盘(我这里是 SSD),使用“GParted 直播”(我使用 GParted ISO 创建了可启动 USB):

  1. 512 MB 分区,名为“/bios/efi”,fat32,标记为“boot, esp”;
  2. 10 GB 分区,名为“/”,ext4,标记为“raid”;
  3. (全部剩余空间)/home 分区,名为“/home”,ext4,标记为“raid”;

我决定省略“/swap”分区,因为我安装了 16 GB 的 RAM,并且我使用 SSD 驱动器,而且该服务器只是一个小型家用 NAS,所以我不需要高性能。

然后,使用“自定义存储布局”在 Ubuntu Server 20.04 安装期间:

  1. 我检查了两个磁盘都“添加为启动盘”

  2. 使用“创建软件 RAID (md)”选项,我选择了“/”-根-磁盘一分区,以及磁盘二的“/”分区,以创建一个新的“md0”卷(始终活动);

  3. 我创建了另一个“RAID md”卷,但这次使用“/home”分区(始终处于活动状态),选择两个“/home”分区来创建一个新的“md1”分区;

  4. 我选择了“md0”分区(之前创建的根分区)并选择“添加 GPT 分区”,然后我选择格式为“Ext4”并挂载在“/”上;

  5. 同样地“md1”分区(/home 分区),我选择“添加 GPT 分区”,然后选择格式为“Ext4”并挂载在“/home”上;

  6. 然后我选择“完毕”我已经完成安装。

解决方案 2:安装带磁盘加密的 RAID 1

在这里我写了一个快速指南 关于我如何解决。主要问题与“/boot”分区有关,该分区不能位于加密分区内,因为 grub 的加密尚不支持它。

我希望本指南对其他 Ubuntu 用户有用。

答案3

RAID 需要两个磁盘具有相同的分区布局,并且 Ubuntu 需要至少 1 个用于 bios (grub) 的活动启动分区。我正在做的事情:

  • 选择第一个磁盘,“用作启动设备”

  • 选择第二个磁盘,“添加为另一个启动设备”

  • 选择第一个磁盘,添加 GPT 分区,保留大小为空,并且保持未格式化

  • 选择第二个磁盘,添加 GPT 分区,保留大小为空,并且不格式化

  • 选择“创建软件 RAID (md)”,从两个磁盘中选择分区 2

现在,您有了新的可用设备 /md/xxx。只需像往常一样进行分区以添加 /(根)、/boot 等。您也可以将其创建为 LVM 分区。

作为参考,请观看此 Youtube 视频在 Ubuntu 21.04 服务器安装期间手动创建 RAID1 镜像 2 个磁盘

答案4

fevangelou 的解决方案总体上非常出色,但是如果您有多个 RAID(或格式化为 Linux RAID 的剩余磁盘),则缺少有关交换分区的详细信息。简而言之,如果您有任何其他 RAID 磁盘,请将它们拔下,直到安装结束。

在我的例子中,我有 4 个磁盘(2 个磁盘为 RAID1,用于操作系统,即 md0/md1/md2),2 个磁盘为 RAID1,用于存储(md3)。如果我在安装过程中创建 md3(或者什么都不做,让这些磁盘格式化为以前安装的 Linux RAID),则在第一次启动后,我会运行swapon-s我看到只有 swap.img 文件被使用,而不是我的交换分区。我运行猫/proc/mdstat我可以看到我的存储驱动器(应该是 md3 或未分配)已分配给 md1(在 fevangelou 的示例中为交换分区)。交换分区无处可寻。

如果我在安装前拔掉额外的磁盘,一切就都正常了。我等到第一次完全启动后才关机并插入额外的磁盘。我还有其他几个驱动器(ntfs 和 ext4),我一直插着,从来没有遇到过麻烦,只有 RAID 驱动器。

相关内容