使用镜像中的两个 SSD 磁盘对 EFI 机器进行分区

使用镜像中的两个 SSD 磁盘对 EFI 机器进行分区

我有两个SSD磁盘,我想将它们放入软件镜像RAID中。

但无论我做什么,OpenSuSe 安装都会不断告诉我,由于分区方案,他将无法安装引导加载程序。

我应该如何对磁盘进行分区?另外,我应该在袭击中使用什么块大小?

我尝试了以下方法:

ssd1 -> FAT EFI (256MB)
     -> Raid 1/2 mirror swap (4GB)
     -> Raid 1/2 mirror LVM (~50GB)

ssd2 -> empty (256MB)
     -> Raid 2/2 mirror swap (4GB)
     -> Raid 2/2 mirror LVM (~50GB)

LVM  -> root (25GB)
     -> home (~25GB)

答案1

显然有几个问题和几种方法来处理这个问题。

EFI 应该能够处理 RAID 分区,但仅限元数据 <= 1.0

较新版本的元数据存储在分区的开头(搞乱了文件系统检测)。

安装后/boot集成即可,/boot无需额外分区。/boot/efi

我最终做的是这样的(两个磁盘,RAID 1):

  • 创建一个具有非 raid、非 lvm 的布局/boot/efi
  • 在另一个磁盘上创建一个空的副本(相同大小)
  • 创建一个/boot非lvm(可以raid)
  • 创建其他分区(根、主分区、交换分区等...)
  • 让安装完成它的工作
  • 克隆/boot/efi使用dd
    • dd if=/dev/sda1 of=/dev/sdb1
  • 为克隆添加 efi 记录
    • efibootmgr -c -g -d /dev/sdb -p 1 -L "opensuse" -l '\EFI\opensuse\grubx64.efi'
  • 使用efibootmgr --bootorder更改启动顺序,以便两个 opensuse (或任何您的发行版)记录彼此相邻

答案2

我对 SUSE 不太熟悉,但我认为引导分区始终必须位于 lvm 之外。

内核加载 lvm 模块,然后可以访问 lvm 磁盘,但之前不能。所以你需要在lvm之外有一个500MB的/boot分区来保存内核镜像。

据我所知,您需要一个特殊的引导管理器才能从 EFI 引导:

我不确定这对您是否有帮助,我只找到了一些关于启动管理器以及相应的联机帮助页手动 efibootmgr

.到目前为止我一直避免使用EFI并更改为普通BIOS

答案3

我不知道任何关于软件 RAID1 上的 ESP 的现有建议;最近在 ALT Linux 论坛上被问到“假设”时,我建议在每个磁盘上放置一个单独的 ESP,如果确实需要 UEFI 方式,则手动维护冗余,或者只是采用 BIOS 方式。

您的设置看起来很合理,因此值得针对 YaST 引导加载程序设置模块提交错误(如果您这样做,请在此处提供链接);同时您可以尝试跳过引导加载程序安装并安装它用手启动一些支持 UEFI 的救援映像时(例如这个如果现有的由于某种原因无法使用)。

@itconlor:GRUB2 可以启动 LVMUEFI 固件期望 EFI 系统分区是一个“简单”分区具体类型(请参阅“EFI 磁盘结构”)。

相关内容