目次
Hyper-V vs WSL2?
時代や現在のトレンドはWSL2(Windows Subsystem for Linux)ですが、個人的にはまだHyper-VにLinuxサーバを立ててそこで開発する方がやりやすいです。
まだまだWSLも発展途上なので今後より使い勝手が良くなっていきますが…。
日本だとWSL2、Hyper-Vがここ1年間ほど同じぐらいの検索頻度になっています。

なお全ての国で見てみるとまだまだHyper-Vの方が強そうかなぁ。
というかそもそもHyper-VとWSLをそのまま比較するのはあんまり良くないか。

なお、VMware(ESXi)とVirtualBoxを並べてみるとこんな感じです。
圧倒的なVirtualBox一強なんですね。若干右肩下がり…っぽい気がしますが、対照的に右肩上がりになっているものがないので何か他の仮想化環境があるのかなぁ。

現時点でWSL2よりもHyper-Vで開発することを推す理由を下記にまとめます。
- ネットワーク周りの設定が柔軟にできる
- 固定IP運用がし易い
- 他PCへの移行も比較的楽であるし使いまわしが可能(.vhdxファイルを使いまわす)
など他にもありますがこんなところです。
一方でWSL2と比較した場合のデメリットは下記になります。
- 起動が遅い(WSL2早い…)
- Windows Pro以上じゃないと使用不可
Homeでも使用出来る方法があるらしいですが、大丈夫なのか…?
というわけで今回はHyper-Vを使用して下記のような環境を作成していきます。
環境
- Ubuntu 20.04.2
- 固定IP運用(SSHやFTP接続の度にIPアドレス確認するの面倒なので)
- インターネット接続可能
- 内部ネットワークを使用する
- 会社とかのセキュリティで登録されたPCしか接続出来ない時に便利
今回の目標
- Hyper-Vで仮想マシンを作成する
- 仮想マシンにUbuntuをインストールする
仮想マシン作成手順
Ubuntuのisoファイルをダウンロードしておきます。
今回は「ubuntu-20.04.2-live-server-amd64.iso」というファイルをダウンロードしておきます。
Desktop版でも良いんですが重いしGUIは要らないのでこちらにしました。
Hyper-Vが入っていないひとはコントロールパネルから機能を有効化してください。

Hyper-Vの管理画面を開いたら早速仮想マシンを作成します。

各種設定は以下のようにします。
- 名前:お好みで
- 仮想マシンの格納場所:お好みで
- 仮想マシンの世代:第2世代
- 起動メモリ:お好みで(2048MBあればとりあえず動きます)
- ネットワーク:Default Switch(後ほど変更します)
- HDD:仮想ハードディスクを作成する(設定値は基本デフォルトでOKです)
- インストールオプション:後でオペレーティングシステムをインストールする
この状態で一度仮想マシンを作成します。
他にも設定変更する箇所があるので続いて作成した仮想マシンの設定画面を開きます。
セキュリティ:テンプレートをMicrosoft UEFI 証明機関に変更
これを変更しておかないとLinux全般が起動しないです。
Windowsをインストールする場合はそのままでOKですが。

SCSIコントローラーのDVDドライブを追加しておきます。
インストール用のisoファイルを読み込むためです。
DVDドライブを追加したらダウンロードしておいたisoファイルをアタッチしておきます。


自動チェックポイントを無効にしておきましょう。
使用しているといつの間にかディスク容量を食います。その昔知らずにチェックポイント有効にしてたら、ディスク容量圧迫してサーバ止めちゃいましてね…。

Ubuntuインストール手順
この辺りはインストーラーの指示に従えば普通に作成できるので省略します。
何気にUbuntuをインストールするのは初めてだったんですが、よくインストールされるものみたいな感じでDockerをまとめて入れれたのは良かった。
インストール時に聞かれるものについては基本的にデフォルトのままで問題無いです。
途中でユーザ名、パスワードを設定する箇所がありますが忘れないようにしてください。
少し設定変更した箇所を下記にまとめておきます。
- Install OpenSSH Server:有効
- Import SSH identity:No
- その他インストールしたパッケージ:Docker


設定後にインストールが開始され5分~10分程時間が掛かるかと思います。
インストール完了後再起動するように言われるので再起動します。
再起動後に以下のように文字列が流れて最終的にログインが表示されればインストール完了です。

この状態でも十分開発自体は可能ですが、IPが固定になっていないなどの少し扱いづらい部分があります。
次回はネットワークの設定などを行い目的の環境を完成させます。