さて今回は「バーチャルマシン」や「仮想マシン」、「仮想PC」などと呼ばれる物の利用についてです。
ここでは例として汎用性が高いPCのWINDOWS10や11の環境を前提にします。
「バーチャルマシン」や「仮想マシン」、「仮想PC」というのはWINDOWSの中で動くソフトを動かすと「仮想マシン」という見た目は一台のPCの環境が動くような環境を作れることです。。
一台のPCの環境が丸々再現されますので通常はOSをハードディスクに「インストール」して動作させますがこの時のハードディスクは「仮想ハードディスク」という物で提供されて通常は「仮想ハードディスク」のファイル一つでハードディスク1台に割り当てられます。
「仮想マシン」のCPUやメモリは実行させるPCのCPUを間接的に使わせてメモリは実行させるPCのメモリから部分的に割り当てた分を「仮想マシン」で利用します。
「仮想マシン」の中ではインストールする「WINDOWS」や「Linux」などのOSから見るとまるで1台のPCで動作していて「CPU」、「メモリ」、「ハードディスク」、「ネットワークアダプタ」、「DVDROMドライブ」などがあるように見えています。
このような「仮想マシン」を提供するソフトは大きなブランドでだと3つあり、MSのWINDOWS10や11のPROとServerに機能として内蔵されている「Hyper-V」とHOMEでもインストールすれば使えるVMware社の「VMware Workstation Player」(以前は「VMware Player」などとも呼ばれていました)、「VirtualBox」などがあります。
「Hyper-V」はWINDOWS11のPROで使えますので以前のブログ「INTELの省電力CPUなN100を搭載したミニPCの導入記事」で紹介したミニPCにも英語版のWINDOWS11-PROが搭載されていましたのでこのミニPCでも「Hyper-V」を使って「仮想マシン」を動かすことができます。「Hyper-V」で「仮想マシン」を動作させる際に割り当てるメモリのデフォルトサイズは4GBなのでメモリ8GBのモデルでも動作させることは可能ですができれば16GBの搭載にして「仮想マシン」に割り当てるメモリサイズは8GB程度にするのがよさそうです。
2023/12現在のアマゾンの価格だと16GBのモデルは34000円程度のようですがこの価格でWINDOWS11-PROとメモリ16GBで「仮想マシン」も動かせるとなるとお手軽なのではないでしょうか?
この「仮想マシン」や「仮想ハードディスク」の環境で便利なことは「仮想マシン」の電源を切って動かしていない状態にしておけば両者ともハードディスク内のファイルとして存在しますので他のPCにファイルを移動させて実行させるなどの事が自由にできる点です。
私も以前はIT業でプログラムの開発をしていましたので開発したソフトをいろいろなOSの環境でテストするためにこの「仮想マシン」の環境によくお世話になりました。「仮想マシン」と「仮想ハードデイスク」は元のファイルを残しておけば自由に使っても使用以前の環境を簡単に復元できるからです。
「仮想ハードデイスク」のファイルはサイズが大きくなりますが使わない時は圧縮してコンパクトに保存するなどという事もできますし、一台のPCの中に複数の「仮想マシン」の環境を用意しておいてそれぞれにメインのPCの環境には「インストール」や「一時ファイル」などを残したくない環境を作って動かしたりという事ができます。
勉強や実験、お試しなどの用途の「仮想マシン」環境を持てると便利です。
「仮想マシン」環境用のOSのライセンスは必要ですがWINDOWSだと「開発用の動作期間限定」の「WINDOWS11 Enterprise」インストール済み「仮想マシン」環境の「仮想ハードディスク」を配布していたりもします。
この原稿の時点での配布バージョンの有効期限は2024/2/13で各種の「仮想マシン」用ソフト「Hyper-V」、「VMware」、「VirtualBox」、「Parallels」用の「仮想ハードディスク」が用意されています。
以下は動作開設の例として「Hyper-V」を使ってみたことに関してです。
「Hyper-V」の物をダウンロードして解凍してみた所「ファイルサイズは40.8GB」でした。
WINDOWS11 Enterpriseと言っても英語版の設定ですので使う「言語」を「日本語」にしたりキーボードの設定を「日本語対応キーボード」に変更したりする作業が必要です。詳しくはこの時のブログが参考になります「INTELの省電力CPUなN100を搭載したミニPCの導入記事」
「Hyper-V」の物を「日本語」WINDOWSの環境に変更して22H2の修正を適用してみた所「ファイルサイズは47.2GB」でした。
このような「仮想マシン」の環境は動作させなければ特には見えず、保存している「仮想ハードディスク」も非利用時は圧縮しておけば秘密の内容も見えませんので秘密の動作環境やコレクションを保持させておくのにも便利そうです。
(配布されている「開発用のWINDOWS11」環境は動作期限が数か月先までと決められていますので大切なデータを保存する「仮想ハードディスク」は「開発用のWINDOWS11」環境の物とは別に用意しておくのがいいかもしれません)
「Hyper-Vマネージャー」からの「仮想マシン」への画面接続だけを行っていると気になるのが「サウンド」デバイスがないために音が再生されず何も聞こえないという事です。
「仮想マシン」にサウンドデバイスが無くても「リモートデスクトップ」接続をすれば「リモートオーディオ」という「サウンドデバイス」が用意されて接続元PCに再生した音が聞こえるようになっていますので気になる場合は「リモートデスクトップ」での接続を使います。
しかしここでちょっとした不思議な仕様に出会いました。一度「リモートデスクトップ」接続を「仮想マシン」に対して行うと「リモートオーディオ」デバイスが残ったままになり、「Hyper-Vマネージャー」からの「仮想マシン」への画面接続の際もなぜか「リモートオーディオ」デバイスを通して再生した音が聞こえるようになっていました。
ここでさらに「開発用のWINDOWS11」環境に対する不便な点が出てきます。それはデフォルトのユーザー「User」のパスワードが「空白」なためネットワークコンピューターからの「共有フォルダへ」のアクセスも「リモートデスクトップ」接続もセキュリティのために拒否されてしまうという事です。
これを解決するには2つの方法があります。
方法1:王道
ローカルユーザ「User」のパスワードを「空白」から変更する。
これは一見簡単なようですが最近のWINDOWS11のローカルユーザーのパスワード変更は非常に行いにくくなっているので一苦労します。
方法2:邪道だが簡単
「コントロールパネル」→「Windowsツール」→「ローカルセキュリティポリシー」からの設定変更でパスワードが「空白」でも「共有フォルダ」へのアクセスや「リモートログイン」できるようにしてしまう。
「ローカルセキュリティポリシー」画面での変更点は以下の通りです。
注:セキュリティを甘くするという点をご納得の上自己責任で行ってください。
「ローカルセキュリティポリシー」→「ローカルポリシー」→「セキュリティオプション」→「アカウント:ローカルアカウントの空のパスワードの使用をコンソールログオンのみに制限する」:「有効」→「無効」に変更
おまけの方法:こちらの方が簡単かも
ローカルアカウントで新しい管理者ユーザーをパスワード付きで作成してそちらで作業を行う。
と、ここまでで「仮想マシン」に「リモートデスクトップ」接続できるようになったかと思います。
ここでちょっと気づくのはデフォルトの「仮想マシン」の設定だと「仮想マシン」からの「ネットワークコンピューター」へのアクセスと他の「ネットワークコンピューター」からのアクセスは動かしているPCの環境(以下は「ホストOS」と呼びます)とだけになっています。
これは同じ「ホスト名」の環境が存在していてもその「ホストOS」内だけにとどまると混乱が起きませんしセキュリティ上も好ましいからです。
この制御をおこなっているのは「仮想マシン」の「設定」にある「ネットワークアダプター」の「DefaultSwitch」が「内部」での通信が「ホストOS」の「内部」に限られているためです。
これを通常の一台のサーバーとしてLAN内に公開するには「Hyper-Vマネージャー」の「操作」パネルにある「仮想スイッチマネージャー」で種類が「外部」のスイッチを作成して「仮想マシン」の「設定」にある「ネットワークアダプター」に割り当てればLAN内に独立したサーバーとしてデビューできます。ただし「ホスト名」が重複するとトラブルになりますのでご注意ください。
なお「仮想スイッチマネージャー」で種類が「外部」のスイッチを作成すると「ホストOS」の「ネットワークアダプター」を「仮想マシン」と共有する形になりますのでもともと「ホストOS」で使っていた「ネットワークアダプター」でLANに直接接続している形は見えなくなり、「Hyper-V Virtual Ethernet Adapter #2」という仮想的に作成された「ネットワークアダプター」を使ってLANに接続している形に変更されます。この「Hyper-V Virtual Ethernet Adapter #2」は「仮想マシン側」にも「Hyper-V Virtual Ethernet Adapter #2」という仮想の「ネットワークアダプター」が存在していて見えない仮想の「ネットワークスイッチ」に両方とも接続されていて元の「ホストOS」の「ネットワークアダプター」に接続されているという言葉では説明しにくい構造になります。
この構造がどうしても我慢できないという場合は作成した「仮想スイッチマネージャー」で種類が「外部」のスイッチを削除して「仮想マシン」をLAN内にデビューさせない構造にするのがいいかと思います。このような場合はLANポートが2つあると片方を「仮想マシン」専用にするというような用途に使えそうですよね。
ここで「仮想マシン」は一台の独立したPCのサーバーに見えるという話をしましたが「ネットワークアダプター」への「WAKE-ON LANパケット」送信での「電源ON」は出来るのだろうか?と思いますがさすがにそれは出来ないようです。
他のWINDOWS11の「仮想マシン」の用途などで思いつくのは「ワイヤレスディスプレイ」接続などで「TV」や「Chromecast」、「Fire TV」への画面ミラーリングなどができないかなどを考えてしまいます。
通常「TV」や「Fire TV」への「ワイヤレスディスプレイ」接続でのミラーリングですと「MiraCast」というプロトコルを使うのですがこのプロトコルは「WI-FI」の5GHzで通信を行いますので「WI-FI」のデバイスを持たない「仮想マシン」からは使えません。仕方ないですよね。
「Chromecast with GoogleTV」相手ですと「Google Chrome」か「MS Edge」のブラウザからの操作で「ブラウザのタブ」内か「デスクトップ」を同一LAN内の「Chromecast with GoogleTV」に「TCP/IP」で送信しますので「WI-FI」だろうと「有線LAN」接続であろうとも「外部へのLANアクセス」が有効になっていれば画面のミラーリングができますし可能でした。
こちらだと「Linux」系のOSの「仮想マシン」でも「Google Chrome」か「MS Edge」のブラウザはインストール出来ますので画面のミラーリングは出来ます。(ただしWINDOWS環境のような「リモートオーディオ」というサウンドデバイスはありませんので音はミラーリングの画面には出ません)
ですが「Hyper-V」での画面表示されていないときでも画面のミラーリングが行われるかというとそれは出来ませんでした。画面表示がされていないときは「サインアウト」されてしまい、「サインアウト」されると画面のミラーリングは停止してしまうようです。
「仮想マシン」では「ホストOS」の「ハードウェア資源」は通常使えませんのでUSB接続の「ハードウェア」などは使えず、仮想化されているハードウェアのみが使えます(「CPU」「メモリ」「ハードディスク」「ネットワークアダプタ」「DVDイメージファイルを読み取るDVDドライブ」など)
この仮想化されいるハードウェアのみを使って「仮想マシン」を動作させて必要な時にだけ「サーバ」を動かすという事が利用する人の知恵になりますのでいろいろ用途を考えてみてはいかがでしょうか?(例:WEBやFTPのサーバーなど)