OpenWrt 24.10をHyper-Vにインストール

最新版が2月6日にリリースされたので早速インストールしてみたいと思います。x86用のイメージは幾つかありますがHyper-Vの第2世代を使いたいのでGeneric x86/64のCOMBINED-EFI(EXT4)をインストールしていこうと思います。

OpenWrtは基本的にルーター用に作られているLinuxなので、ルーターにインストールする時の様な簡単な方法が取れません。だからと言ってx86へのインストールが難しい訳でもありません。配布されているイメージは基本的にそのまま動きます。ダウンロードしたimgファイルをVHDなど仮想マシンで読めるディスク形式にコンバートする事で起動可能な状態になります。もしくは何かしらのディスクへ書き込んで起動して使う事もできます。

今回は後者の方法を取りつつ出来るだけ簡単にインストールして行きたいので、コマンドラインを使わずに2つのツールを使ってインストールして行きます。まず一つが「Rufus」で、もう一つがWindowsの「ディスクの管理」です。この2つのツールを使ってダウンロードしたイメージを書き込みます。

手順

  1. OpenWrtのオフィシャルページからGeneric x86/64イメージをダウンロード。
  2. Rufusをダウンロード(オフィシャル)または(Microsoft Store
  3. Hyper-Vマネージャーを起動
  4. Hyper-Vマネージャーを起動新しい仮想ネットワークスイッチを作成
  5. Hyper-Vマネージャーで新規仮想マシンを作成する
  6. 仮想マシンの設定
  7. イメージの書き込み準備(仮想ディスクの接続
  8. RufusでOpenWrtのイメージをVHDXに書き込む
  9. 書き込みが完了した仮想ディスクの切断
  10. 仮想マシンの起動
  11. OpenWrtのWebGUIに接続
  12. 補足
  13. 最後に

では始めていきます。まず手順1、2の必要なイメージとツールをダウンロードします。

ダウンロードを終えたら仮想マシンを作る前にネットワークを追加します。

Hyper-Vマネージャーを起動

既にWindowsでHyper-Vを起動出来る環境にしているものだと思って話を進めます。起動させたら仮想スイッチを作成します。

Hyper-Vマネージャーを起動新しい仮想ネットワークスイッチを作成

Hyper-Vマネージャーの右サイドバーの「仮想スイッチマネージャー」をクリックします。初期状態だとデフォルトスイッチのみかと思います。2つ追加します。内部外部です。内部ネットワークを追加することで、OpenWrtのWebGUIに簡単に接続できます。外部はWANポートとして機能させます。外部に設定する物理インターフェイスはWindowsがインターネットに接続しているデバイスを設定します。有線LANもしくは無線LAN等ご自身の環境に合わせてください。

仮想スイッチマネージャーから内部と外部を追加。内部の設定は特に必要ありませんが外部にはインターネットに接続されているデバイスを選択します。私は内部ネットワークに「Intranet」と名前を付けました。外部にはインターフェース名を付けています。

ネットワークの追加が完了したらHyper-VでOpenWrt用の仮想マシンを作って行きます。

Hyper-Vマネージャーで新規仮想マシンを作成する

Hyper-Vマネージャーの「右サイドバー」にある「新規」をクリックして「仮想マシン」を選びます。仮想マシンの「新規作成ウィザード」の画面が現れたら、丁寧に設定をしていきます。なぜ丁寧かと言うと「次へ」と「完了」のボタンが隣同士で並んでいて、完了を押してしまうと設定をしていない所は自動で設定されてしまい、後で設定の変更をする手間が増えます。変更は可能ですが、慎重にボタンを押していった方が手直しの手間が減るので丁寧に操作した方が良いかと思います。

仮想マシンの新規作成ウィザード

開始する前に
チェック 今後、このメッセージを表示しない

名前と場所の指定
名前: openwrt-24.10.0
他のオプションはデフォルトのまま

世代の指定
第2世代

メモリの割り当て
起動メモリ: 144MB 160MB
チェックアウト この仮想マシンに動的メモリを使用します。
固定メモリが好きなので私はチェックアウトしています。ネットワークアダプターを更に増やす場合等、仮想マシンにハードウェアを追加で増やす場合はメモリを増やしてください。メモリを減らし過ぎると仮想マシンが起動しません。私は最小のメモリ構成に近い状態で仮想マシンを作りました。256MB有れば安心かと思いますが、我が家はメモリがカツカツなので削れ所まで削っています。

ネットワークの構成
接続: intranet
内部ネットワークのアダプターを設定します。eth0として認識されます。

仮想ハードディスクの接続
仮想ハードディスクを作成する
 名前: openwrt-24.10.0.vhdx
 場所: C:\ProgramData\Microsoft\Windows\Virtual Hard Disks\
 サイズ: 1GB

インストールオプション
後でオペレーティングシステムをインストールする

要約
内容を確認後「完了」をクリックしHyper-Vマネージャーの画面に戻ります。

仮想マシンの作成が完了したら、出来上がった仮想マシンを右クリックして「設定」を開きます。

Hyper-Vの仮想マシン設定画面
設定を開きハードウェアの追加からネットワークアダプターを追加します。外部に設定したアダプター名を選びます。追加されたネットワークアダプターはOpenWrtからeth1として認識されます。

仮想マシンの設定

ハードウェア

ハードフェアの追加
ネットワークアダプター 追加
外部ネットワーク用のアダプターを追加しネットワークアダプターの設定の画面にします。

ネットワークアダプター
仮想スイッチ: Realtek 2.5GbE
外部アダプターに設定したアダプター名を選択します。他のオプションはデフォルトのままチェックアウトしておきます。設定が終わったら「適用」をクリックしてファームウェアの設定へ移ります。

ファームウェア
ブート順 ハードドライブを選択し「上へ移動」をクリックして最上段へ。完了したら 「適用」。

セキュリティ
チェックアウト セキュアブートを有効にする
セキュアブートは無効にしてください。VMを作成して起動しないな?と思ったらセキュアブートをがチェックされていないか疑ってください。他のオプションもデフォルトのままチェックアウトします。完了したら「適用」。

メモリ
RAM: 144MB 160MB
仮想マシンの作成時に設定した値になっています。気になる方は変更してください。WireGuard等を使用しても私の環境では100MB程度しか使用されていません。メモリの容量らしく試しに128MBと設定したのですが、128MBではOpenWrtが起動しませんでした。どこまで絞れるか実験しましたが142MB以上から起動できるようです。ちなみに144MBで設定した初回起動時のアイドル状況でHyper-Vマネージャーでメモリ要求を確認したところ74MBしかありませんでした。コンパクトで素晴らしいです。変更を加えた場合は「適用」。

内容変更(2025/02/25)
144MBで最初稼働させていたのですが、少々重く感じたのでメモリを増やす事にしました。OpenWrtのステータス画面で確認したところ117MB程度で認識されていたので128MBと認識させる為にどの程度必要か調べたところ154MBぐらいで約128MBとして認識されました。ただ、数値的に中途半端だったので160MBで使う事にしました。160MBで以下の画像の様に133.87MBとして認識されています。ただ、残り利用可能な合計が10.64MiBなので最低でも256MBはVMに設定した方が良いかもしれませんね。

Hyper-Vで設定したメモリ量とVM上でのメモリの差。
Hyper-Vで160MBのメモリを設定すると、OpenWrt上では133.87MBと認識されるようです。

プロセッサ
仮想プロセッサの数: 1
他のオプションはデフォルトのまま。変更を完了したら「適用」。

SCSIコントローラー
デフォルトのまま

ネットワークアダプター
仮想スイッチ: intranet
特に設定は必要ありませんが、追加した外部ネットワークより上段に有る事を確認してください。

ネットワークアダプター
仮想スイッチ: Realtek 2.5GbE
既に設定を済ませているので変更の必要はないです。

管理

管理内の設定はお好みに合わせてください。以下は私の設定です。

名前 デフォルトのまま

総合サービス 全てにチェック

チェックポイント チェックアウト チェックポイントを有効にする

スマートページングファイルの場所 デフォルトのまま

自動開始アクション 常にこの仮想マシンを自動に起動する

自動停止アクション ゲストオペレーションシステムをシャットダウンする

最終的に設定した構成。設定を終えたら「OK」をクリック。

全ての設定を終えたら「OK」をクリックしてHyper-Vマネージャーに戻り、右サイドバーの「ディスクの編集」を開きます。

イメージの書き込み準備(仮想ディスクの接続)

仮想ハードディスクの編集ウィザード

仮想ハードディスクウィザードの画面が表示されたら「参照」をクリックし、エクスプローラーの画面を表示させます。

Hyper-Vマネジャーから仮想ハードディスクの編集ウィザードを開いた画面。参照をクリックしてファイルエクスプローラーを開く。
Hyper-Vマネージャーの右サイドバーからディスクの編集をクリックし「仮想ハードディスクの編集ウィザード」を開きます。「ディスクの場所」のページに変え「参照」をクリックしてファイルエクスプローラーを開きます。

仮想ハードディスクの接続

エクスプローラーが開いたら「openwrt-24.10.0」を「右クリック」しコンテキストメニューを表示します。表示されたコンテキストメニュー内の「マウント」を選択します。すると「ファイルをマウントできませんでした」と警告が出ると思いますが、気にせず「OK」をクリックして画面を閉じてください。エクスプローラーの画面の「キャンセル」か「×」をクリックして閉じ、仮想ハードディスクの編集ウィザードの画面も「キャンセル」か「×」をクリックして閉じます。

さて、何をしたかと言うと仮想ハードディスクをWindowsに強制的に接続し、Rufusでディスクを認識できる様にしました。「ディスクの編集」ツールを使って接続をする事もできるのですがこちらの方が簡単なので、ちょっと強引ですがこの方法をとりました。

仮想ハードディスクの接続ができたらダウンロードしたイメージを書き込みます。

RufusでOpenWrtのイメージをVHDXに書き込む

Rufusを起動し「デバイス」で作成したディスクを選び、「選択」からダウンロードしたファイルを選び書き込みます。

「デバイス」に接続したディスクを、「選択」のボタンからダウンロードした「openwrt-24.10.0-x86-64-generic-ext4-combined-efi.img.gz」のイメージを選択して「スタート」をクリックします。

スタート」をクリックすると警告が出ますが確認して問題がなければ「OK」をクリックして書き込みをします。書き込みが完了したらRufusを閉じます。

書き込みが完了した仮想ディスクの切断

書き込みが終了したら、「ディスクの管理」ツールを開き、書き込んだVHDXファイルを「右クリック」してコンテクストメニューを表示し「切断」を選択します。なぜ切断が必要かと言うと使用中のディスクになってしまっているので、Hyper-VでOpenWrtを起動しようとするとエラーが出て起動できません。よって切断する必要があります。

ディスクの管理」ツールは「スタートボタン」を「右クリック」しコンテクストメニュー内の真ん中辺りにあります。

スタートボタンの右クリックで表示されるコンテキストメニュー。ディスクの管理ツールをクリックして開く。
「ディスクの管理」は「スタートボタン」を「右クリック」する事でコンテクストメニュー内に表示されます。

「ディスクの管理」ツールを開いたら接続されたディスクを探し切断します。切断の仕方は「ディスク名(私の環境ではディスク3)」の上にマウスポインタを移動して「右クリック」。コンテクストメニュー内の「VHDの切断」を選択します。警告が出ますが気にせず「OK」をクリックします。

「ディスクの管理」ツールを開いたらシアンカラーのディスクをクリックするかスクロールバーを下げます。私の環境では接続されたディスクの名前は「ディスク3」、容量は1.00GBで16MBと104MBのパーティション、そして904MBの未割当のパーティションとなっていました。赤く囲った部分を右クリックしてコンテクストメニューメニューを開き「VHDの切断」をします。

切断が完了したら再びHyper-Vマネージャーに戻りOpenWrtを起動します。

仮想マシンの起動

Hyper-Vマネージャーの画面内で「仮想マシンの名前(openwrt-24.10.0)」を「右クリック」するか「左クリック」し選択すると、コンテクストメニューの三段目もしくは右サイドバーの下側の三段目の「起動」をクリックします。起動を確認したい場合は一段目の「接続」をクリックしてください。

OpenWrtのWebGUIに接続

起動したらWindowsの適当なブラウザで http://192.168.1.1 とするか http://openwrt.lan と入力してOpenWrtへ接続してください。内部のスイッチを作成した事でWindowsから簡単に接続できているかと思います。

ログイン画面が表示されたらパスワードは入力せずログインします。

WebGUIに接続できない場合はWindowsのネットワークの設定で作成したvEthernetの設定を確認してください。自分は既に設定を済ませてしまっていたのでデフォルトの設定がうろ覚えなんですが、「インターネットプロトコルバージョン4と6(TCP/IPv4とv6)」のチェックボックスが「チェック」されているか確認してください。チェックが外れている場合はチェックをして「OK」をクリックします。もしIPを固定したい場合はプロパティから設定に入ってください。内部のアダプター名がvEthernet(intranet)になっていますがネットワークを追加した時に決めた名前が括弧内に表示される思います。

vEthernetの詳細画面を開きIPv4、IPv6にチェックを付ける。
設定→ネットワークとインターネット→ネットワークの詳細設定→vEthernet(指定した名前)→内容を展開→その他のアダプターオプション→編集をクリックすると上記の画面が現れます。画面を表示したらvEthernetの詳細画面を開きIPv4、IPv6にチェックを付ける。

補足

ディスクの管理ツールを開いた際に、1GBのディスクのうち128MBしか使用されていない事に気付かれた方も居るかと思いますが、ルーターとして使用する分にはこれで十分です。ただ、ソフトフェアを沢山インストールしたり、ファイルサーバー的な使用を目的としている場合は容量を拡張してください。

もし1GBすべてを使用したい場合は、Windowsでは直接Ext4パーティションを操作できないので、以下のいずれかの方法でパーティションに変更を加えます。

  1. Windwos用のパーティションツールをダウンロードして操作する。
  2. Hyper-VでUbuntuの仮想マシンを作り、OpenWrtを書き込んだ1GBのディスクを読み込めるように設定した後、GPartedなどのパーティションツールで104MBのパーティションを拡張する。
  3. Hyper-Vマネージャーで新規から仮想マシンを作成し、設定で仮想ハードディスクの接続に「既存の仮想ハードディスクを使用する」を選びOpenWrtを書き込んだディスクを選択します。インストールオプションの「ブートCD/DVD-ROMからオペレーティングシステムをインストールする」のイメージファイルにUbuntuなどのLinuxディストリビューションのインストールメディアイメージを選択してVMを作成後、起動。あとは2と同様にGPartedなどのパーティションツールで拡張する。

最後に

私はOpenWrtで以下の事を行っています。

  • WireGuard
  • DDNS
  • PPPoE接続
  • AdBlock
  • OpenWrtサブネット内で稼働させているWebサーバーへのポートフォワード

次回の投稿はWireGuardの構築に向けて、まず下準備としてPPPoEとDDNSを設定を投稿しようと思います。

コメントする