Hyper-V仮想マシンとファイル送受信する
Hyper-Vの仮想マシン上で動いているゲストOSとホストOSの間でファイルを共有したい場合、基本的にはネットワーク接続してファイルの共有を行います。
こちらを参考にしてみてください。ネットワークで共有するのが一般的です。
今回はネットワーク接続できない場合のホストマシンと仮想マシン間のファイル共有方法を紹介します。
ところで、なぜ私は今回ネットワーク接続できないような仮想マシンとファイル共有をしたいのでしょうか。
実は、、、
実家に置いてあった古いUSBハードディスクからWindowsXP時代によく遊んだゲームを発掘してしまったので、どうしてもWindows10でまた遊びたいんです!!(切実)
そんな理由のくだらん理由か・・・ と思ったあなた、まぁ動機はこんなんですが、この記事で紹介する仮想ディスクを使ったファイル共有を使うと、次のような環境でもホストと仮想マシンでファイル共有ができますので、知っておくと便利だと思います。
- ネットワークがまったく利用できないセキュアな環境(サーバエリアなど)にいる場合
- 会社などで勝手にネットワークに仮想マシンを接続できない場合
- 仮想マシンのOSがサポート切れでセキュリティ上の問題があってネットワーク接続できない場合
仮想マシン側の状態を確認
- ホスト:Windows10pro & Hyper-V
- ゲスト:WindowsXPpro
ずっと前に構築したWindowsXP保全用の仮想マシンなのですが、Hyper-Vマネージャでネットワークを有効にしても接続できなくなってしまいました。
デバイスマネージャーで確認するといくつか認識できないデバイスがみつかりました(①)。この中にネットワークカードがあるかもしれません。
ipconfigでネットワークカードに割り当てられたIPアドレスを確認しようとしたのですが、やはりNIC自体認識していないようです。
完全に外界と隔離されてしまっている・・・

でもいいんですよ。WindowsXPはもうサポート切れの古いOS。これをネットワーク接続すること自体が危険です。
仮想ディスクを作成して仮想OS上でマウントする
接続コントローラー選択
まずはファイル共有する時の入れ物を作ります。
Hyper-Vで仮想マシンを作るのと同様に、仮想ディスクを作ることもできます。
①IDEコントローラーを選択して②ハードドライブを選択し、③追加ボタンを押します。

IDEコントローラーに新しいハードドライブが追加されます。
①仮想ハードディスクを選択し、②新規ボタンを押します。

ここから仮想ハードディスクの作成ウィザードが開始されますので、次へ進んでいきましょう。

仮想ディスクのタイプ選択(VHD / VHDX)
仮想ディスクには2種類フォーマットがあります。
ゲストOSが比較的新しいOSであればVHDX形式の方が高性能かつ安全ですが、今回はWindowsXPで使いたいのでVHD形式にします。

ディスク容量(固定/可変)
仮想ディスクのタイプが選択できます。利用用途にあったものを選択してください。
今回はちょっとしたファイルの共有をしたいだけですので、容量固定タイプを選択しました。

仮想ディスクはホストOS上では一つのファイルとして扱われます。そのファイルの名前とどこに格納するか指定します。

仮想ディスク容量指定
どれぐらいの仮想ディスクを準備するか容量を指定します。今回はちょっとしたファイルのやりとりに使うので2GBにしました。1GBでも良かったのですが、指定できる最低サイズが2GBでした。

最後に確認して設定どおりであれば完了ボタンを押すと仮想ディスクファイルが作成されます。

仮想ディスクの作成が終わると、次のように仮想マシンの構成要素の一つとしてエントリーされます。これで仮想OS上でも一つのハードディスクとして認識できるようになります。

これで仮想ディスクの作成は終わりです。次は、作った仮想ディスクを仮想マシンのWindowsXPから使えるようにします。
仮想マシン上で仮想ディスクを認識させる
今作った仮想ディスクを使いたい仮想マシンを起動します。
今回はWindowsXPで確認します。
起動した直後は、ドライブとしてまだ認識できていません。どうやらHyper-Vの設定として仮想ディスクをアタッチしただけでは自動認識しないようです。
エクスプローラーで表示しても追加した仮想ディスクは出てきません。

ディスクの管理機能で仮想ディスクを認識させる
ディスクの管理機能を使って仮想ディスクを認識させます。
マイコンピュータを右クリックして管理を実行します。

初期化が必要なディスクを検知すると自動的にディスクの初期化と変換ウィザードが起動します。

ウィザードが起動しない場合や、起動したけどキャンセルしてしまった場合は、次のように初期化されていないディスクが表示されますので、右クリックします。

そしてディスクの初期化を実行すればウィサードが起動できます。

初期化するディスクを選択します。さきほど準備した仮想ディスクが表示されますのでチェックが付いていることを確認して次へ進みます。
複数の仮想ディスクを同時にセットした場合は複数表示されるっぽいですね。

ダイナミックディスクに変換するかどうか指定できます。もはやダイナミックディスクが何だったのか思い出せないので、チェック無しで次へ進みました。

ここで選択内容を確認して完了ボタンを押します。

パーティション分割してディスク領域を作成
仮想ディスクの状態がオンラインに変わり、未割り当て状態となります。次は右クリックして新しいパーティションを実行します。

次はディスク内をパーティション分割する作業に入りますので、次へ進みます。

作成するパーティションは、プライマリパーティションにしました。拡張パーティションが何だったのかも忘れてしまいました。よく昔はパーティション分割していたんですけどね・・・

