Windows10 Hyper-V つかってみてはまった件

# Windows10 Hyper-V つかってますか？
Vagrant便利だ！うはー！と使っていたんですがホストOSが汚れてまくったので綺麗にしました。Hyper-V のほうがいいよ！と言われたので使ってみました。

が。。。AMD に乗り換えた私。。。ここから悲劇が。

# Hyper-Vの使い方 Windows 10
[とりあえずググル](https://bgt-48.blogspot.com/2019/04/hyper-vwindows10.html)る「Hyper-V有効化」の記事。ここでも少しはまりました。基本的に”Windows 10 の64ビット版 Pro、Enterprise、Education”でHyper-V使えるのはよしとしても、以下のチェックをつけると動かなくなる（具体的にはWindowsが起動しない）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44540/10075048-ce77-ed81-9122-3c4785906d14.png)

# AMDでは Nested Virtualization が使用できない（現在制約あり）
AMDでは Nested 使用するのに制約があります。ここで 「[Intelはいってる？ ぴろーん](https://www.itmedia.co.jp/pcuser/articles/2007/06/news012.html)」っていうのが聞こえてきそうですが、AMDでは何故が Nested 起動できない。自分の環境が悪いのかと２ケ月程悩みました。

>[AMD CPUに待望の“Nested Virtualization”対応 ～プレビュー版「Windows 10」で](https://forest.watch.impress.co.jp/docs/news/1258241.html)

へ？まあ、Microsoft=Intel っていう図式あるので仕方ないにしろ。ねぇ。

# 制約ありでも快適
Vagrant(Virtual BOX)を使用してたとき Linuxは快適に使えるがWindowsは落ちる。っていうのがありましたが快適に使える。体感的だけどキビキビ動く。

# Default Switch の謎エラー
Default Switchにバインドされている物理アダプタを外部ネットワークで使用する場合、下記のエラーがでる。「Hyper-V 拡張可能仮想スイッチ」のチェックをOFFにすればよい。
特に複数NICを差している場合このエラーがでる気がする。

```text
仮想スイッチのプロパティの変更中にエラーが発生しました
外部イーサーネットアダプター 'Realtek PCI GBE Family Control' は既にMicrosoft仮想スイッチプロトコルにバインドされています。
```

>[［Hyper-V］仮想スイッチのプロパティの変更中にエラーが発生しました](https://qiita.com/momoto/items/bf9d11b78a69548ae4c7)

# 2.5GのNICで通信したい
ホストに複数NIC差している場合（でかつ早いNICを使いたい）、メトリックを設定すればよい。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44540/333c6290-32f9-9824-5b83-9b14f0703af4.png)

# ここらで電源落とす
意外と再起動すると設定が元に戻っていること多いので電源落として起動してみる。
Hyper-V を本格的に動かすならホストOSに色々なソフトを入れない。特にネットワーク関係。あとNICの追加/変更はトラブルになりやすい。

# Windows10 開発環境(評価版)
クイック作成で「Windows 10 Enterprise」が使えるようになります（期間制限あり）。これなにが便利かというとWindowsでシステム構築するとかSQL Server立ててみたいが環境がないとかそういうとき便利です。

個人的に「SQL Server」？！って嫌っていましたが無料で商用利用できるし、Visual Studioの環境作ったりするときに便利ですね。難点は英語版となっているので日本語環境で使いたい場合は、ちょいとテクニックがあります。

>[「Hyper-V」の“クイック作成”で展開したWindows 10を日本語化しよう](https://forest.watch.impress.co.jp/docs/serial/win10tips/1150718.html)

# 評価版の延長
評価期間は90日で、延長できる回数は約3回とのこと。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44540/d594769d-e5a0-5aef-46cb-7c5d1ed1e230.png)

とりあえず。管理者権限で黒い窓(cmd)を出して `slmgr -dlv` と打ってみる。下記はあと２回できる（90*2=180)。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44540/7877a6a8-dad2-b94c-7e3c-98c0b1aaffd4.png)

延長する場合は `slmgr -rearm` と打てばよい。がここで注意がある。残り日数が切れてからコマンドを実施すること。意味は、残り 50日でもコマンドを実行すると 90日にリセット, 回数-1となる。

>[評価版Windows10の有効期限を延長する方法「Pro・Enterprise」](https://acceliv.com/windows10-contract-extension/)

# 評価版は、RDPが使える
ユーザを作らないといけないが、これ便利。

# Windows 10 Homeでリモートデスクトップを使いたい
公式でないのでリスクはあるが便利。

>[Windows 10 Homeでリモートデスクトップ接続する方法](https://kuroyagikun.com/windows10-home-remote-desktop/)
>[【画像つき】Windows10 Homeでもリモートデスクトップを使う方法](https://kaoruya.org/blog/rdpwrap/)

# Hyper-V と Docker, Vagrant
色々とやってみた結果ですが悲しいかな共有できないみたいです。しかも色々やるとホストOSが汚れるｗｗ　
※Docker for Windows なら動くらしい

# VPNなどリモート環境を検証するのによい
これがすべてですね。VPNの設定/検証が簡単にできるｗ　中小企業で１人情シスの場合は役立つと思う。

# 消えてないじゃん！！
PCの中にPC作るの楽しいですよね～～、と。作ったり消したりしているとDISKの残りが 50G ？になってしまいどうしたもんかと思ったら…
削除しても残っているんです「*.vhdx」が、、、まあ簡単に削除できるから不安だったのですがとりあえず納得。

`C:\Hyper-V\Windows10 Pro\Virtual Hard Disks`

作成するのはデフォルトでなく明示的な場所で管理したほうが、まる。

# default Switch ってNATよね
仮想スイッチdefault Switch は、NATだと思うのだが、なぜか内部ネットワークが見えてしまう。調べたけどまったくもってわからん。下記の場合、物理NIC側の 192.0.10.0/24 見えないはずなのになあ。 `route print` してみても不明。

物理NIC : 192.0.10.5　
NAT    : 172.155.0.1

>[Hyper-Vネットワークの基本](http://www.vwnet.jp/windows/WS12R2/Hyper-V/Hyper-V_Network.htm)

# スペック的な話、とおかね！
ThinkCentre M75q-1 Tiny をヤフオクで購入(=3マン)。使い方にもよるがメモリ32Gあれば余裕。SSDは、500Gあったほうが安心。で。
Ubuntu x 1, Windows x 4 動かしてもメモリ的に大丈夫だし快適に動いてる。

がっつり開発するにはスペック的に心もとないが検証環境作ったりするのには向いてるでしょう。

# やっぱり Nested 使いたい
CentOSのKVMでサーバ立てているのでどうしても Nested が使いたい…
IntelのCPUにするか悩む。とりあえず VM Ware ではAMDのCPUでもNested 使えるようなので試してみる。