重新安装到现有的加密分区

重新安装到现有的加密分区

我的磁盘布局如下:

  • 加密分区/
  • 加密分区/home
  • 未加密分区/boot

上次我完全重新安装(包括擦除磁盘)Ubuntu 时设置了此功能。现在,升级到最新的 Ubuntu 后,有些东西坏了,我决定从头开始重新安装。但是,由于我有一个单独的分区/home和另一个分区/,这两个分区都已加密,我想重复使用它们,而不是从头开始。特别是为了节省备份/home和全新安装后再次恢复所需的时间。

在安装之前,我解锁了 2 个加密分区。这样我就可以选择这些分区进行新安装。我之所以//home安装前进行解锁,是因为我无法从安装程序 UI 解锁分区。

一切似乎都安装良好。

但当我重新启动系统时,我从未收到解锁提示。5 点启动画面只出现了一小会儿,然后就变成了提示(initramfs)

我该怎么做才能在启动时获得解锁提示?我可以更改/boot分区中某个文件中的某些设置吗?我在安装过程中需要做一些不同的事情吗?我不介意再重新安装一次(因为它不会花费很多时间,耶!)。我只是不想进行备份/恢复/home(因为它会花费很多时间,嘘!)。

答案1

问题是/etc/crypttab在新系统中没有正确设置。您可以通过启动实时环境然后安装新系统来修复此问题。以下是您需要执行的操作的概述,但您的系统可能需要更改设备名称。

$ sudo -i
# cryptsetup open /dev/sda5 sda5_crypt # For root partition
# cryptsetup open /dev/sda6 sda6_crypt # For home partition
# lvchange -ay  # activates the logical volumes if you use llvm
# mkdir /mnt/ubuntu
# mount /dev/mapper/sda5_crypt /mnt/ubuntu
# mount /dev/mapper/sda6_crypt /mnt/ubuntu/home
# mount /dev/sda1 /mnt/ubuntu/boot
# mount --bind /dev /mnt/ubuntu/dev
# mount --bind /sys /mnt/ubuntu/sys
# mount -t proc none /mnt/ubuntu/proc

现在系统已安装,您可以添加/mnt/ubuntu/etc/crypttab。它看起来应该像这样:

sda5_crypt UUID=12345678-9abc-def012345-6789abcdef01 none luks
sda6_crypt UUID=87654321-cba9-543210fed-01fedcba9876 none luks

您可以使用 找到 UUID ls -l /dev/disk/by-uuid。请注意,使用的 UUID 应该是加密分区,而不是解密分区。

您还应该查看/mnt/ubuntu/etc/fstab并确保解密的分区由sdaX_crypt您在 中指定的名称引用/mnt/ubuntu/etc/crypttab。如果您在安装之前在 OS 安装程序中解密了设备,它们可能会被您自己指定的其他名称引用(例如luks-<uuid>)。如果您未能做到这一点,您可能会cryptsetup: lvm is not available在启动期间收到一条错误消息。

最后,您可以 chroot 到新系统来更新 initramfs。

# chroot /mnt/ubuntu /bin/bash
# update-initramfs -u

然后您就可以重新启动进入新系统了。

相关内容