こんにちは、わたあめです。先日ホストOS(Hyper-V)からゲストOS(仮想マシン)へファイルコピーを「Copy-VMFile」というコマンドで簡単にコピーする方法をまとめました。
ただ、この方法だとホストOS→ゲストOSの方向のみのコピーが有効でした。今回の仮想ディスクを使ったファイルのやり取りは、ホストOS⇔ゲストOS両方向にファイルのやり取りができるという方法です。この前課題となったゲストOS→ホストOSのコピーもこれで可能になりました。
それでは、いってみましょう!
仮想ディスクでゲストとホスト間のファイルコピー
大まかな流れは以下の通りとなります。ゲストOSからホストOSへファイルをコピーする流れで紹介していきたいと思います。
1. <Hyper-V>仮想ディスクの作成
2. <ゲストOS>作成した仮想ディスクの初期化
3. <ゲストOS>ディスクの割り当て
4. <ゲストOS>コピーしたいファイルの格納
5. <ホストOS>ファイルの参照
少し長くなりますが、一つずつこなしていきます!
1.<Hyper-V>仮想ディスクの作成
ホストOSのHyper-Vでの作業です。Hyper-VでゲストOSに接続するための仮想ディスクを作成します。
- Hyper-Vを起動 > ゲストOSを選択
- 右側のメニューの[設定]
- [IDEコントローラー0]を選択 > [ハードドライブ]を選択 > [追加]
- 仮想ハードディスクの[新規]ボタン
- [開始する前へ~~]は[次へ]
- ディスクの種類は[VHD]を選択 > [次へ]
- [容量固定]を選択 > [次へ]
- 任意の名前と保存場所を指定 > [次へ]
- [新しい空のハードディスクを作成]を選択 > ディスクのサイズを指定 > [次へ]
- [完了]
ここで、保存場所を覗いてみると「保存場所」で指定したフォルダの場所に.vhdという拡張子のファイルが作成されていますよ。ファイルサイズは、指定したサイズとなっています。
2.<ゲストOS>作成した仮想ディスクの初期化
ゲストOSでの作業です。仮想ディスクを作成しましたが、このディスクは何も処理されていない状態なので使えるように初期化していきます。
- 仮想ディスクを追加したVMを起動
- Windowsボタンを右クリック > [ディスクの管理]
- ディスクの初期化ウィザードが起動 > [MBR(マスターブートレコード)]を選択 > [OK]ボタン
ディスクのフォーマット形式について、MBR形式かGPT形式かどちらにすれば良いか気になる方も要るかと思います。違いはパーティションの上限だったり、HDD容量の上限だったり、対応しているOSの違いだったりといろいろあります。
ただ、今回は一時的なファイルやり取りのHDDなので、MBR形式を選択しておけば無難かなという選択です。
3. <ゲストOS>ディスクの割り当て
引き続き、ゲストOS側の作業です。初期化したディスクをOSのドライブへ割り当てる作業です。
- ディスク1の未割り当ての部分を右クリック > [新しいシンプルボリューム]をクリック
- ウィザードが開始する > [次へ]ボタン
- ボリュームサイズの指定はそのまま > [次へ]
- [次のドライブ文字を割り当てる]で好きなドライブ名を選択 > [次へ]
- [このボリュームを次の設定でフォーマットする]を選択、設定を確認 > [次へ]ボタン
このあと「ドライブX:を使うにはフォーマットしますか?」というダイアログが出てきた場合は、案内にしたがってディスクのフォーマットしておけば良いです。
基本、デフォルトのまま進めました。一時的に使うものでこだわりが無かったの次へ、次へという流れ作業しました。
4.<ゲストOS>コピーしたいファイルの格納
引き続きゲストOSで作業を進めます。ドライブとして認識された仮想ディスクに移したいファイルをコピーして格納します。
- ファイルエクスプローラー > 左側の[PC] > [デバイスとドライブ]欄
- ディスクの割り当てで指定したドライブ文字の[ボリューム(E:)]をダブルクリック
普通のフォルダへファイルを移すように、このドライブにファイルをコピーして格納します。ここまでの作業が終了したら、ゲストOSはシャットダウンしておきましょう。
5.<ホストOS>ファイルの参照
作業はホストOSへ移ります。ゲストOSで使っていた仮想ディスクをホストOS側で認識=マウントします。もう一度確認ですが、ゲストOSはシャットダウンした状態でお願いします。(でなければ、この後のマウントでエラー出てしまうので。)
- ホストOSの.vhdディスクを右クリック > [マウント]をクリック
これで仮想ディスクがマウントされ、ファイルが閲覧できるようになりますよ。必要なファイルを移したら、取り出し=アンマウントをしておきましょう。手順は以下の通りです。
- ファイルエクスプローラー > 左側の[PC]をクリック
- 仮想ディスクがマウントされたボリュームを右クリック > [取り出し]をクリック
ホストOS側のマウント・アンマウントはすごく簡単でした!
使わなくなった仮想ディスクを削除するには?
これまで使ってきた仮想ディスク、もう必要ないよ~という状況になるかもしれません。不要になった際は仮想ディスクの削除を行います。
- ゲストOSをシャットダウンしておく
- Hyper-Vを起動
- 仮想ディスクがアタッチされているゲストOSを選択 > 右側の[設定]
- IDEコントローラー欄 > [ハードドライブ]の該当のvhdファイル名を選択
- [削除]ボタンをクリック
ここでHyper-Vからこの仮想ディスクの認識はなくなりました。ただ、仮想ディスクの実体ファイルは残っているので、実体も削除したい場合は、保存した場所の[.vhd]ファイルを削除しておきます。
すぐに削除しようとすると「Systemによってファイルは開かれているため~」ということで削除できなかったです。ホストのPCを再起動する、しばらく待って削除するという対処でいきます。
余談:一番簡単なのは拡張セッションモードかも
仮想ハードディスクでファイルコピーする方法を記載してきましたが、もしHyper-Vのホスト設定が変更できるのであれば、拡張セッションモードというモードが有効をするのが一番簡単な方法かもしれません(笑)
すいません。拡張セッションモードを有効にする手順は以下の通りです。
- Hyper-Vを起動 >(右側のメニュー)Hyper-Vの設定をクリック
- 拡張セッションモードポリシーをクリック > "拡張セッションモードを許可する"にチェックを入れる
これで、コピーペーストでファイルのコピーが出来るようになります。
さいごに
いかがだったでしょうか。長い作業工程お疲れ様でした。
今回はゲスト→ホストのファイルのやり取りでしたが、一度ゲストOSにぶら下がった仮想ディスクを作成しておけば、ホスト→ゲストのファイルのやり取りも可能です。(ゲストOSの仮想ディスクをホストでマウントしている状態でファイルを格納すればOKです。)
ネットワークに繋がっていない、拡張セッション設定が使えないという環境で便利な方法となります。それでは、また!