Centos
無法格式化仍在使用的設備 /dev/sda4
當我嘗試使用命令 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
可以就地加密數據。由於該工具不是抗崩潰的,因此仍然建議進行備份。現有備份在操作期間成為主要副本。對於重要數據,應進行第二次備份,以便始終存在多個副本。