背景
Windows7上でやりたい作業があったため、Hyper-Vで仮想マシンを構築した。
直接インターネットには繋ぎたくないが、作業効率化のためホスト(Win11機)とのファイル共有や画面共有がしたい。
その方法について試行錯誤する中で学びがあったので記しておく
前提:Hyper-Vにおける制限
- 拡張セッションという、クリップボードやオーディオなどの共有がスムーズに行える機能がある。
ただし、ゲストOSがProエディション以上でないといけない。
今回インストールしたのは Win7 Home Premium なので使用不可 - 仮想グラフィックドライバは最低限の機能しか持たないものなので、描画関係ではトラブルが起きがち
ネット接続・ファイル共有編
-
Hyper-Vマネージャーで【内部スイッチ】を作成
-
仮想マシンの設定で、そのスイッチに紐づけたネットワークアダプターを追加
- Win7の場合、【レガシ ネットワーク アダプター】を使用する必要があった
-
(ホストOS側)作成したスイッチをncpa.cplなどで開き、IPを設定
- 今回は 10.99.0.1/16 とした
-
(ゲストOS側)静的IPを設定
- 今回は 10.99.0.10/16 とした
- DHCPにすると、169.254.x.x のアドレスになってしまう
(参考:なぜネットの調子が悪いと”169.254″から始まるIPアドレスになるのか - 株式会社シーポイントラボ)
これでpingが通るはず。
(筆者環境では、ホスト→ゲストはそのまま通ったがゲスト→ホストはファイアウォールで遮断された)
以降、
- ホストの作業フォルダを共有設定
- ゲストからネットワークドライブ割当て
すれば快適なファイル共有環境ができる
画面共有編_概論
やりたいこと
仮想マシン上で行う作業の中で、ネット上の画像をスクショして使いたい場面がある。
ネットに出れるのはホストだけなので、ホスト上のブラウザで開いたものをゲストOS上で表示できないか?
考えた手段
-
ホスト上でスクショして共有フォルダに保存
- 確実な方法だが、ちょっと手間がかかる(ホストで保存→ゲストで開く とかが毎回発生するので)
- なにより、愚直すぎて面白くない!
-
ゲストからホストにリモート接続
- 扱い上は同一LANにいる別PCなのだから、MoonlightやParsecで接続できるはず
- ただ、ゲストからホストを操作してしまうと、ホスト→ゲスト→ホスト→・・・ と無限ループになっておかしなことにならないか?(今回はこれについては検証できず。どうなるんだろう)
-
ホストから動画配信
- LAN内での動画配信など考えたこともなかったので知らなかったが、rtpやrtspというプロトコルがあり、カメラからPCへの動画転送などで使われているらしい
- 今回はOBSを使って似たことをやってみた
画面共有編_リモート接続
結論だけ、書く。失敗した失敗した(ry
ホスト機にはMoonlightのサーバー側アプリを導入済みだったので、Moonlightを使用することを試みた。
-
moonlight-chrome の利用
Win7用のGoogle Chromeはもう(少なくとも公式からは)手に入らないので、Vivaldiをインストールしてこの拡張を導入しようとするも、「WebGLはサポートされていません」と出てできなかった -
ネイティブアプリ版の利用
OpenGLが使えないことでエラーが発生した。
しかし、OpenGLのエミュレーションライブラリを準備すれば実行できる模様
ただし、このライブラリの準備に大変な手間がかかる。
(参考:その1 OpenGL ES 2.0が動く環境を用意する - ○×つくろーどっとコム)
Visual StudioをホストにインストールしたくなかったのでゲストのWin7で行ったが、途中でエラーになってしまった。
ホストにインストールするなり、ライブラリ作成専用にWin10仮想マシンを準備するなりすれば多分できると思うが、後者を行う気力が残っておらずここで断念
画面共有編_動画配信
-
(ホスト側)OBSで、設定画面【出力】→【録画】から出力先を以下に設定
udp://10.99.0.10:2345
-
【録画開始】を押して配信スタート
-
(ゲスト側)MPC-HCで上記のURLを指定して再生
参考サイト
OBSとVLCでLAN内ストリーミング - TKSOFT
OBS StudioでLAN内のWindows10、Mac、Androidに映像を配信する方法 - kohacraftのblog
rtp/udp、配信/録画 など、それぞれやり方が微妙に異なるのだが、筆者環境ではudp&録画の組み合わせで成功した
課題点
-
映像がカクつく
MPC-HCを起動したときに、グラフィックドライバが悪いのでうまく再生できないかもよ的な警告が出ていたので、Hyper-Vの限界か -
解像度
拡張セッションなしでは1152x864までしか解像度が上げられず、FullHDのホストから配信された動画はジャギーな感じになってしまう
結論
おとなしくProライセンス買うか共有フォルダ経由で我慢しましょう
・・・なのかな。