はじめに
こんにちは。ちゃばです
今回は「仮想マシンのUbuntuでゴミ箱を空にしても容量が減らない事象の対策方法」を紹介します。
先日、仮想マシンの容量が圧迫してきたのでゴミ箱を整理したのですが、Ubuntu上では容量が減っていることを確認できるのですがWindows側では容量が減らなかったので不思議に思い調べました。
環境
- ホストPC : Windows11
- VirtualBox 7.1.10
- ゲストOS : Ubuntu24.04 LTS
対策方法
原因はVirtualBOXの仕様で、Ubuntu側でいらないファイルを削除しても一度仮想ハードディスクにデータが入ったら普通には減らないということみたいです。
なので下記動作を行う必要になります。
事前準備:スナップショットを削除する
今から行う方法は容量を削減する仮想マシンにスナップショットがあると容量が減りません。
したがってスナップショットを削除する必要があります。
スナップショットが必要で削除できない。という場合は今回の方法は使えません。。。
1. 仮想マシン上で不要なファイルを削除
まずは仮想マシン上でいらないファイルを削除しましょう。
ゴミ箱のなかや、「.local」ディレクトリの中に「Trash」というディレクトリがあります。
この中には削除がうまくできなかった一時ファイルが存在している場合があるのでここもチェックしておきましょう。
2. コマンドを入力し仮想ハードディスクの空き容量を0埋めする
続いて下記コマンドで現在の空いている容量に対して値0を書き込み0埋めします。
sudo dd if=/dev/zero of=zero.full bs=1M
sudo sync
sudo rm zero.full
Bashこうしないとバーチャルボックス上では空いている容量としては認識されないということが起こるので、実施します。
一時的にバーチャルボックス上の容量が最大(MAX)になりますのでビックリしないでください。
私はビビりながらやってました。
3. VirtualBox側の専用コマンドを打ち仮想ハードディスクの容量を最適化する
最後にバーチャルボックスの下記コマンドを打ちます。
下記はWindowsの例になります。
バーチャルボックスのインストール先はデフォルトだと下記になっていると思います。
cd C:\Program Files\Oracle\VirtualBox # VirtualBoxがインストールされている場所へ移動
VBoxManage.exe modifymedium 仮想ハードディスクパス(VDI形式) --compact
PowerShell上記コマンドを入力することによって、仮想ハードディスクの容量を最適化されます。
このコマンドは、仮想ハードディスクの空き容量の中身が「0」になっていないと最適化されないようになっています。
ですので、手順2で仮想ハードディスクの空き容量の中身に「0」を書き込むことをしています。
この手順が終わったら実際に仮想マシン・仮想ハードディスクの容量を確認してみましょう。
不安なときはバックアップをとっておく
0埋めを行うddコマンドを打つと一瞬ですが、仮想ハードディスクの中身がMAXになります。
0埋めを行うコマンドを打つときは最初かなり緊張しました。
個人用なら良いですが、業務でVMを使用しているともし万が一何かが起こったら、、、と考えてしまうと不安になってしまいますよね。
そんな時は事前にバックアップをしておくと安心するのでおすすめです。
ステップとしては一例をご紹介します。
一例ですが、このような手順を踏むことで安心して対応ができるのではないかなと思います。
不安な方はぜひバックアップを!
おわりに
今回は「仮想マシンのUbuntuでゴミ箱を空にしても容量が減らない事象の対策方法」について解説しました。
仮想マシンの容量を減らすのって結構手間がかかるなって思いました。
仮想マシン上の不要データを消しても減らないのかい。って最初ツッコんでしまいました。
仮想マシンの容量が圧迫してきてなんとか減らしたいって思う方は参考にしてみてください。
それでは。