重新安装到现有加密分区
我的磁盘布局是这样的:
-
/
加密分区 -
/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
然后您就可以重新启动进入新系统了。