今回はパーティション分割せずに一つでいきますので、最大ディスク容量と同じサイズを指定して一つだけにします。

仮想ディスクのドライブレターを選択します。今回は追加した仮想ディスクをEドライブにしました。

次にパーティションのフォーマット形式を選択します。FAT系とNTFSが選択できます。
まぁ普通にNTFSでよいでしょう。物理ディスクではないのでクイックフォーマットでささっと済ませます。

セッティング内容を確認して、完了ボタンを押せばできあがりです。

これで仮想ディスクがEドライブとして認識されました!

エクスプローラーでも確認してみましょう。Eドライブが増えていますね。

ファイルを共有してみる
仮想マシン(WindowsXP)からホストマシン(Windows10)へ
本当は先にWindows10側で仮想ディスクにファイルを保存して仮想マシンで見れるね、という感じで書くつもりだったのですが、逆になってしまいました。
WindowsXPから何を持ち帰ればよいというのだ、、、
ある!
今回の記事を書く際に思いっきり作業妨害してきたのがこやつです。
作業妨害の鬼、マインスイーパー!
WindowsXPを起動すると反射的に起動してしまうので、今回も気がついたら起動して遊んでました。
そんなわけで今回は記事を書き終えるまでにいつもの倍以上かかってしまいました。
もちろん、ちゃんと上級クリアしておきました。13分ぐらいかかってますね。腕が鈍りました。

WindowsXPからマインスイーパーを仮想ディスクへコピー
なにも持ち帰るものがないので、このゲームを持ち帰ってみます。Windows10で動くのかな?
ゲーム本体はここに入っています。ファイル名から判断するとこの3つっぽいです。

これを仮想ディスクにコピーして持ち帰ってみます。

Windows10で仮想ディスクの中身を見るには
恐ろしく簡単です。
仮想ディスクのVHDファイルを右クリックしてマウントをするか、ダブルクリックするとUSBメモリーのように一つのドライブとして認識できます。

おおお、GドライブとしてWindows10上から接続できました。
お持ち帰りの品物もちゃんと入っていますね。

試しにWindows10でマインスイーパーを起動してみたら、、、普通に動きました\(^o^)/

仮想ディスクは使い終わったらアンマウントする
仮想ディスクは使い終わったら右クリックの取り出しを実行して、アンマウントしておきましょう。こっちでマウントしていると仮想マシン起動した時にエラーになります。

ホストマシン(Windows10)から仮想マシン(WindowsXP)へ
次は逆にホストマシンから仮想マシンへのファイル共有ですが、
今の逆をやればよいだけです( ・ิω・ิ)
え? 雑すぎる?
もともとはWindowsXP時代のゲームを発掘したので、WindowsXPの仮想マシンに持ち込んで遊んでみたい!というところから始まっていますので、そちらの記事をご覧いただければと思います(鋭意執筆中)。ただ、懐かしいゲームで遊んでしまってライティングに時間かかってしまったらごめんなさい。
まとめ
今回は途中でゲームの話とかしてしまいちょっとグダグダ感ありますので、まとめます。
- ホストマシンと仮想マシン間のファイル共有はネットワーク経由か仮想ディスク経由で可能
- ネットワーク経由だと双方から同時にアクセスできるので簡単で便利だが、ネットワークが使えない環境では利用できない
- 仮想ディスク経由だとネットワークがない環境でも共有できるが、双方から同時にはアクセスできない点に注意
利用用途に応じて使い分ければよいと思います。
私の場合は、基本的にネットワーク経由でファイル共有し、今回のようにネットワーク接続できない仮想マシンの時は仮想ディスクを使っています。
コメント
仮想ディスク経由でファイルを共有しています。
ホストマシン(Windows10)から仮想マシン(WindowsXP)へのファイル共有は問題なく出来たのですが、仮想マシン(WindowsXP)からホストマシン(Windows10)への共有ができません。
XP側で、仮想ドライブにファイルを書き込んで、Win10側でマウント後に共有ドライブを見ると、壊れているというメッセージが出てコピーしたはずのファイルが見れません。
何が問題なのか、ご教授いただけると助かります。
壊れているというメッセージの詳細な情報をいただけますか?
もしかしたらなにか分かるかもしれません。
あと気になる点としては、
①Windows10側でマウントする時はXPの仮想マシンはシャットダウン済みですよね?
②XPからWin10へ持っていこうとしているファイルのサイズはどれぐらいでしょうか?
③仮想ディスクの全体サイズはいくつでしょうか?(この記事では2GB)
連絡が遅くなってしまい申し訳ございません。
①仮想マシンはシャットダウンしようとすると、必ずシャットダウンエラーに
なってしまいます。シャットダウンの代わりに「停止」を行っていました。
こちらは問題なく停止できます。
②ファイルのサイズは1kb程度のテキストファイルです。テストで作ったものです。
③仮想ディスクの全体サイズは2GBにしています。
仮想マシン(WindowsXP)側の共有フォルダ(私の環境ではEドライブ)にファイルを
書き込んだ後にchkdskを実行してから、ホストマシンに戻ってみるとファイルが見え
ました。ファイルが破損?していたのでしょうか?
Hyper-Vマネージャーからの停止は実機だといきなりコンセント抜くようなものですので、仮想ディスクに不整合が発生したのかもしれません。
まずはWidowsXPを正常にシャットダウンできるようにしたほうがよさそうですね。