Ubuntu Server 20.04 RAID1 + LVM 加密分区:GRUB 问题

Ubuntu Server 20.04 RAID1 + LVM 加密分区:GRUB 问题

在新的Ubuntu Server 20.04 我无法使用“RAID + LVM”创建加密分区。安装过程正确完成,但在启动时找不到 GRUB,我被重定向到“GRUB 最小 bash”

这里我将描述安装过程。首先,我使用以下方法准备了两个硬盘(我的情况是 SSD)“GParted 直播”(我使用 GParted ISO 创建了可启动 USB):

  1. 512 MB 分区,名为“/bios/efi”,fat32,标记为“boot, esp”;
  2. 10 GB / 分区,名为“/”,ext4,标记为“raid”;
  3. /home 分区,名为“/home”,ext4,标记为“raid”;

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

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

  2. 然后使用“创建软件 RAID (md)”我已经创建了一个新的“md0”卷(始终处于活动状态)

  3. 然后我又创造了另一个“RAID md”音量(始终有效)

  4. 这时我选择了“创建卷 LVM”我选择“md0”分区,并为其分配了密码。

  5. 我再次选择了“创建卷 LVM”我选择“md1”分区,并指定了密码。

  6. 现在我选择了“vg0”分区并选择“添加 GPT 分区”,然后我选择“创建逻辑卷”并挂载在“/”上

  7. 类似的事情“vg1”分区,我选择“添加 GPT 分区”,然后选择“创建逻辑卷”并挂载在“/home”上

  8. 然后我选择“完毕”我完成了安装

  9. 重启后,操作系统进入“GRUB 最小 bash”

出了什么问题?

谢谢

答案1

我遇到了类似的问题。在虚拟机中尝试了各种排列组合都没有成功后,我偶然发现了Reddit 上的这个帖子,其中用户 wRAR_ 说“[Debian 安装程序] 目前不支持加密 /boot”。Ubuntu 基于 Debian;我不知道安装程序有多相似,但我在虚拟机中测试了带和不带加密的安装程序/boot。两者都无法启动,显示您在问题中描述的 GRUB shell。

注意:指定一个加密区域作为的挂载点/,而不是指定单独的/boot挂载点,意味着/boot将驻留在该加密的下/

广义上讲,如果我们想要在 RAID 上使用某种加密的 LVM,有两个选择:

选项1- 我选择做的,并且对初学者更友好,因为它可以通过标准的 Ubuntu 安装程序来完成。

加密除 /boot 和 /boot/efi 之外的所有内容

/boot所有用户数据都将被加密,但(不仅仅是)的全部内容/boot/efi将不会被加密。您描述的分区方案不同,但关键是 - 为了使其正常工作 -/boot不应驻留在加密分区上

我使用了以下分区方案:

我的 RAID1 分区方案上的加密 LVM

我能够在安装程序中完成所有操作:

sda1:512M /boot/efi

sdb1: 512M /启动

sda2 和 sdb2:RAID1 阵列 md0

md0:加密卷 dm_crypt-0

dm-_crypt-0:逻辑卷 vg0-lv--0 用于 /

dm-_crypt-0:/srv 的逻辑卷 vg0-lv--1

当然,您可以在卷组内选择任何您喜欢的逻辑卷:我有一个用于服务器设置的单独的 /srv。

此设置的一个小优点是它既利用了 512M 未加密空间(与 RAID1 上的典型加密 LVM 方案不同),又只利用了未加密的 efi 分区。这不是理想的选择,但我测试过,它对我来说是有效的。*

选项 2:可能有一种方法可以绕过安装程序不支持加密的问题,/boot即退出到 shell、编辑一些配置文件并重新安装 GRUB 等。这篇博文似乎有一些说明但我没有遵循。

*(虽然我必须说我发现安装程序的分区菜单在某些地方有点尴尬 - 它似乎会自动抓取某些未格式化的空间,假设它可以将其用作 EFI 分区;但通过对选项进行一些“游戏”,我最终得到了那里)

答案2

感谢@jdurston的回复,我能够通过这种方式安装带有 RAID 1 和加密磁盘的 Ubuntu 20.04

我已经准备好两个硬盘“GParted 直播”(我使用 GParted ISO 创建了可启动 USB):

磁盘 1:

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

磁盘 2:

  1. 512 MB 分区,命名“/bios”,fat32,标记为“boot,esp”(注意力:与磁盘 1 相比,它的标记不同)
  2. 10 GB / 分区,名为“/”,ext4,标记为“raid”;
  3. (全部剩余空间)/home 分区,名为“/home”,ext4,标记为“raid”;

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

  1. 我只选择磁盘一被“添加为启动盘”;

  2. 然后使用“创建软件 RAID (md)”我已经创建了一个新的“md0”卷(始终处于活动状态),并选择了 10 GB 分区;

  3. 然后我又创造了另一个“RAID md”卷(始终活动)选择剩余的 222 GB 分区;

  4. 然后我选择了“创建卷 LVM”我选择 512 MB 分区(以前称为 /boot),然后我没有加密

  5. 我再次选择了“创建卷 LVM”我选择“md0”分区,并给它分配一个密码;

  6. 然后我再次选择了“创建卷 LVM”我选择“md1”分区,并给它分配一个密码;

  7. 我选择了“vg0”分区并选择“添加 GPT 分区”,然后我选择“创建逻辑卷”并挂载“/boot” 是

  8. 然后我选择了“vg1”分区并选择“添加 GPT 分区”,然后我选择“创建逻辑卷”并挂载“/”

  9. 同样的事情“vg2”分区,我选择“添加 GPT 分区”,然后选择“创建逻辑卷”并挂载“/家”

  10. 然后我选择“完毕”并且我完成了安装;

  11. 重启后 GRUB 可以正常工作!

我附加了 Ubuntu 20.04 安装的“存储配置”中的两张图片,在第一张图片中,您将看到 RAID 创建之前的情况(GParted 修改之后),在第二张图片中,您将看到在点击“完成”之前的最终情况。

图 1,创建 RAID 之前:

图 2,RAID 创建后:

答案3

我建议采取一种不同的方法。

确实,您无法首先配置 grub 以从加密分区激活和启动(尽管您可以 insmod 和配置 grub 来执行此操作...)。因此,我建议采用以下配置方案:

md0:带有 LUKS 的 LVM(在 VG 级别,我找不到如何使用安装程序在 LV 级别执行此操作)/、/var、...

md1: /boot(直接启动到分区)

通过这样做,您将获得 /boot 和加密分区的不同分区/RAID 配置。之后不要忘记在 sdb 上执行 grub-install,以防您的 sda 出现故障。

相关内容