Arch Linux 设置 Luks 加密

Arch Linux 设置 Luks 加密

所以我试图在安装 Arch Linux 时加密分区 sda2 。

root@archiso ~ # cryptsetup luksFormat /dev/sda2 -c aes-xts-plain -y -v -s 512 -h sha512

但它失败了:

Cannot format device /dev/sda2 which is still in use.

我该如何解决?

答案1

如果它正在使用,您应该检查它是否已安装、循环设备、是否仍然 cryptsetup 打开、在 LVM 中处于活动状态、RAID 集的一部分等,然后停止所有这些操作。还要退出可能正在使用该设备的任何正在运行的进程(分区程序、安装程序、ddrescue、坏块......)。关于设备的用途的可能性列表几乎是无穷无尽的。lsof或者fuser能够抓住其中一些......

# example only, none of these are accurate
umount /dev/sda2
losetup -D
vgchange -a n
cat /proc/mdstat | grep -C 2 sda2
mdadm --stop /dev/md??
...

或者,如果您想故意忽略该问题,可以明确地将循环设备放在顶部,然后格式化该循环设备。之后您应该重新启动,看看是否有任何仍在使用该设备的东西,会因此损坏您的 LUKS 标头(如果您在重新启动后无法打开它,那就是发生的情况)。无需重新启动,您也许可以愉快地在设备上复制数据,但后来一切都消失了......

# dangerous hack
cryptsetup luksFormat $(losetup --find --show /dev/sda2) -s 512 -h sha512 ...
reboot

首先还要三重检查您是否确实使用了正确的设备。在您的帖子中您以某种方式提到了 sda1 和 sda2 那么它是哪一个?

这不是您问题的一部分,但aes-xts-plain已被弃用,以支持aes-xts-plain64.它也是默认密码,因此您根本不必指定它。 (cryptsetup --help随后请参阅或 luksDump。)

相关内容