|
現: 2024-06-20 (木) 09:09:40 yuji ![ソース](https://yueno.net/xoops/modules/xpwiki/skin/loader.php?src=page_white_text.png) |
| + | * Windows10でHyper-Vを使ってみる [#w3a11226] |
| + | Windows10には''ハイパーバイザー型の仮想化環境''であるWindowsハイパーバイザー(Hyper-V)が標準搭載されているので使用してみた。 |
| | | |
| + | 注意することとして,Windows10でWindowsハイパーバイザー(Hyper-V)を使用するようにした場合,%%ネイティブ仮想化でのVMware Workstation PlayerやOracle VirtualBoxは動作しなくなってしまう。%%VMware Workstation PlayerやOracle VirtualBoxのバージョンを更新すると動作するようになった。~ |
| + | |
| + | Windows10 2004まではMicrosoftの仮想化環境のオプション・コンポーネントはHyper-V(ハイパーバイザー型仮想化環境と仮想化マシン作成ツールが含まれていた)のみだったが,Windows10 20H2以降では''仮想マシンプラットフォーム''と''Hyper-V''の2つのオプション・コンポーネントに分離された。~ |
| + | 仮想マシンプラットフォームが''Windowsハイパーバイザー''と呼ばれるようになった仮想化環境のコンポーネントで,Hyper-Vは仮想化マシンを作成するツールになっている。~ |
| + | |
| + | ** BIOS/UEFI BIOSのCPU設定 [#rfa09f4d] |
| + | ハイパーバイザー型の仮想環境を使用するには,PCのBIOS(またはUEFI BIOS)のCPU設定でCPUの''Virtualization Technology''を有効に設定する必要がある。~ |
| + | |
| + | BIOS(またはUEFI BIOS)によりCPU設定の表記はいろいろあるので注意する。~ |
| + | |
| + | ** Windows10にHyper-V機能を追加 [#la32abfd] |
| + | - Win+IでWindowsの設定画面を開く~ |
| + | - 画面右端か画面最下にある「関連設定>プログラムと機能」をクリックして,プログラムと機能画面を開く~ |
| + | - 「Windowsの機能の有効化または無効化」をクリックして,Windowsの機能画面を開く~ |
| + | - ''Hyper-V''にマークを付けてOKを押す~ |
| + | Windows10 2004までは,Windows Hyperバイザーを動かす機能をインストール(''仮想マシンプラットフォーム''はなかった)する。~ |
| + | Windows10 20H2からはHyper-Vで動かす仮想マシン(仮想ディスクや仮想スイッチなども)を作成し管理運用するツールになり,Windows Hyperバイザーを動かす機能は''仮想マシンプラットフォーム''に分離された。~ |
| + | - ''仮想マシンプラットフォーム''にマークを付けてOKを押す(Windows10 20H2以降)~ |
| + | Windows10 20H2から分離されたコンポーネント。~ |
| + | Hyper-Vのコア機能であるHyper-Vアーキテクチャと,それを利用したHyper-Vコンテナーを動作させるためのコンポーネントを使用できるようにする。~ |
| + | ''仮想マシンプラットフォーム''の場合,バージョン更新したVMware Workstation PlayerやOracle VirtualBoxが動作する。~ |
| + | また''Windowsサンドボックス''もこの機能を使用している。~ |
| + | - 必要であれば''Windowsハイパーバイザープラットフォーム''にマークをする。(Windows10 20H2以降)~ |
| + | Windowsハイパーバイザー環境で他の''ハイパーバイザー型仮想化システム''を動作させたい場合マークをする。~ |
| + | - PCを再起動する~ |
| + | |
| + | Windows10でのHyper-Vは''ホストOS型仮想環境''のようにも思えるが,Windows10にHyper-V機能を追加すると構成上Windows10はHyper-Vで動作する仮想マシンの一つとなるようで,これは''ハイパーバイザー型の仮想化環境''になる。~ |
| + | Hyper-Vはマイクロカーネルなので,仮想マシンのリソースを管理するために一つの仮想マシンであるWindows10を利用しているということなのかな。 |
| + | |
| + | マイクロカーネルのハイパーバイザーでは,仮想マシンを作成時の最初の仮想マシンのことを''管理OS''と呼んでいるようだ。また,MicrosoftではHyper-Vの管理OSのことを「親パーティション」,それ以外の仮想マシンのことを「子パーティション」と呼んでいる。~ |
| + | |
| + | ハイパーバイザーでも''VMware vSphere''はモノリシックなので,このような構成になっておらずハイパーバイザー自身が管理OSになっている。~ |
| + | |
| + | ** Hyper-Vマネージャーの起動 [#x258e0b5] |
| + | Windows10にHyper-V(および仮想マシンプラットフォーム)機能が追加されると,スタートメニューのWindows管理ツールにHyper-Vマネージャーが追加されている。クリックするとHyper-Vマネージャーが起動する。~ |
| + | #ref(hypervman.png,,60%); |
| + | |
| + | 管理者権限を持たないユーザーだとHyper-Vマネージャーから仮想化サーバーに接続出来ないみたいだ。~ |
| + | なので,Hyper-Vマネージャーは管理者権限で実行するようにする。~ |
| + | |
| + | ** 仮想マシンを作成する [#q335e951] |
| + | Hyper-Vマネージャーを使って仮想マシンを作成することが出来る。~ |
| + | Hyper-Vマネージャーの操作>新規>仮想マシンを押して,仮想マシンの新規作成ウィザードを実行する。~ |
| + | |
| + | 試しにUbuntu 18.04 LTSを作成してみる。~ |
| + | |
| + | ウィザードで設定した値は以下のようにした。 |
| + | |項目名 |設定値 | |h |
| + | |名前 |Ubuntu |好きな名前にする。 | |
| + | |場所 |C:\VM\ |他のVMもここに作成しているので・・・ | |
| + | |世代 |第2世代 |第1世代:仮想化を意識していないOS(Windows 7とか),第2世代:仮想化を意識しているOS(Windows 8 64bit以降)。&br;Ubuntu 18.04 LTSは第2世代で動作する。| |
| + | |起動メモリ |4096MB |とりあえず4GBにした。PCにメモリがいっぱい実装されてないので・・・ | |
| + | |ネットワークの構成 |Default Switch |Default SwitchにはNAPT機能が組み込まれている。&br;親WindowsでDHCPサーバーが動作している。&br;親WindowsのDNSサーバーに設定される。| |
| + | |仮想ハードディスクの接続|仮想ハードディスクを作成する |初期値名前/場所に,40GBで作成した。 | |
| + | |インストールオプション |ブートイメージファイルからオペレーティングシステムをインストールする|予め準備したUbuntuインストール用ISOファイルを指定する。 | |
| + | |
| + | 世代の設定はHyper-Vによる仮想マシンを動かす環境に依存している項目で,第1世代ではIDEコントローラー・PS/2 I/Oデバイス・COMポート・ネットワークアダプター・フロッピードライブ等をエミュレーションで対応するようにして,第2世代ではそれらを対象外にすることによりエミュレーションを使用しないように出来るということらしい。~ |
| + | 第1世代を選択すると,おそらく多くのOSで古いデバイスに対応出来るとは思うが,多少スピード等に影響があると思われる。~ |
| + | 第2世代を選択すると,動作中にストレージのサイズを変更するといったことも可能になる。(第1世代とは仮想マシンのイメージファイル形式が違う。)~ |
| + | 第2世代だと,PCの物理CD/DVDドライブが仮想マシンで使用することが出来ないということにもなる。~ |
| + | |
| + | 設定後完了を押すと,仮想マシンが作成される。~ |
| + | |
| + | ハイパーバイザー型ではないVMware Workstatin PlayerやVirtual Boxなんかとあまり違いはない感じ。~ |
| + | |
| + | *** 世代選択の判断 [#gbb8cbef] |
| + | 以下の''条件に当てはまらない場合''は第2世代が良いと思う。~ |
| + | - ブートしようとするVHDがUEFI互換ではない場合~ |
| + | 第1世代の設定で作ったVMマシンのイメージを使う場合。~ |
| + | - バーチャルマシンをMicrosoft Azureにマイグレーションする予定がある場合~ |
| + | Microsoft Azureでは第2世代はサポートされていない。~ |
| + | - 第2世代が起動したいOSをサポートしていない場合~ |
| + | 第2世代でサポートしているOS:~ |
| + | -- Windows 64bit(Windows Server 2012 無印/R2, Windows10/8.1/8) |
| + | -- CentOS/RHEL(7.xシリーズ) |
| + | -- Oracle Linux(7.xシリーズ) |
| + | -- SUSE(SUSE Linux Enterprise Server 12) |
| + | -- Ubuntu(Ubuntu 14.04以降) |
| + | - ホストPCのCD/DVDドライブ(IDE)・FDDを使用する~ |
| + | - 第2世代が起動したい方式をサポートしていない場合~ |
| + | 第2世代でサポートしている起動方式:~ |
| + | -- 標準ネットワークアダプタによるPXEブート~ |
| + | Legacy network adapterを用いたPXE Bootは非対応。 |
| + | -- SCSI仮想ディスク(.VHDX)または仮想DVD(.ISO)からの起動~ |
| + | |
| + | *** 仮想マシンの編集 [#ee20a765] |
| + | すぐに起動してみたかったが,上記の設定ではUbuntu 18.04 LTSが起動しない。~ |
| + | |
| + | 仮想マシンの設定を変更するため,仮想マシン>仮想マシン名(Ubuntu)を開いて編集する。~ |
| + | - ハードウェア>セキュリティをクリック~ |
| + | 「セキュアブートを有効にする」のマークを外す。~ |
| + | - ハードウェア>プロセッサをクリック~ |
| + | 「仮想プロセッサの数」をデフォルトは1になっているので,4に変更する。~ |
| + | - 管理>チェックポイントをクリック~ |
| + | 「自動チェックポイントを使用する」のマークを外す。~ |
| + | チェックポイントが必要になったら,手動で作成することにする。~ |
| + | - 管理>統合サービスをクリック~ |
| + | 「ゲストサービス」にマークを入れる。~ |
| + | これをマークするとPowerShellのCopy-VMFileコマンドレットで,ゲストOSへファイルのコピーが可能になるみたい。~ |
| + | > Copy-VMFile "Ubuntu" -SourcePath "D:\Temp\Test.txt" -DestinationPath "/home/username/Downloads" -CreateFullPath -FileSource Host |
| + | つまり,ネットワークを経由せずにファイルシステム上でファイルコピーが出来るようになって便利。~ |
| + | |
| + | ** 仮想マシンの起動 [#td8ba0dd] |
| + | メニューから,「接続...」で仮想マシン接続画面を開く。 |
| + | |
| + | 「仮想マシン XXXXXXXはオフになっています」と表示されるので,起動を押すとUbuntu 18.04 LTSのインストーラーが起動した。~ |
| + | |
| + | 画面に従ってUbuntu 18.04 LTSをインストールする。~ |
| + | |
| + | ** Ubuntu 18.04 LTSでの追加設定 [#r8373e16] |
| + | Hyper-V上でUbuntu 18.04 LTSを動かす場合,以下の設定を行ったほうがよいみたい。~ |
| + | - linux-azureのインストール~ |
| + | linux-azureは,ドライバ関係を最適化してくれる。 |
| + | $ sudo apt update |
| + | $ sudo apt install linux-azure |
| + | - linux-vm-toolsのインストール~ |
| + | linux-vm-toolsを使用することで,画面解像度の変更や,クリップボード共有などの拡張セッションモード接続が出来るようになり便利。~ |
| + | $ cd /usr/src |
| + | $ sudo git clone https://github.com/Microsoft/linux-vm-tools.git |
| + | $ cd linux-vm-tools/ubuntu/18.04 |
| + | $ sudo chmod +x install.sh |
| + | $ sudo ./install.sh |
| + | $ sudo reboot |
| + | 再起動後, |
| + | $ cd /usr/src/linux-vm-tools/ubuntu/18.04 |
| + | $ sudo ./install.sh |
| + | $ sudo shutdown now |
| + | として,一旦シャットダウンする。~ |
| + | Windows10のPowerShellを管理者権限で開いて,以下を実行。 |
| + | $ Set-VM -VMName Ubuntu -EnhancedSessionTransportType HvSocket |
| + | この後,仮想マシンを再起動する。~ |
| + | ~ |
| + | 画面解像度を指定するダイアログが表示されるようになる。拡張セッションモードを使用する場合,ログインはxrdp経由となるみたい。 |
| + | |
| + | * Windowsハイパーバイザーを一時停止させる [#sc432179] |
| + | Hyper-Vと共存できない仮想マシン環境を利用する場合など,一時的にWindowsハイパーバイザーを停止したい場合がある。~ |
| + | |
| + | またWindowsハイパーバイザーは,セキュリティのためにも使われている。Windowsハイパーバイザーを停止させるとセキュリティ対策も停止することになるので注意する。 |
| + | |
| + | Windowsハイパーバイザーが動作しているかどうかを確認するには,管理者権限でコマンドプロンプトを起動し, |
| + | > bcdedit /enum {current} |
| + | ''hypervisorlaunchtype''がない場合は,Windowsハイパーバイザー(Hyper-V)やWSL2が使用していない状況を意味している。~ |
| + | ''hypervisorlaunchtype''が''Auto''になっている場合,Windows10の起動時にWindowsハイパーバイザーが起動される。~ |
| + | ここが,''Off''になっている場合,起動時にWindowsハイパーバイザーは起動されない。 |
| + | |
| + | Windowsハイパーバイザーを一時的に停止させる場合,~ |
| + | > bcdedit /set hypervisorlaunchtype off |
| + | にする。~ |
| + | Windowsを再起動するとハイパーバイザーなしでWindowsが起動する。 |
| + | |
| + | Windowsハイパーバイザーを再開させるには, |
| + | > bcdedit /set hypervisorlaunchtype auto |
| + | として再起動する。~ |