Debian 上 /boot/efi 分区的 RAID 1

Nic*_*nte 9 raid debian mdadm uefi debian-installer

我安装了 CentOS 8,其中分区和 RAID 1 配置是使用 CentOS 安装程序的自动分区完成的。这是输出lsblk:

\n
sda         8:0    0 558.9G  0 disk\n\xe2\x94\x9c\xe2\x94\x80sda1      8:1    0    50G  0 part\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80md127   9:127  0    50G  0 raid1 /\n\xe2\x94\x9c\xe2\x94\x80sda2      8:2    0    20G  0 part\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80md126   9:126  0    20G  0 raid1 [SWAP]\n\xe2\x94\x9c\xe2\x94\x80sda3      8:3    0     1G  0 part\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80md125   9:125  0  1022M  0 raid1 /boot\n\xe2\x94\x9c\xe2\x94\x80sda4      8:4    0   600M  0 part\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80md124   9:124  0   600M  0 raid1 /boot/efi\n\xe2\x94\x94\xe2\x94\x80sda5      8:5    0 487.3G  0 part\n  \xe2\x94\x94\xe2\x94\x80md123   9:123  0 487.2G  0 raid1 /home\nsdb         8:16   0 558.9G  0 disk\n\xe2\x94\x9c\xe2\x94\x80sdb1      8:17   0    50G  0 part\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80md127   9:127  0    50G  0 raid1 /\n\xe2\x94\x9c\xe2\x94\x80sdb2      8:18   0    20G  0 part\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80md126   9:126  0    20G  0 raid1 [SWAP]\n\xe2\x94\x9c\xe2\x94\x80sdb3      8:19   0     1G  0 part\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80md125   9:125  0  1022M  0 raid1 /boot\n\xe2\x94\x9c\xe2\x94\x80sdb4      8:20   0   600M  0 part\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80md124   9:124  0   600M  0 raid1 /boot/efi\n\xe2\x94\x94\xe2\x94\x80sdb5      8:21   0 487.3G  0 part\n  \xe2\x94\x94\xe2\x94\x80md123   9:123  0 487.2G  0 raid1 /home\n
Run Code Online (Sandbox Code Playgroud)\n

正如您所看到的,/boot/efi 分区与任何其他分区一样在 RAID 1 中镜像。\n现在,我在安装 Debian 时尝试重新创建相同的设置,但无法继续。如果我以这种方式设置分区和 RAID 1,我会在 grub 安装过程中收到安装程序的失败消息(没有其他错误消息,只是“某些安装步骤失败”一般消息)。

\n

截屏:

\n

错误

\n

如果我不镜像 ESP 分区,该错误就会消失。

\n

我意识到镜像 ESP 分区听起来不太可行,环顾四周似乎每个人都同意。但 CentOS 安装程序设法以某种方式做到了这一点。

\n

我需要做什么才能在 Debian 上重新创建相同的设置?

\n

Nic*_*nte 10

感谢@cas 的评论,我已经完成了这项工作。

步骤主要是:

  1. 我安装了 Debian,但没有为 ESP 分区设置 RAID。在分区过程中,我已经创建了两个相同的分区,标记为 ESP 分区。他们在/dev/sda1并且/dev/sdb1
  2. /boot/efi我已经复制了其他地方的内容( /boot/eficopy)。
  3. umount /boot/efi
  4. mdadm --create --verbose /dev/md3 --level=1 --raid-devices=2 --metadata=1.0 /dev/sda1 /dev/sdb1。当然,如果已经是活动的 MD 设备,请更改/dev/md3为其他设备/dev/md3
  5. mkfs.vfat /dev/md3
  6. 找到分区的 UUID/dev/disk/by-uuid
  7. 使用新的 UUID更改/boot/efi条目/etc/fstab
  8. mount /boot/efi
  9. 将备份中的数据/boot/efi再次复制到

重启成功了。

编辑:看起来不是备份分区/boot/efi,而是

grub-install --efi-directory=/boot/efi
Run Code Online (Sandbox Code Playgroud)

执行恢复其内容的工作(在上面的步骤 9),尽管我收到了很多我无法理解的警告。

EDIT2:人们可能应该考虑使用元数据版本 1.0 而不是 0.9,根据 wiki 页面A Guide to mdadm。

版本 1.0 仍然要求(对于此用例)将超级块放置在设备的末尾,但还包括“mdadm 的现代功能”,使用通用布局格式如 1.1 和 1.2。