我安装了 Ubuntu 16.04 LTS,并使用全盘加密这指导。通常我必须输入一个密码来解锁root
,然后输入另一个密码来解锁swap
,然后系统启动时不会出现任何问题(home
自动解锁)。但今天,成功解锁后,我多次root
输入密码错误,然后收到以下消息: 。我多次尝试关闭系统以再次输入这两个密码,但在一次尝试后我再次收到相同的消息。我前段时间也遇到过这种情况,唯一的解决办法就是重新安装系统。swap
cryptsetup: lvm is not available
所以我的问题是:我的系统可能发生了什么问题,如何在不重新安装系统的情况下修复它?
我绝对确定我知道正确的密码,所以我认为这不是问题。
如果有帮助,我将分区的 LUKS 标头(按照指南中的建议)备份在安全的地方。恢复 LUKS 标头可以解决我的问题吗?
另外,请考虑到我是一个非常基础的用户,只能可靠地遵循分步指南。
答案1
不要忘记bindmount /dev。对我来说,除非 id 这样做,否则它不会起作用。
答案2
你好,这可能对你有帮助:
我在 xubuntu 16.04 上也遇到了同样的情况,请耐心按照以下步骤操作,它会对您有很大帮助:
失败:
消息“cryptsetup:lvm 不可用”设置第一个密码后是由于交换分区损坏。
检查从 USB 或 Live CD 启动并运行gparted,识别您的硬盘(从实时系统启动应该是/sda,如果您的系统中连接了多个磁盘,则可能会发生变化)
选择ubuntu主安装盘,在字段中查找失败的分区“文件系统”,它显示损坏的分区(交换)“未知”。
解决问题:
留在现场会议
从gparted选择这个“未知”分区并将其删除。创建一个新的,无论是 ext2、ext3 还是 ext4。新的分区名称可能会更改,请不要忘记该名称( /sda# )。关闭gparted。
打开 shell 并输入:
黑子
请注意包含在第 1 项创建的分区的行,它看起来像这样:
/dev/sda#: UUID="acc7a537-a71e-47e1-9f5e-231bb273bae6" TYPE="crypto_LUKS" PARTUUID="000c06c7-05"
将计算机上显示的 UUID 复制到新分区/dev/sda#。
隐窝通过使用cryptsetup luks 格式,在外壳类型上:
cryptsetup luksFormat --cipher Twofish-xts-plain64 --key-size 512 --hash sha512 --iter-time 2000 /dev/sda#
它将要求输入密码,请按照应用程序操作。
打开新的 luks 加密分区作为交换:
cryptsetup luksOpen /dev/sda# swap
将此 luks 分区格式化为交换分区,在 shell 上输入:
mkswap /dev/mapper/swap
以 root 身份打开 luks 分区 /dev/sda2 (原始系统上的根分区),在 shell 上输入:
cryptsetup luks打开 /dev/sda2 root
从实时会话中准备 chroot 到原始安装的系统。回想一下我们的系统分区是 /dev/sda2,Cryptsetup 将其简单地称为 root。原系统的引导分区为/dev/sda1。
mkdir mnt/
cd/mnt
根目录
挂载 /dev/mapper/root 根
挂载 /dev/sda1 root/boot
现在进行实际的更改根目录并安装一些所需的文件系统点。
chroot 根目录
挂载 -t proc proc /proc
挂载-t sysfs sys /sys
编辑原始的 crypttap.写入新的 UUID(在第 2 项上复制的 UUID)替换交换分区的旧 UUID,请执行以下步骤:
纳米 /etc/crypttab
shell 将显示加密的 UUID,如下所示:
root UUID=b61e1bf7-01e0-43e9-b5cd-19b3dc708343 none luks
swap UUID=b0be04e5-086b-4236-91b2-3489878bb9e5 none cipher=twofish-xts-plain64,size=512,hash=sha512,swap
home UUID=acc7a537-a71e-47e1-9f5e-231bb273bae6 none luks
小心替换新的加密交换分区 UUID
保存并关闭 nano
生成新的引导文件系统映像并退出 chroot。
更新-initramfs -u
出口
关闭实时会话,重新启动系统,祝你好运。