仮想マシン
 Computer >> コンピューター >  >> ソフトウェア >> 仮想マシン

VirtualBoxで仮想ハードディスクを拡張する方法 ― modifyhdコマンドとスナップショットの落とし穴

以前、VirtualBoxのハードディスクを縮小・拡張する方法を紹介するチュートリアルを公開しました。当時は縮小は簡単でしたが、拡張にはディスクイメージの作成が必要でした。ところが状況は一変しました。正確には「ある程度」ですが。VirtualBox 4.X以降では、この仮想化ソフトウェアはディスクの拡張にもネイティブで対応するようになったのです。

実際、私も仮想マシンの空き容量が不足していたため、早速試してみることにしました。コマンド自体は成功したものの、ディスクサイズはまったく変わりませんでした。そこで気づいたのです。スナップショットを使っていたことに。これは10年前の元ガイドでも強調していた点です。この記事では、スナップショットがある場合でも、安全かつスマートにディスクを拡張する方法を解説します。

VirtualBoxで仮想ハードディスクを拡張する方法 ― modifyhdコマンドとスナップショットの落とし穴

modifyhd(modifymedium)コマンドを使う

VirtualBox 4.X以降の大きな変更点は、ネイティブなリサイズコマンドが用意されたことです。VirtualBox独自のハードディスク形式(VDIなど)である必要があり、動的割り当て(可変サイズ)のボリュームでしか機能しませんが、それでも以前より格段に柔軟になりました。コマンドは以下の通りです。

sudo VBoxManage modifyhd "Ubuntu 18.10.vdi" --resize 16000
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

このコマンドを実行して仮想マシンを起動しましたが、ディスクは10GBのままでした。ライブセッションで起動し、GPartedで確認しても、元のサイズのまま未割り当て領域は一切ありませんでした。公式ドキュメントやフォーラムのスレッドを調べた結果、スナップショットがリサイズ操作を妨げていることが判明しました。スナップショットを削除して現在の状態に統合する方法もありますが、より良いのは、スナップショットを保持したまま拡張を行う方法です。ただし、少しだけ注意点があります。次のシナリオを見てみましょう。

VirtualBoxで仮想ハードディスクを拡張する方法 ― modifyhdコマンドとスナップショットの落とし穴

仮想マシンのクローン作成とスナップショットの統合

手順は以下の通りです。まずマシンをクローンし、すべてのスナップショットを1つのイメージに統合してから、再度リサイズ操作を実行します。

まず、新しいクローンの名前を決め、ネットワークアダプターのMACアドレスを再初期化するかどうかを選択します。次に「完全クローン(Full clone)」オプションを選びます。そして最も重要なのが、「現在のマシン状態(Current machine state)」を選択することです。これにより、最新のスナップショットのみが使用され、それ以前のスナップショットデータがすべてこの状態へ統合されます。結果として、「履歴」のない、スナップショットを持たないマシンができあがります。

その後、クローン処理が完了するのを待ちます。古いマシンとそのスナップショットはそのまま保持され、最新のチェックポイントのみを反映した同一コピーが新しく作成されます。これが「小さな注意点」というわけです。

VirtualBoxで仮想ハードディスクを拡張する方法 ― modifyhdコマンドとスナップショットの落とし穴

VirtualBoxで仮想ハードディスクを拡張する方法 ― modifyhdコマンドとスナップショットの落とし穴

VirtualBoxで仮想ハードディスクを拡張する方法 ― modifyhdコマンドとスナップショットの落とし穴

VirtualBoxで仮想ハードディスクを拡張する方法 ― modifyhdコマンドとスナップショットの落とし穴

VirtualBoxで仮想ハードディスクを拡張する方法 ― modifyhdコマンドとスナップショットの落とし穴

ライブセッションで起動してパーティションを拡張

これで、仮想マシンの設定にサイズ変更が反映されているか確認できます。以前はVMディスクは10GBのままで、modifyhdコマンドを実行しても変化しませんでした。今度はきちんと拡張されています。GPartedのような優れたパーティション管理ツールで確認できます。ただし、このままではOS側から追加領域を使えないため、システムのルートパーティションを拡張する必要があります

VirtualBoxで仮想ハードディスクを拡張する方法 ― modifyhdコマンドとスナップショットの落とし穴

VirtualBoxで仮想ハードディスクを拡張する方法 ― modifyhdコマンドとスナップショットの落とし穴

GPartedのチュートリアルで説明したように、ルートパーティションのサイズを増やすだけでOKです。この作業は、ルートパーティションがアンマウントされた状態(つまりライブセッション)で行うべきです。マウントされたままでも試すことはできますが、データ損失の恐れがあるため推奨されません。もちろん、ディスク操作全般に言えることですが、万全を期すために事前にフルバックアップ、さらにはシステムイメージを作成しておくことを強くお勧めします。

VirtualBoxで仮想ハードディスクを拡張する方法 ― modifyhdコマンドとスナップショットの落とし穴

これで完了です。より大きなディスクを持つ仮想マシンが完成し、容量不足の問題は解消されました。もちろん、これは決して簡単な作業ではなく、クローンもリサイズも使えないケースも多々ありますが、全体として、10年前よりもはるかに洗練された手順になっています。

まとめ

このガイドがお役に立てば幸いです。一般的に、ストレージは余るよりも不足しがちです。将来の成長を見込まず控えめな設定で作成されることが多い仮想マシンを、後から柔軟にリサイズできることは重要です。しかも、素早く、中間ステップをあまり踏まずに実行できればなおさらです。

VirtualBox 4.X以降なら、比較的手間をかけずにこれを実現できます。今回はmodifyhdコマンドの使い方、クローン作成の仕組みとスナップショットへの影響について学び、GPartedを使ったパーティション管理の手法も再確認しました。本質的に変わらない部分もあります。クローンは昔ながらのイメージ作成に似ていますが、少なくともVirtualBox内でネイティブに行えるのは非常に便利です。それでは、また。

  1. VirtualBox 4レビュー:新機能と変更点を徹底解説

    先日、Oracle(旧Sun、さらにその前はinnotek)が、同社の仮想化ソフトウェアの看板製品であるVirtualBoxの新バージョンをリリースしました。この洗練されていて多用途な製品は私のお気に入りの一つなので、早速試してみることにしました。ただし、懸念がないわけではありません。OpenSolarisやOpenOfficeなど、他の製品の扱いを見る限り、Oracleは必ずしもオープンソースに優しいとは言えないからです。ブランド名に「open」という言葉を使わないことが、生き残りの鍵なのかもしれませんね。 さておき、VirtualBoxは無料で使える優れたデスクトップ向け仮想化ソフトウェア

  2. Product Creatorで独自のLinuxディストリビューションを作成する方法

    今回は、再びKiwiについてお話しします。Kiwiはイメージングシステムであり、より大規模なopenSUSE Build Serviceの一部として組み込まれた、強力かつ多機能なイメージング/仮想化ソリューションです。自分のインストール環境、素のopenSUSE、あるいはその他のLinuxディストリビューションをベースに、あらゆる種類のOSイメージを作成できます。完全にカスタマイズ可能で、幅広いフォーマットで展開・配布できる点が魅力です。KiwiはXMLテンプレートを使用してこれらの処理を実現します。自動化やスクリプティングを好むパワーユーザー向けに設計されているためです。しかし、Kiwiには