銀の光と碧い空

クラウドなインフラとC#なアプリ開発の狭間にいるエンジニアの日々

クライアントHyper-VにLinuxをゲストOSとしてインストールする時に注意すること

以前WindowsクライアントOS上にLinuxゲストOSを動かす時はVirtual Boxを使っていたのですが、UWP開発とかしていると必須であるHyper-Vと共存できません。そこでHyper-VでLinuxゲストOSを動かすことにしました。 Hyper-V はほとんど使ったことがなく*1、はまってしまった点をメモしておくことにします。

ドキュメントとしては、Red Hatのドキュメントが英語ですがスクリーンショットもありわかりやすいかと思います。RHEL以外のディストリビューションでも、Hyper-Vの設定までは同じだと思います。下のリンクでHyper-Vタグを開いてください。

developers.redhat.com

ちなみに、RHEL もRed Hat Enterprise Linux Developer Subscriptionが無償で提供されるようになったので、気軽に使えるようになりました。

www.redhat.com

さて、このツイートでも言ったのですが、

注意が必要なのは、これに加えてもう1点あるので、説明してみます。

仮想スイッチの作成

さて、Hyper-Vの機能を有効にして、Hyper-V マネージャーを起動したとして、仮想マシンを起動する前に仮想スイッチを作っておく必要があります。

Hyper-Vマネージャーの右側のペインに仮想スイッチがあります。 f:id:tanaka733:20160407233738p:plain

「外部」を選択し、適当な名前を入れます。このスクショではすでに仮想スイッチが作成済みなので左側に表示されています。 f:id:tanaka733:20160407065747p:plain

接続先の仮想スイッチで適当なものを選択て作成します。これで仮想スイッチが作成できました。 f:id:tanaka733:20160407065754p:plain

仮想マシンの作成

ここからは、どのゲストOSを作るかで多少変わります。RHEL7のケースで、ISOのライブイメージでインストールするケースで説明します。

仮想マシンの世代は、ゲストOSによって第2世代をサポートするかどうかが変わります。RHEL7系は第2世代でもサポートされるとあるのですが、最初に紹介したリンクでは第1世代を指定するとあるので、それに従っておきます*2f:id:tanaka733:20160407065759p:plain

RHEL7.xは第2世代をサポートするというドキュメント。 Should I create a generation 1 or 2 virtual machine in Hyper-V?

そして、ネットワークの構成で、先ほど作成した仮想スイッチを指定します。 f:id:tanaka733:20160407065806p:plain

あとは仮想マシンを作成して起動しましょう。

インストーラーでのネットワークスイッチの指定

最後に地味にここではまったのですが、RHELのインストールウィザードを進めていくと、「NETWORK & HOST NAME」がNo Conncetedになっていました。この場合はここをクリックしてネットワークスイッチを選択する必要があります。 f:id:tanaka733:20160407065813p:plain

Hyper-V側での仮想マシンの作成時に指定したネットワークスイッチが表示されるはずなので、これをONにして、インストーラーを進めます。 f:id:tanaka733:20160407065819p:plain

最後に、デフォルトのパッケージなどでRHELを起動すると、CUIで起動すると思います。subscriptionの管理は最初に紹介したリンクの通りで問題ないのですが、GUIで起動したい場合は以下のコマンドを実行して再起動してください。

yum groupinstall 'Server with GUI' -y
systemctl set-default graphical.target
reboot

*1:UWPでエミュレーターを動かすとHyper-Vが利用されるが、普通に触る分にはHyper-Vを意識しない

*2:後日検証予定