Centos

無法格式化仍在使用的設備 /dev/sda4

  • February 15, 2022

當我嘗試使用命令 LUKS 加密 CentOS 7 伺服器上的分區時cryptsetup -y luksFormat /dev/sda4,嘗試失敗並出現錯誤Cannot format device /dev/sda4 which is still in use. 如何解決此錯誤並成功 LUKS 加密分區?

這是終端記錄:

[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/dm-1        50G  1.1G   46G   3% /
devtmpfs        3.8G     0  3.8G   0% /dev
tmpfs           3.8G     0  3.8G   0% /dev/shm
tmpfs           3.8G  8.7M  3.8G   1% /run
tmpfs           3.8G     0  3.8G   0% /sys/fs/cgroup
/dev/sda6       296G   65M  281G   1% /vpn
/dev/sda2       477M  110M  338M  25% /boot
/dev/sda1       200M  9.8M  191M   5% /boot/efi
/dev/sda3       596G   73M  565G   1% /home
/dev/sda7       296G   65M  281G   1% /test
/dev/sda5       296G   65M  281G   1% /public
/dev/sda4       296G   65M  281G   1% /data
[root@localhost ~]# cryptsetup -y luksFormat /dev/sda4

WARNING!
========
This will overwrite data on /dev/sda4 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter passphrase: 
Verify passphrase: 
Cannot format device /dev/sda4 which is still in use.

目標是完全銷毀目前/data磁碟上的所有內容並創建一個新的、完全空的加密卷嗎?因為這就是您使用此命令所做的事情。這就是整個“警告:這將不可撤銷地覆蓋 /dev/sda4 上的數據”的內容。您將失去所有目前數據,並從空塊設備重新開始。

更有可能的是,您要做的是對 ​​進行數據備份/data,創建新卷,然後將備份恢復到新的加密文件系統中。您可以tar很好地使用它:

cd /data
tar czvf /root/data_backup.tar.gz .

然後,並且只有在那時,您才使用cryptsetup. 解決錯誤的方法是先解除安裝:

umount /data
cryptsetup -y luksFormat /dev/sda4

然後你可以luksOpen新的 /dev/sda4,然後mkfs進入加密映射,mount結果,最後 cd 進入它並使用tar.

如果你真的 100% 確定你想不可撤銷地摧毀目前的一切/data,那麼跳過第一步,直接跳到umount /data.

編輯:如果您完全這樣做,則目前數據可能是敏感的。如果是這樣,請考慮:

  • cryptsetup luksFormat不會覆蓋所有現有數據。它只覆蓋前幾個 KiB。如果數據敏感,您首先要覆蓋分區上的所有數據,例如使用wipe,請參閱https://superuser.com/questions/831486/complete-wiping-of-hard-drive-shred-wipe-or-dd . 如果分區很大,如果其他分區上沒有太多數據,將所有數據包含在外部儲存上的備份中會更快,使用內部磁碟的“安全擦除”功能將其立即清空,準備/data好LUKS並恢復您的備份。
  • 為了不污染/root敏感數據,請寫入足夠大的 tmpfs、之後可以安全擦除的較小卷或加密容器中的新文件系統,或者在寫入備份之前tar通過管道輸出。gpg
  • cryptsetup-reencrypt可以就地加密數據。由於該工具不是抗崩潰的,因此仍然建議進行備份。

現有備份在操作期間成為主要副本。對於重要數據,應進行第二次備份,以便始終存在多個副本。

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