重新安装到现有加密分区

我的磁盘布局是这样的:

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

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

在浏览安装程序之前,我解锁了2个加密分区。 这允许我为//home选择这些用于新安装。 我执行此预安装解锁,因为我无法从安装程序UI解锁分区。

一切似乎安装得很好。

但是当我重新启动系统时,我从未得到解锁提示。 5点启动启动只是一段时间,然后它下降到(initramfs)提示符。

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

问题是/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 

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

您还应该查看/mnt/ubuntu/etc/fstab ,并确保解密的分区由您在/mnt/ubuntu/etc/crypttab分配的sdaX_crypt名称引用。 如果您在安装之前解密了OS安装程序中的设备,那么它们可能会被您指定的其他名称引用(例如luks- )。 如果您没有这样做,您可能会收到错误说明cryptsetup: lvm is not available在引导期间cryptsetup: lvm is not available

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

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

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