![使用 fsck 检查并修复 LUKS 加密磁盘?](https://linux22.com/image/580091/%E4%BD%BF%E7%94%A8%20fsck%20%E6%A3%80%E6%9F%A5%E5%B9%B6%E4%BF%AE%E5%A4%8D%20LUKS%20%E5%8A%A0%E5%AF%86%E7%A3%81%E7%9B%98%EF%BC%9F.png)
我的 Ubuntu 11.04 机器对 root、swap 和 home 使用 LUKS 加密。例行 fsck -n 发现了一组我需要修复的错误。fsck 需要卸载分区。在使用 luks 之前,我只需从 USB 启动并从那里修复运行 fsck。对于 LUKS 加密分区执行此操作的步骤是什么?
答案1
具体方法取决于您如何设置 luks,以及您是否在 luks 上有 LVM,或者您是否仅在 luks 卷内有一个文件系统。
如果除了 luks 之外您没有 LVM,那么您可能会做类似的事情。
cryptsetup luksOpen /dev/rawdevice somename
fsck /dev/mapper/somename
# or
cryptsetup luksOpen /dev/sda2 _dev_sda2
fsck /dev/mapper/_dev_sda2
如果您使用了 Debian/Ubuntu 安装程序提供的 LUKS 上的 LVM 选项,则需要启动 LVM。因此,vgchange -aly
在打开加密卷后,针对 运行 fsck /dev/mapper/lvname
。
(如果缺少命令,您可能需要apt-get install cryptsetup
先执行。同样,如果您需要vgchange
执行apt-get install lvm
。)
答案2
您需要先打开 LUKS 卷。
cryptsetup luksOpen /dev/(whatever) someName
这将要求您输入密码,然后创建/dev/mapper/someName
,这是您可以运行的纯文本设备fsck
。完成后,
cryptsetup luksClose someName
将删除/dev/mapper/someName
纯文本设备。
答案3
程序应该相同。
使用 Debian(我的情况是 7.7.0 amd64 netinst)USB 棒,可以进入救援模式,该模式应识别 LUKS 分区,提示输入密码并映射它。它还会识别和映射其中包含的任何 LVM 分区。如果您没有挂载根分区,则从 shell 提示符中您可以直接执行e2fsck -f -c /dev/system_name/partition_name
,等等。
这个问题已经四年了,但我认为程序没有改变。
不过,我应该指出,在已挂载的文件系统上执行操作几乎肯定会报告错误,而卸载fsck -n
时实际上并不存在这些错误!fsck
答案4
当我遇到 时,我正在使用 USB 记忆棒上的“实时”Debian 映像e2fsck
。上述答案对我没有帮助,但我了解到:当我使用 解密磁盘时cryptsetup
,实时操作系统会自动将卷挂载到 /media 中的某个位置。我必须先卸载卷,然后 e2fsck 才能在其中一个上运行。