Windows11 Homeでの仮想化備忘録（CentOSのインストール）


# はじめに
かわいい後輩がインフラCI実践ガイドという本を貸してくれました。
その本には仮想化環境を構築して、演習をしましょう！と記載がありましたので、初めて仮想化環境の構築に取り組んだ軌跡を綴ってまいります。
WindowsにはHyper-Vで仮想化が可能のようでしたが、Windows Homeにはデフォルトで実装されておらず、インストールから実施する必要がありました。そのため記録を残し、どうやって仮想化するかを後から追えるようにしておきたいと思います。


# 目次
1. [参考にさせていただいたサイト様](#Chapter1)
1. [Hyper-Vのインストール方法](#Chapter2)
1. [Hyper-Vの有効化方法](#Chapter3)
1. [Hyper-Vマネージャーの起動](#Chapter4)
1. [仮想ネットワークスイッチの設定](#Chapter5)
1. [Cent OSのダウンロード](#Chapter6)
1. [仮想マシンの作成](#Chapter7)
1. [Cent OSのインストール](#Chapter8)
1. [参考文献](#reference)

<!-- 各チャプター -->
<a id="Chapter1"></a>
# 参考にさせていただいたサイト様

以下のサイト様を参考にさせていただき、実施いたしました。
ここ見るよりも以下のサイト様を参照するのが分かりやすいです。

https://jo-sys.net/win11home-hyperv/

https://jo-sys.net/win11-vos/

上記のサイトではWindows開発環境というOSをインストールしているようでしたので、今回の目的であるCent OSをインストールするために、以下のサイト様たちにお世話になりました。

https://qiita.com/gate9/items/6a179f4ef5c2fcee2ae5

https://www.server-memo.net/centos-settings/centos7/centos7-minimal.html


<a id="Chapter2"></a>
# Hyper-Vのインストール方法

バッチファイルを作成し、そちらのコマンドでインストールを行います。
バッチファイルを実行する際は、管理者権限での実行をお忘れなく。
コマンドの内容から、インストールディレクトリなどは気にしなくても良さそうでした。
私は外だしHD上にファイルを置いて実行しました。
バッチファイルは実行完了後に再起動を求められます。

```bat
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V -All /LimitAccess /ALL
pause
```

<a id="Chapter3"></a>
# Hyper-Vの有効化方法

記事に書いてある方法（プログラムの直接実行）でも大丈夫ですけれど、コントロールパネルにプログラムと機能がありますので、そちらから辿っていく方法もあります。
プログラムと機能に行きましたら、左側にある「Windowsの機能の有効化または無効化」というセクションから同じ画面に行けます。

![ss.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494391/a73cd1ca-9788-707c-1f4e-8a5dc85c46e7.png)


ここで以下にチェックを入れるようです。
チェックを入れると、またPCの再起動を求められます。

* Hyper-V
* Windowsハイパーバイザープラットフォーム
* 仮想マシンとプラットフォーム


<a id="Chapter4"></a>
# Hyper-Vマネージャーの起動

Windowsロゴから検索でHyper-Vをタイプすると選択肢にHyper-Vマネージャーが出てくるので、こちらを起動します。
または、以下ディレクトリにHyper-Vマネージャーが存在するので、そこからも起動できます。

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools


<a id="Chapter5"></a>
# 仮想ネットワークスイッチの設定

これはサーバー本体につながっているネットワークを、仮想化環境に接続する作業らしいです。
Hyper-Vのネットワークには、仮想スイッチと仮想NICの二つを意識する必要があるようです。
NICがネットワーク・インターフェース・カードの略で、物理でもあるネットワークのポート（正確にはその内部にあるカード状の基盤のようです）というイメージです。
さらにネットワークスイッチは、ネットワーク同士を繋げるための装置となります。
今回はこれらを駆使して、仮想サーバーのネットワークを、ホストOSのネットワークに繋げるものです。
・・・だと思ったのですが、特にNICを意識することなく繋がりました。


~~最初にHyper-Vマネージャーで、左側から自分のコンピュータ名を選択します。~~
~~選択すると、右側のメニューが変わります。~~
~~右側のメニューから、「仮想スイッチマネージャー」を選択してください。~~
~~仮想スイッチのマネージャーが開きますので、ここでは「内部」を選択して「仮想スイッチの作成」ボタンを押してください。~~
~~名前を適当につけて、OKします。（私は「Linux_NW」と名付けました）~~

~~Windowsキーから、設定にいき、「ネットワークとインターネット」を選択してください。~~
~~次に「ネットワークの詳細設定」をクリックします。~~
~~するとネットワークアダプターが表示されますが、ここに先ほど設定したLinux_NWくんが存在しています。~~
~~でも選択するのはスクロールしていき、下の方にある関連設定の「ネットワークアダプターオプションの詳細」となります。~~

~~新たにネットワーク接続ウィンドウが表示されるかと思います。~~
~~そこには先ほど作成したLinux_NWくんとその他ネットワーク類が存在しているかと思います。~~
~~Linux_NWと動いているネットワークをブリッジさせる必要がありますので、二つを同時に選択します。~~
~~二つ選択された状態で右クリックし、「ブリッジ接続」を実行します。~~
~~これにより新たに「ネットワークブリッジ」というものが現れればOKです。~~
~~・・・これをやった結果、ネットに繋がらなくなりましたorz~~
~~復旧方法としては、現れたネットワークブリッジを右クリックで削除することで、ブリッジ接続が解除され、動くようになります。~~


気を取り直して、Hyper-Vマネージャーを立ち上げたら、左側から自分のPCを選びます。
続いて右側のメニューから、「仮想スイッチマネージャー」を選択します。
仮想スイッチマネージャー画面から、「外部」を選択して、「仮想スイッチの作成」ボタンを押します。
適当に分かりやすい名前をつけましたら、「OK」ボタンで作成します。


<a id="Chapter7"></a>
# Cent OSのダウンロード

Cent OSのサービス終了するようですけれど、本で指定されているのがCent OSですので、とりあえず従ってみることにいたします。
Cent OSのウェブサイトにアクセスすると、ダウンロードできるものが選べます。
アーキテクチャごとにダウンロードするものが選べますので、私はx86_64を選択しました。
その後選択肢として、DVD, Everything, Minimalの３つが出てきます。
本ではDVDを選択するよう指定がございますので、こちらを選択していきます。



<a id="Chapter7"></a>
# 仮想マシンの作成

続いて仮想マシンの作成をしてまいります。
Hyper-Vの左側にあるサーバーを右クリックして、「新規」からの「仮想マシン」を選択してください。
最初の画面は「次へ」を選択して問題ございません。
次に名前を決めるのですが、ここも分かりやすければなんでも良いようです。
そして仮想マシンを格納するフォルダを選択できますので、空き容量が十分な場所を選択してください。
ここで私は外部HDDを選択いたしました。

次に第１世代か第２世代かの選択を迫られます。
こちらは軽く調べてみましたところ、第１世代は旧世代のHyper-Vとの互換性や、古いOSなどを使えるようです。
対して第２世代ですと、旧世代との互換性はなく、OSも新しいものや64bitなどの要求があるものの、セキュリティ面が向上するとのことです。
この辺りは仮想マシンを作る要件次第かと思いますので、各々好きな方を選択していただければと思います。
ただし、一度選択すると変更することができないようですのでご注意ください。
私は第１世代で作成します。
違いの詳細は以下サイト様に載っておりますので、ご興味のある方はぜひご覧になってください。

https://bizlog.tech/hyperv-vm-generation/

そしてメモリを選択しますが、ここも好みに合わせて設定してください。
デフォルトでも問題ありませんけれど、私は本で要求されていたのが8GBでしたので、1024 * 8 = 8192MBを指定いたしました。

次にスイッチの選択となります。
ここでは先ほど作成した外部スイッチを選択しましょう。

続いてディスクの選択となりますが、こちらも特に問題なければデフォルトでいきましょう。

ここまで終わると今度はOSのインストールになります。
先のステップでダウンロードしてきたisoを選択します。

最後にセットアップの条件を確認し問題なければ「完了」でセットアップしてください。


<a id="Chapter8"></a>
# Cent OSのインストール

Hyper-Vマネージャーの画面に戻ります。
真ん中に仮想マシンがありますので、こちらをダブルクリックで起動します。
すると仮想マシンの画面が表示されます。最初は起動されていませんので、画面に表示されている「起動」ボタンから起動を行ってください。

Cent OSの画面が表示されます。
どれを選択して良いのかよく分かりませんので、とりあえずAutomatic bootを待ちます。
すると何やらチェック処理は走りました。正座して待ちましょう。

やっとコマンドラインからGUIに変わりました。
言語の選択画面になっているので、日本語を選びます。
「続行」をクリックします。

「インストール先」という項目でオレンジの警告が出ますので、こちらを選択します。
既に選択されていることを確認しましたら、次にパーティションを確認しましょう。
本ではルートパーティション（/）で50GBを確保するように明記されています。
デフォルトでは自動でパーティションを切るようになっておりますが、これではルートパーティションに50GB割り当てられるか分かりません。
確実なものとするために、自分で設定を行います。
「パーティション構成を自分で構成する」を選択し、「完了」にします。
これにより手動パーティション設定の画面にいきます。
一から自分で設定するのは至難の業ですので、自動で割り振る機能に頼りましょう。
これにより自動で必要なディレクトリを作成してくれます。あとは気になるルートパーティションのサイズが50GB以上になるようにし、完了します。
確認画面が出てまいりますので、「変更を許可する」で実行しましょう。

次はネットワークの設定を行います。
「ネットワークとホスト名」を選択します。
「Ethernet(eth0)」がデフォルトでオフになっていますので、クリックしてオンにしましょう。
接続済みになったことを確認しましたら、左下のホスト名を適当に分かりやすいものにしましょう。
「適用」ボタンを押してください。
あとは固定IPにしたい場合は、「設定」ボタンから指定できるようですが、何を設定するのか分からなかったため、
最後に「完了」ボタンを押しましょう。

上記全てが完了しましたら、「インストールの開始」ボタンを押します。
続いてパスワード設定が必要となります。
「Rootパスワード」を選択してください。
パスワードを設定しましょう。

あとはインストールが完了するまでティータイムをしましょう。
終わると「再起動」ボタンが表示されますので、そちらから再起動を行ってください。

再起動すると、CUIの画面が出てきますので、ユーザー名をroot、パスワードは先ほど設定したものを入力しましょう。
無事にログインできましたら完了となります。
お疲れ様でした。


♬追記

本にホスト名の指定がありましたorz
Cent OSのホスト名設定方法は以下のコマンドで実行できました。

```shell
hostname　←hostnameコマンドを実行します。
infraCI　←現在のホスト名を表示します。
hostnamectl set-hostname infraci.local　←ホスト名を恒久的に本で指定されているホスト名に変更します。
hostname　←再度hostnameコマンドを実行します。
infraci.local　←ホスト名が変更されています。
```