VirtualBox を使用すると、仮想マシンで Linux を実行できます。ファイルを消去しているにもかかわらず、仮想ディスクのサイズが継続的に増大することがよくあります。これらのボリュームを元のサイズに縮小し、圧縮してディスク領域を節約する方法を説明します。
Windows ゲストで VirtualBox を使用したことがある場合 (仮想マシン用語では、「ゲスト」とは仮想マシン内で実行されているオペレーティング システムを指します) 、おそらく、VirtualBox からファイルを削除すると、VirtualBox のディスク ボリュームが縮小し、ファイルを含めるのに必要な物理ディスク上のスペースのみが使用されることに慣れているでしょう。
これは VirtualBox の動的割り当て機能の本来の目的ですが、Linux ゲストでは機能しません。 Linux ゲストを使用している場合、多くのユーザーは、ディスクがフル サイズまで拡大し、ファイルがディスクから削除されても元に戻らないことに気づきます。
これは、Linux がそのファイルシステムを管理する方法と、VirtualBox ホストと対話する方法に起因します。 Linux では、パフォーマンス上の理由から、ファイルが削除されるときにファイルを「ゼロアウト」(空のデータで上書き)しないため、VirtualBox は、仮想ディスク上のどのデータがアクティブ データで、どのデータが削除されたかを知る方法がありません。
この問題は、自分でデータをゼロ化し、VirtualBox にボリュームを圧縮して実際のサイズに戻すように指示することで解決できます。作り方は次のとおりです。
Linux ゲストの仮想ディスクからディスク スペースを再利用するには、まず動的割り当てが有効になっていることを確認する必要があります。そうでない場合は、ディスクを動的に割り当てられたディスクに変換する必要があります。
次に、仮想ディスクをバックアップします。何か問題が発生した場合 (コマンドの入力ミスや、プロセスの途中で電源が落ちた場合など)、Linux ゲスト内のすべてのデータが失われる危険があります。
次に、Linux ゲストのターミナルで次のコマンドを実行します。
sudo dd if=/dev/zero of=/var/deleteme
このコマンドは、ディスクが完全にいっぱいになるまで、ゼロ化された (空の) データをファイル /var/deleteme に書き込みます。これにより、以前に削除されたすべてのファイルが上書きされ、Linux が削除されたデータを自動的に上書きしないという問題が解決されます。
dd コマンドを使用すると、警告なしにデータが上書きされるので注意してください。コマンドとパスを実行する前に注意深く確認してください。
このプロセスはボリュームのサイズによっては時間がかかる場合があるため、中断せずにしばらくお待ちください。完了すると、プロセスは終了します (おそらく、スペースが不足していることを示すエラーが表示されます)。これが発生したら、ゼロ化されたファイルを削除して Linux ゲストをシャットダウンできます:
sudo rm -rf /var/deleteme]sudo shutdown now -h
これで、仮想ディスク上の未使用のスペースがゼロになり、VirtualBox はホスト上のスペースを縮小して再利用できるようになります。最後の手順では、vboxmanage コマンドを使用して仮想ディスク イメージを圧縮します。これを実行するには:
vboxmanage modifymedium disk /path/to/image.vdi -compact
/path/to/image.vdi をパスに変更する必要があります。圧縮する仮想ディスクの名前。 Windows を使用している場合は、次のように VBoxManage.exe を使用する必要があります:
VBoxManage.exe modifymedium disk /path/to/image.vdi -compact
Windows システムのコマンド ラインから VBoxManage.exe を使用できない場合は、有効にする方法についての手順をお読みください。
VirtualBox Linux ゲストを圧縮するこの方法では、dd コマンドを利用して空のファイルをディスクに書き込み、VirtualBox で空のスペースを識別できるようにします。
dd (データ デュプリケーター) コマンドは、ファイルの変換とコピーを行うほか、データの書き込みにも使用できます。これに渡される「if」オプションは入力ファイルを提供します (この場合、/dev/zero はゼロ値データまたは null データの定数ストリームを提供します)。 「of」オプションは出力ファイルを指定し、ゼロ データのストリームが出力ファイルに書き込まれます。 /dev/zero が null データの提供を停止しないため、これはディスクがいっぱいになるまで続きます。
デフォルトでは、VBoxManage.exe は Windows コマンド ラインでは使用できません。 VirtualBox インストール ディレクトリを含むように Windows システム パスを更新するか、使用時に実行可能ファイルへのフル パスを呼び出すことで追加できます:
& "C:/Path/To/VBoxManage.exe" modifymedium disk /path/to/image.vdi -compact
「&」記号は呼び出し演算子と呼ばれ、引用符で囲まれたコマンドを実行します。これにより、実行可能ファイルへのパスにスペースを使用できるようになります。
ゲストの成長に応じて、仮想ディスクのサイズを減らすだけでなく増やすこともできます。スナップショットを使用すると、特定の時点での仮想マシンの状態を取得して保存できます。後で、その時点の状態に戻りたい場合 (たとえば、構成変更をテストした後)、単にロールバックするだけで、すべてが元の状態になります。
VirtualBox は強力な仮想化ツールで、開発者がソフトウェアを構築してテストするために専門的に使用することも、ホーム ユーザーが最新のコンピュータで古いソフトウェアやゲームを実行することも、2 台目のマシンを購入することなく他のオペレーティング システムを実行することにも使用できます。 。 Windows、Linux、ChromeOS、Android、およびその他のオペレーティング システムを MacOS、Windows、および Linux ホスト上で実行できます。
変更は保存されました
電子メールは送信されました
電子メールはすでに送信されました
電子メール アドレスを確認してください。 &&&] 確認メールを送信します
フォローするトピックのアカウント上限に達しました。免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3