使用 fsck 检查并修复 LUKS 加密磁盘?

使用 fsck 检查并修复 LUKS 加密磁盘?

我的 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 才能在其中一个上运行。

相关内容