Hyper-VでUbuntu22.04

Windowsに標準搭載のHyper-Vで、Ubuntu22.04環境を構築しました。
意外とかんたんですが、ネットワー設定の部分にコツが必要です。
今回は、そのあたりのことを書いてみたいと思います。

テスト環境を構築しました。

Windowsに標準搭載のHyper-Vで、Ubuntu22.04環境を構築しました。
理由は、テスト環境が欲しかったからです。
サーバーを運営する上で、設定やアップデートなどを試してみたくなることがあります。
でも、本番のサーバーでリスクのあることは、あまやりたくはないモノですからね。

昔は、このようなときは、デュアルブートがお約束でした。
HDDにパーテーションが切られていないと、PCの初期化からで地獄でしたね。
その後、USBメモリーにインストールする技もありましたが、安定度がいまひとつでした。
ところが、いまはこんな仮想マシンがタダで使えるのですから、本当に便利な世の中です。

ちなみに、この手の仮想マシンはOracleのVirtual Box が有名です。
正直、どちらでいくか迷ったのですが、今回はHyper-Vを使ってみることにしました。
せっかく、Windowsについているのなら、使わない手はありません。
ただ、これを使うためには、WindowsのエディオンはProである必要があります。

Hyper-Vの有効化については、Windows の機能からHyper-VのチェックボックスをONですね。
Windowsの機能は、ファイル名を指定して実行に、OptionalFeaturesと入力で起動です。
有効になれば、WindowsツールからHyper-Vが起動できるようになります。

Hyper-Vが起動できたら、新規→仮想マシンで環境を作っていきます。
マシン名を入力、世代は第2世代を選び、メモリーは動的、容量は2048MBで十分のようです。
ネットワーク接続は、とりあえず Default Swtich を選んでおきましょう。
ハードディスクのサイズは、50GBもあれば十分かと思います。

あとは、ブートイメージファイルからオペレーティングシステムをインストールするを選び、UbuntuのISOファイルを選択します。
もちろん、事前にUbuntuのISOファイルはダウンロードですね。
サーバーの設定のセキュリティのセキュアブートを有効にするチェックを外し、サーバーに接続して起動すれば、Ubuntuのインストールが開始されます。

ネットワークの設定が、すこしめんどうです。

インストールができたら、まずは画面の解像度を変更します。
デフォルト800x600なので、ちょっと狭すぎですね。

変更するには、/etc/default/grub ファイルを編集します。
以下の部分を、下記のように書き換えます。

GRUB CMDLINE LINUX DEFAULT="quiet splash video=hyperv_fb:1366×768″

解像度は、fb:以下の部分で決まります。
今回は、1366x768にしてみました。
書き換えたら、設定をアップデートして再起動します。

# update-grub
# reboot

ここまできたら、次はIPアドレスの固定化ですね。
最初に使用したDefault Swtichでは、IPアドレスを固定化できません。
これですと、SSHやFTPの使用に支障をきたすので、一工夫していきます。

まずは、Hyper-Vマネージャーの仮想スイッチマネージャーで新たに仮想スイッチを作成します。
仮想スイッチは内部で作成しましょう。

作成できたら、今度はそのスイッチでネット接続ができるようにしていきます。
コントロールパネルのネットワーク接続で、いま使用しているネットワークのプロパティを開きます。そこの共有タブで、作成した仮想スイッチを共有するのですね。

また、作成した仮想スイッチのTCP/IPv4設定は、IPアドレス自動取得にしておきましょう。
そして、ネットワークを共有したあとに仮想スイッチのTCP/IPv4情報を確認します。
そこに表示されているIPアドレスが、この仮想スイッチのアドレスになりますね。
あとは、Hyper-V上のUbuntuを起動して、仮想スイッチと同じネットワークで固定アドレスを設定すればOKです。

ただし、この方法ですと、何らかのタイミングでネット接続ができなくなるときがあります。
そのときは、ネットワークの共有をやり直すことで復旧することができます。
ここは正直今一つなのですが、テストで使う環境なのであまり深く追求しないことにします。

DNSを立ち上げれば、本番と同じ環境になります。

IPアドレスの固定化に成功すれば、あとは本番環境と同じようにセットアップするだけですね。
OpenSSHServerを入れれば、TeraTarmのようなターミナルソフトで操作ができます。
もちろん、FTPをいれればファイルのアップロードやダウンロードも可能ですね。

そして、最後にDNSサーバーを立ち上げます。
WebやメールサーバーでVirtualを試すためには、DNSは必須ですからね。
BINDを触るのは10年ぶりでしたが、以前の自宅サーバーの資料が役に立ちました。

あとは、このDNSを外側から、要はホスト側から引ける必要があります。
これについてはいろいろと悩みましたが、結論からいうと、仮想スイッチのIPv4プロパティでDNSの設定をHyper-V上のUbuntu22.04の固定IPアドレスにすれば解決です。
これで、ホスト側のブラウザからHyper-V上のUbuntu22.04で運用しているWebサイトに、URLでアクセスできるようになりますね。

これでやっと、テスト環境を構築することができました。
まずは手始めに、本サイトで使用するテーマの再検討です。
もしかすると、テーマを自作するようなことになるかもしれません。
それはそれで、またひとつ楽しみが増えたなと思っています。