Mount

如何在整個磁碟上使用 zerofree?

  • March 14, 2021

我的 VirtualBox 文件系統如下所示:

# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       29799396 5467616  22795012  20% /
devtmpfs         1929980       0   1929980   0% /dev
tmpfs            1940308      12   1940296   1% /dev/shm
tmpfs            1940308    8712   1931596   1% /run
tmpfs            1940308       0   1940308   0% /sys/fs/cgroup
/dev/sdb        31441920 1124928  30316992   4% /srv/node/d1
/dev/sdc        31441920   49612  31392308   1% /srv/node/d2
/dev/sdd        31441920   34252  31407668   1% /srv/node/d3
/dev/sda1         999320  253564    676944  28% /boot
tmpfs             388064       0    388064   0% /run/user/0

磁碟/dev/sdb, /dev/sdc,/dev/sdd是 VDI 數據磁碟。我從它們中刪除了一些數據(不是所有數據),然後想用它zerofree來壓縮它們。看起來我不能zerofree在這些磁碟上使用。這是一個執行:

# zerofree -v /dev/sdb
zerofree: failed to open filesystem /dev/sdb

是否可以在此類磁碟上使用 zerofree?如果沒有,是否有任何替代解決方案?我需要將現有數據保留在這些磁碟上,但使用zerofree(或其他任何東西)用零填充已刪除的數據。

我沒有找到有關如何zerofree在此類磁碟上使用的答案,但我找到了一種效果很好的替代解決方案。

  1. 將您的磁碟安裝在某處(在我的情況下,3 個磁碟安裝到以下位置:/srv/node/d1、、、/srv/node/d2/srv/node/d3
  2. 輸入安裝磁碟的目錄 ( cd /srv/node/d1)。
  3. 執行命令:dd if=/dev/zero of=zerofillfile bs=1M
  4. 刪除創建的文件:rm -f zerofillfile
  5. 對所有磁碟執行上述操作。

PS 和這個問題無關,但是對於虛擬盒子磁碟壓縮,執行上述命令後使用命令:

VBoxManage modifyhd --compact /path/to/my/disks/disk1.vdi

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