在新的Ubuntu Server 20.04 我无法使用“RAID + LVM”创建加密分区。安装过程正确完成,但在启动时找不到 GRUB,我被重定向到“GRUB 最小 bash”。
这里我将描述安装过程。首先,我使用以下方法准备了两个硬盘(我的情况是 SSD)“GParted 直播”(我使用 GParted ISO 创建了可启动 USB):
- 512 MB 分区,名为“/bios/efi”,fat32,标记为“boot, esp”;
- 10 GB / 分区,名为“/”,ext4,标记为“raid”;
- /home 分区,名为“/home”,ext4,标记为“raid”;
然后,使用“自定义存储布局”在 Ubuntu Server 20.04 安装期间:
我检查了两个磁盘都“添加为启动盘”
然后使用“创建软件 RAID (md)”我已经创建了一个新的“md0”卷(始终处于活动状态)
然后我又创造了另一个“RAID md”音量(始终有效)
这时我选择了“创建卷 LVM”我选择“md0”分区,并为其分配了密码。
我再次选择了“创建卷 LVM”我选择“md1”分区,并指定了密码。
现在我选择了“vg0”分区并选择“添加 GPT 分区”,然后我选择“创建逻辑卷”并挂载在“/”上
类似的事情“vg1”分区,我选择“添加 GPT 分区”,然后选择“创建逻辑卷”并挂载在“/home”上
然后我选择“完毕”我完成了安装
重启后,操作系统进入“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
不应驻留在加密分区上。
我使用了以下分区方案:
我能够在安装程序中完成所有操作:
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:
- 512 MB 分区,命名“/bios/efi”,fat32,标记为“bios_grub”;
- 10 GB / 分区,名为“/”,ext4,标记为“raid”;
- (全部剩余空间)/home 分区,名为“/home”,ext4,标记为“raid”;
磁盘 2:
- 512 MB 分区,命名“/bios”,fat32,标记为“boot,esp”(注意力:与磁盘 1 相比,它的标记不同);
- 10 GB / 分区,名为“/”,ext4,标记为“raid”;
- (全部剩余空间)/home 分区,名为“/home”,ext4,标记为“raid”;
然后,使用“自定义存储布局”在 Ubuntu Server 20.04 安装期间:
我只选择磁盘一被“添加为启动盘”;
然后使用“创建软件 RAID (md)”我已经创建了一个新的“md0”卷(始终处于活动状态),并选择了 10 GB 分区;
然后我又创造了另一个“RAID md”卷(始终活动)选择剩余的 222 GB 分区;
然后我选择了“创建卷 LVM”我选择 512 MB 分区(以前称为 /boot),然后我没有加密;
我再次选择了“创建卷 LVM”我选择“md0”分区,并给它分配一个密码;
然后我再次选择了“创建卷 LVM”我选择“md1”分区,并给它分配一个密码;
我选择了“vg0”分区并选择“添加 GPT 分区”,然后我选择“创建逻辑卷”并挂载“/boot” 是;
然后我选择了“vg1”分区并选择“添加 GPT 分区”,然后我选择“创建逻辑卷”并挂载“/”;
同样的事情“vg2”分区,我选择“添加 GPT 分区”,然后选择“创建逻辑卷”并挂载“/家”;
然后我选择“完毕”并且我完成了安装;
重启后 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 出现故障。