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

stw*_*sel 15 linux fsck luks

我的 Ubuntu 11.04 机器对 root、swap 和 home 使用 LUKS 加密。例程 fsck -n 揭示了我需要修复的一组错误。fsck 需要卸载分区。在 luks 之前,我会简单地从 U 盘启动并从那里修复运行 fsck。对 LUKS 加密分区执行此操作的步骤是什么?

Zor*_*che 29

确切的方法取决于您如何设置 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
Run Code Online (Sandbox Code Playgroud)

如果您使用 Debian/Ubuntu 安装程序提供的 LVM on LUKS 选项,那么您需要启动 LVM。所以vgchange -aly在打开加密卷后,然后对/dev/mapper/lvname.

(如果缺少命令,您可能需要先做apt-get install cryptsetup。同样,如果您需要vgchangeapt-get install lvm。)

  • 无论出于何种原因,“cryptsetup luksOpen /dev/rawdevice somename”都无法为我提供运行“fsck”的东西,尽管在“vgc​​hange -ay”为“活动”后它与“vgscan”一起显示得很好。 ..我必须使用“vgscan --mknodes”手动创建原始设备,然后使用“fsck /dev/cryptVG/root”在“vgscan”中显示的逻辑卷上创建“fsck” - 希望这对其他人有帮助 (2认同)

Wyz*_*ard 10

您需要先打开 LUKS 卷。

cryptsetup luksOpen /dev/(whatever) someName
Run Code Online (Sandbox Code Playgroud)

这将询问您密码,然后 create /dev/mapper/someName,这是您可以运行的纯文本设备fsck。完成后,

cryptsetup luksClose someName
Run Code Online (Sandbox Code Playgroud)

将删除/dev/mapper/someName纯文本设备,。