質問: ディスク全体でzerofreeを使用するにはどうすればよいですか? 私の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を使用する方法についての答えは見つかりませんでしたが、うまく機能する代替ソリューションを見つけました。 ディスクをどこかにマウントします(私の場合、3つのディスクが次の場所にマウントされます:/srv/node/d1、/srv/node/d2、/srv/node/d3)。 ディスクがマウントされているディレクトリを入力します(cd /srv/node/d1)。 次のコマンドを実行します:dd if=/dev/zero of=zerofillfile bs=1m 作成したファイルを削除します:rm -f zerofillfile 上記の操作をすべてのディスクに対して実行します。 p.s.この質問とは関係ありませんが、仮想ボックスディスクの圧縮には、上記のコマンドを実行した後にコマンドを使用します。vboxmanage modifyhd --compact /path/to/my/disks/disk1.vdi