Luks

Arch Linux 設置 Luks 加密

  • July 15, 2016

所以我試圖在安裝 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.

我該如何解決?

如果它正在使用中,您應該檢查它是否已安裝、循環設備、仍然打開 cryptsetup、在 LVM 中處於活動狀態、RAID 集的一部分等,然後停止所有這些事情。同時退出任何可能正在使用設備的正在執行的程序(分區程序、安裝程序、ddrescue、badblocks 等)。關於什麼可以使用設備的可能性列表幾乎是無窮無盡的。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。)

引用自:https://unix.stackexchange.com/questions/296066