使用 LVM、LUKS 和手动分区安装 Ubuntu 15.04 的正确方法是什么?

使用 LVM、LUKS 和手动分区安装 Ubuntu 15.04 的正确方法是什么?

我正在尝试使用 LVM 和 LUKS 安装 Xubuntu 15.04,并手动进行分区以便拥有单独的/home分区。

到目前为止,我已经启动了 Xubuntu live CD 并完成了以下步骤:

  1. 使用 gparted 创建三个分区:
    • 200 MB fat32 with boot flag as /dev/sda1- EFI 系统分区。
    • 300 MB ext2 as /dev/sda2- 将用于 /boot。
    • 400 GB unformatted as /dev/sda3- 将是加密卷。
  2. 创建并打开加密卷:
    • cryptsetup luksFormat --cipher aes-xts-plain64 --key-size 512 --hash sha512 /dev/sda3
    • cryptsetup luksOpen /dev/sda3 crypt
  3. 在加密卷上设置逻辑卷:
    • pvcreate /dev/mapper/crypt
    • vgcreate vgcrypt /dev/mapper/crypt
    • lvcreate -n lvcryptroot -L 30G vgcrypt
    • lvcreate -n lvcryptswap -L 10G vgcrypt
    • lvcreate -n lvcrypthome -l 100%FREE vgcrypt
  4. 在逻辑卷上设置文件系统:
    • mkfs.ext4 /dev/vgcrypt/lvcryptroot
    • mkfs.ext4 /dev/vgcrypt/lvcrypthome
    • mkswap /dev/vgcrypt/lvcryptswap
  5. 运行安装程序,选择适当的选项并开始安装。
    • 设置/dev/mapper/vgcrypt-lvcryptroot为挂载点/
    • 设置/dev/mapper/vgcrypt-lvcrypthome为挂载点/home
    • 设置/dev/sda2为挂载点/boot
    • 设置/dev/sda为引导加载程序安装的设备。
  6. 安装程序完成后,我进入新系统:
    • cd /mnt
    • mkdir root
    • mount /dev/mapper/vgcrypt-lvcryptroot root
    • mount /dev/sda2 root/boot
    • chroot root
    • mount -t proc proc /proc
    • mount -t sysfs sys /sys
  7. 我创建/etc/crypttab并添加了一个条目/dev/sda3
    • vi /etc/crypttab
    • 插入以下行:crypt UUID=<uuid_here> none luks
    • update-initramfs -u
    • exit
    • reboot

尝试启动新安装的系统时,系统不会要求我输入密码来解密加密卷。我进入了 initramfs 提示符,没有任何错误。我错过了什么?

答案1

我经历了几乎相同的步骤,只是为了更改默认/boot分区的大小。我放弃了,并修改了默认安装程序的参数。如果您也只是想拥有一个单独的/home分区,请查看以下内容:https://askubuntu.com/a/678074/313386

您可以更改默认配方以包含/home分区。启动实时 CD 并查看/lib/partman/recipes-amd64-efi/50home。保存更改后,您可以勾选 LVM 和加密选项并选择“使用整个磁盘”。

答案2

Initramfs 不会自动包含从加密卷启动所需的一切(模块、脚本等)。我在两台机器(带加密和不带加密)上解压了 initramfs,它们非常不同。

通过更改 crypttab 和更新 initramfs,您只是将选项插入到 initramfs,而不是其他所有内容。您必须弄清楚如何将所有必要内容插入到 initramfs。

我不会为您提供完整的教程,但您可以学习如何解压 initramfs 并将其与已安装的加密机器(您可以在 VirtualBox 中执行此操作)和您的机器进行比较,然后您会看到差异。这很可能是您的问题。

答案3

编辑后,在终端中/etc/crypttab运行。sudo dpkg-reconfigure lvm2

答案4

看看我对几乎相同问题的回答这里。当我采用 Minos 的方法时,我发现我遇到的问题实际上与 grub 有关。我的解决方案在 Ubuntu 16.04.2 上进行了测试。

相关内容