Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Hyper-Vのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Hyper-V
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:ハイパーバイザ]] [[en:Hyper-V]] Hyper-V は Microsoft Windows の特定のエディションに含まれているハイパーバイザです。Arch Linux の仮想マシンを動作させることができます。一般的に Hyper-V はデスクトップとして使うことよりも企業における使用を想定して作られています。[[VirtualBox]], [[Parallels]], [[VMware]] などの一般消費者向けの VM プログラムにあるような便利で簡単なインターフェイスは付属していません。最新版の Windows 10 と Windows Server 2016 では Arch Linux を簡単に設定して互換性を高めるオプションがあります。インターネット接続共有 (ICS) をセットアップしなくても内部スイッチの NAT やマルチ NAT、ポートフォワーディングが使えます。Arch Linux では第2世代の仮想マシンが利用できます。 == インストール == Windows Server 2008 以降の Windows や Pro エディションの Windows 8, 8.1, 10 には Hyper-V が付属しています。<!-- If someone has experience with Windows Server 2008+ and knows how Hyper-V is enabled, could they add it here? -->コントロールパネルの "Programs and Features" から "Turn Windows features on or off" で有効にできます。"Hyper-V" チェックボックスにチェックを入れて、変更を適用し、画面の指示に従ってください。 == ネットワークの設定 == 最初に、仮想スイッチを設定して仮想マシンがインターネットに接続できるようにする必要があります。Hyper-V を有効にしたら、Hyper-V Manager を起動してください (検索するか、コマンドプロンプトから次のコマンドを実行してください): %windir%\system32\mmc.exe "%windir%\system32\virtmgmt.msc" === 仮想スイッチの設定 === 仮想マシンを既存のネットワークに接続するためには、内部ネットワークスイッチあるいは外部ネットワークスイッチ (仮想ネットワークアダプタ) を使用します。外部スイッチは既存のネットワークアダプタ (有線あるいは無線) のどれかに割り当てる (ブリッジする) 必要があります。内部スイッチではホストと仮想マシンの間のネットワーク接続をするのに外部ネットワークにアクセスする必要がありません。内部スイッチに NAT 機能を追加することで、ホストを仮想マシンに対するルーターとして仮想マシンから外部ネットワークにアクセスできるようになります。 Hyper-V マネージャ GUI では全てのネットワーク機能 (NAT 設定など) を設定することはできません。管理者権限で PowerShell を使うことで詳細な設定が可能になります。 ==== 外部スイッチ ==== 右サイドバーの、"Virtual Switch Manager..." を選択します。ダイアログが開くので、左サイドバーの "New virtual network switch" を選択してください。"What type of virtual switch do you want to create?" から "External" を選び、"Create Virtual Switch" を選択してください。仮想スイッチに新しい名前を付けてください。"External network" から外部スイッチに紐付けるネットワークアダプタを選択します。 ネットワークが切断されると警告が表示されるので、続行してください。スイッチを設定するためにネットワークが一時的に切断されます。 上記の設定は (管理者権限で起動した) PowerShell で以下のコマンドを使っても設定できます: # Get a list of the network adapters in the host. In a laptop you should typically see 'Ethernet' and 'Wi-Fi' PS C:\WINDOWS\system32> Get-NetAdapter # Create the external switch with a name of VM-External-Switch, bound to the network adapter named {{ic|Wi-Fi}} retrieved from the previous command PS C:\WINDOWS\system32> New-VMSwitch -Name "VM-External-Switch" -AllowManagementOS $True -NetAdapterName "Wi-Fi" 仮想マシンの Arch Linux で VM のネットワークアダプタとして外部スイッチを選択することで Windows ホストのネットワークアダプタが仮想マシンの {{ic|eth0}} インターフェイスにブリッジされます。Arch Linux の中では通常通りに ([[systemd-networkd]] や [[netctl]] を使って) 固定 IP アドレスまたは DHCP でインターフェイスを設定できます。外部ネットワークからは仮想マシンは別のホストとして扱われます。 例えば、Arch Linux 仮想マシンで固定 IP を使用する場合、Windows ホストが {{ic|192.168.0.100/24}} なら、Arch Linux 仮想マシンのインターフェイスは {{ic|192.168.0.101/24}} などと設定して、ゲートウェイと DNS サーバーはホストと同じに設定してください。 仮想マシンで DHCP を使用する場合、IP アドレスは外部ネットワークの DHCP ネットワークによって割り当てられます。 ==== 内部スイッチ ==== {{Note|Windows 10 Fall Creators Update (バージョン 1803) 以降では、仮想マシンに NAT スイッチ (Default Switch) が組み込まれており、特段の設定なしでインターネットに接続できます。詳細は [https://techcommunity.microsoft.com/t5/virtualization/what-s-new-in-hyper-v-for-windows-10-fall-creators-update/ba-p/382399 What's new in Hyper-V for Windows 10 Fall Creators Update?] を参照してください。}} 内部スイッチを作成する際も外部スイッチと手順は同じですが、仮想スイッチのタイプとして「内部スイッチ」を選ぶようにしてください。Windows 10 Anniversary Update (バージョン 1607, OS ビルド 14393) から、Hyper-V に内部スイッチのネイティブ NAT サポートが追加されています。古いバージョンでは、インターネット接続共有 (ICS) を使って内部スイッチで仮想マシンからネットワークにアクセスできるようにすることが可能です。 使用している Windows のバージョンを確認するには、コマンドプロンプトか PowerShell で以下のコマンドを実行: > winver PowerShell で以下のコマンドを使うことで内部スイッチを作成できます: # Create the internal switch with a name of VM-Internal-Switch PS C:\WINDOWS\system32> New-VMSwitch -Name "VM-Internal-Switch" -SwitchType Internal # Verify that the internal switch was created PS C:\WINDOWS\system32> Get-VMSwitch # Get the ifIndex of the newly created internal switch, usually named 'vEthernet (name)' PS C:\WINDOWS\system32> Get-NetAdapter # Set the IP address of the internal switch, noting the ifIndex retrieved from the previous command. # In this example, the network address of the internal switch is 192.168.3.0/24, and the ifIndex is 50. PS C:\WINDOWS\system32> New-NetIPAddress -IPAddress 192.168.3.1 -PrefixLength 24 -InterfaceIndex 50 # The VMs using the internal switch must use static IP addresses, such as 192.168.3.2/24. # Support for DHCP in internal switches is not included in current Windows versions (as of Version 1703, OS Build 15063). 上記のコマンドを実行すると、ホストと仮想マシンは同一の仮想ネットワーク (192.168.3.0/24) 上で互いに通信できるようになります。ただし NAT あるいは ICS を設定しないかぎり仮想マシンは外部ネットワークにアクセスできません。 Windows 10 ビルド 14393 以上では、以下のコマンドで内部スイッチの NAT とポートフォワーディングを設定できます: # Create the NAT with IP address of the internal switch PS C:\WINDOWS\system32> New-NetNat -Name "VM-NAT-Network" -InternalIPInterfaceAddressPrefix 192.168.3.1/24 # Verify that the NAT was created PS C:\WINDOWS\system32> Get-NetNat # Enable SSH port forwarding on port 2222 of any interface on the host, to a VM with an IP address of 192.168.3.2/24 PS C:\WINDOWS\system32> Add-NetNatStaticMapping -NatName "VM-NAT-Network" -Protocol TCP -ExternalIPAddress 0.0.0.0 -ExternalPort 2222 -InternalIPAddress 192.168.3.2 -InternalPort 22 # Verify that the port forward is active PS C:\WINDOWS\system32> Get-NetNatStaticMapping コマンドについて詳しくは Microsoft の [https://docs.microsoft.com/en-us/powershell/module/netnat/ NetNat] ドキュメントを参照してください。 古いバージョンの Windows では、インターネット接続共有を使います。ネットワークと共有センターを開いて、アダプターの設定と変更で、使用しているインターネットアダプタのインターネット接続の共有を有効にしてください。接続を共有することができたら、先に作成した仮想スイッチをブリッジに追加します。 == 仮想マシンの作成 == 左サイドバーの "Hyper-V Manager" から "PC" を選択してください。そして右サイドバーの "New" > "Virtual Machine..." を選んでください。新しい仮想マシンのウィザードでは、大抵の設定を自由にすることができますが、一部には必ず設定しなければならない項目があります。 "Specify Generation" では "Generation 1" あるいは "Generation 2" のどちらかを選択できます。第1世代の仮想マシンは BIOS ベースのマシンとレガシーなポートをエミュレートします。第2世代の仮想マシンは UEFI ベースのマシンを提供します。互換性や移植性などが理由で第1世代を使わなくてはならない理由がないのであれば、通常は第2世代仮想マシンを使うようにしてください。また、Arch Linux 仮想マシンで第2世代を使うときは、仮想マシンの設定で Hardware -> Security から Secure Boot を無効にしてください。 Assign Memory の "Startup memory" では、Arch やプログラムが正しく動作するように十分なメモリを設定してください。 "Configure Networking" の "Connection" では、先に作成した仮想スイッチを選択してください。 "Connect Virtual Hard Disk" では、"Create a virtual hard disk" を選択して、"Size" が問題ないことを確認してください。仮想ハードディスクはスパースなため、仮想 OS が書き込んだものを保存するのに必要な分だけしか仮想ハードディスクは消費しません。 "Installation Options" では、"Install an operating system from a bootable CD/DVD-ROM" を選択してください。ディスクや USB デバイスから Arch をインストールする場合、"Media" から "Physical CD/DVD drive" を選んで、適切なドライブ文字を選択してください。ISO ファイルから Arch をインストールする場合、"Image file (.iso)" を選んで、"Browse..." ダイアログからファイルを選択してください。第2世代マシンの場合、物理的な CD/DVD ドライブからの起動はサポートされていません。 == 仮想マシンの設定 == 次に、VM の設定を行なってください。 仮想マシンには仮想プロセッサを追加することができます。仮想マシンからより多くのプロセッサコアを使えるようにすることで、多くのケースでパフォーマンスが向上します。仮想マシンで重い処理をする場合、搭載されているプロセッサコアの半分を割り当てると良いでしょう。仮想プロセッサの数を変更するには、左サイドバーの "Processor" を選択して、"Number of virtual processors" を変更してください。 設定を変更したら、"OK" で変更を適用して設定ダイアログを終了してください。 == Arch のインストール == 仮想マシンの設定を終えたら、Arch のインストールを行います。右サイドバーから、"Start" を選んで、"Connect..." を選択してください。接続ウィンドウが開きます。ネットワークは Arch のインストールメディアが立ち上がったときに自動的に機能します。返答が返ってくるアドレスで {{ic|ping}} を実行して確認してください: ping archlinux.org レスポンスが返ってこない場合、接続がうまくいっていません。その場合、[https://support.microsoft.com/kb/974909 Microsoft によって既知とされているバグ] を踏んでいる可能性があります。Knowledge Base ページに書かれているホットフィックスをインストールしてみるか、暫く待ってから再度試行してください。 Arch のインストールは他のシステムのインストールと大して変わりません。第1世代 VM は (UEFI ではなく) BIOS しか使えないため、[[ブートローダー]]をインストールする際は BIOS 特有の手順に従ってください。 == インストール後の設定 == Arch のインストールが完了したら、設定に移ります。 まず、VM をシャットダウンして、設定ダイアログを開いてください。左のサイドバーの "IDE Controller 1" にある "DVD Drive" を選択します。"Media" から "None" を選択してください。これで VM が毎回インストールメディアから起動しなくなります。 === Hyper-V Integration Services === [https://docs.microsoft.com/ja-jp/windows-server/virtualization/hyper-v/manage/manage-hyper-v-integration-services Hyper-v Integration Services] を利用する場合は、{{Pkg|hyperv}} を[[インストール]]します。 {{ic|hv_fcopy_daemon.service}}, {{ic|hv_kvp_daemon.service}} および {{ic|hv_vss_daemon.service}} を[[起動]]・[[有効化]] してください。 === 共有ディレクトリ === ホストとゲストでファイルを共有するのはとても簡単です。まず、ホスト側で、ゲストと共有したいフォルダを選択あるいは作成してください。そしてフォルダのプロパティダイアログを開いてください ({{ic|alt}} + {{ic|Enter}} あるいは右クリックして "Properties..." を選択)。"Sharing" タブを開いて "Advanced Sharing..." を選択してください。そして "Share this folder" チェックボックスにチェックを入れます。デフォルトでは、フォルダは読み取り専用パーミッションになるため、VM からフォルダを読み込むことはできますが書き込むことはできません。パーミッションを変更したい場合、"Permissions" を選択してください。そこで、どのユーザーが共有フォルダにアクセスできるのか、そしてどのパーミッションを割り当てるのかを設定できます。双方向にファイルを共有したい場合、"Change" と "Read" 両方の "Allow" にチェックを入れてください。共有フォルダのプロパティダイアログを終了する前に、フォルダの "Network Path" を確認してください。ネットワークパスは {{ic|\\''computer name''\''folder name''}} という形式になります。 次に、ホストの IP アドレスを確認してください。プロパティダイアログを終了して、コマンドプロンプトか PowerShell を開きます。{{ic|ipconfig}} を実行してください。先に作成した仮想スイッチの名前が含まれているエントリが確認できるはずです (例: {{ic|Ethernet adapter vEthernet (New Virtual Switch)}})。仮想スイッチのエントリの下に出力された、{{ic|IPv4 Address}} を確認してメモしてください。 そして、Arch から共有フォルダをマウントします。VM を起動してください。Arch が起動したら、CIFS 共有をマウントするための {{Pkg|cifs-utils}} をまずインストールします (CIFS は Windows の共有フォルダで使われているプロトコルです)。その後、共有フォルダをマウントする場所を決めてください。{{ic|/mnt/Hyper-V}} など、{{ic|/mnt}} 内のディレクトリにすることを推奨します。 以下が共有フォルダをマウントするコマンドです。先に確認したネットワークパスのバックスラッシュはスラッシュに置き換えてください: # mount -t cifs [''Network Path with forward slashes''] ''mountpoint'' -o user=[''user you wish to authenticate as''],ip=[''host IP noted earlier''] 認証するユーザーのパスワードが要求されます。コマンドオプションの {{ic|1=password=''password''}} を使ってパスワードを指定することもできますが、コマンド履歴ファイルにホストのパスワードが残ってしまうためセキュリティ上よろしくありません。また、スクリプトからコマンドを実行する場合、パスワードをスクリプト内に保存することになります。パスワードを直書きする代わりの方法として、credentials ファイルを使用することができます。ファイル内にユーザー名とパスワードを記入して、ファイルのアクセス権限を制限することが可能です。ファイルの名前は何でもかまいません。例えば、{{ic|.credentials}} という名前でホームディレクトリに保存する場合、以下のようになります: {{hc|~/.credentials|2= username=''username'' password=''password'' }} ファイルを作成したら、パーミッションを変更して読み取り権限を制限します: # chmod 600 ~/.credentials そして {{ic|mount}} コマンドに credentials オプションを追加します: {{ic|1=credentials=~/.credentials}}。これで、共有フォルダをマウントするとき、自動的にユーザー名とパスワードが指定されます。 例えば、具体的に、ネットワークパスが {{ic|\\PC\share}} の共有ディレクトリを {{ic|/mnt/Hyper-V}} にマウントする場合、ホストのユーザー名が "John" でホストの IP アドレスが 198.123.151.23 なら、マウントコマンドは以下のようになります: # mount -t cifs //PC/share /mnt/Hyper-V -o credentials=~/.credentials,ip=198.123.151.23 この方法の問題点として、ホストの IP アドレスが変わってしまった場合 (DHCP で動的に IP アドレスが割り当てられていたり、新しいネットワークに移行した場合など)、ゲスト側でホストの IP アドレスを毎回書き換える必要があります。しかしながら、{{Pkg|smbclient}} パッケージに含まれている {{ic|nmblookup}} ユーティリティを使用することで、SMB ホストに関連付けられている IP アドレスを確認することが可能です。上記の例の場合、以下のようになります: {{hc|nmblookup PC|2= 198.123.151.23 PC<00> }} IP アドレスだけが欲しい場合、{{ic|head}} と {{ic|cut}} を使って抽出することができます: {{hc|nmblookup PC <nowiki>|</nowiki> head -n 1 <nowiki>|</nowiki> cut -d ' ' -f 1|2= 192.123.151.23 }} さらに {{ic|mount}} コマンドで使用する IP アドレスを上のコマンドで置き換えることができます: # mount -t cifs //PC/share /mnt/Hyper-V -o <nowiki>credentials=~/.credentials,ip=</nowiki>"$(nmblookup PC <nowiki>|</nowiki> head -n 1 <nowiki>|</nowiki> cut -d ' ' -f 1)" 起動時に自動的にマウントするなど、共有フォルダをマウントする方法は他にも存在します。詳しくは [[Samba]] の記事を参照してください。 === Xorg === グラフィカルなプログラムは {{Pkg|xf86-video-fbdev}} パッケージで Xorg を使うことで簡単に実行できます。パッケージをインストールしたら適当なウィンドウマネージャやデスクトップ環境を使ってください。X の起動に問題は発生しないはずです。 GUIコンソールを利用する場合、モニタが Unknown Monitor となり、1024x768 の解像度に固定されてしまう場合があります。この場合、カーネルオプションで画面解像度を {{ic|1=video=hyperv_fb:<解像度>}} のように直接指定が必要になる場合があります。 ==== systemd-bootの場合 ==== ブートエントリ ( {{ic|''esp''/loader/entry/*.conf}} ) において、以下のオプションを追加します。 以下の例は1920x1080の解像度で表示させる場合 {{hc|''esp''/loader/entry/''some_of_entry.conf''|2= options 1=video=hyperv_fb:1920x1080 root=... }}
このページで使用されているテンプレート:
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:META Box
(
ソースを閲覧
)
テンプレート:META Box Blue
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
Hyper-V
に戻る。
検索
検索
Hyper-Vのソースを表示
話題を追加