CentOS8 を VirtualBox にインストールする手順

# このメモに書いてあること

* CentOS8 インストールの流れ
* インストール画面が見切れる問題への対処方法
* VirtualBox Guest Additions のインストール方法
* IPv6 の無効化方法：sysctl の場合
* IPv6 の無効化方法：kernel boot option の場合

## インストール条件

|設定項目|このメモでの設定値|備考|
|:--|:--|:--|
|ソフトウェアの選択|サーバ（GUI使用）|初期値|
|hostname|cent8.example.co.jp||
|rootパスワード|||
|一般ユーザID|user01||
|一般ユーザパスワード|||
|インストール先PC|VirtualBox 仮想マシン|VBoxGuestAdditions を導入|
|日本語入力環境|日本語入力環境を設定||
|IPv6|無効化||

## インストール

1. Install CentOS Linux 8.0.1905 を選択 (項1～3は失敗例です。項4から開始してください)
![インストール](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/078773eb-bf21-20fa-e982-2356f98dd9a5.png)

1. 言語選択 (項1～3は失敗例です。項4から開始してください)
![cent8inst_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/467f6769-fb00-6b22-9ee6-7b4e713097da.png)

1. インストール概要 (項1～3は失敗例です。項4から開始してください)
普通にインストーラーを起動するとこういう風に画面が切れてしまいます。
![cent8inst_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/0a9a1e56-f87f-f125-e2a2-2bd0899976a8.png)

1. インストール開始
Install CentOS Linux 8.0.1905 を選択した状態で Tab を押してメニューを表示
末尾に vga=773 を追記してインストーラを起動してください。
※この時点でシステムは英語キーボードモードです。日本語キーボードを使っている場合"="は "^"を押して入力してください。
[参考：GRUB VGA Modes](http://pierre.baudu.in/other/grub.vga.modes.html)
![cent8inst_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/b0bf0200-65f3-fe52-0b5c-bdd77a917514.png)


1. 言語選択
利用する言語を選択します。私は日本語を選択しました。
![cent8inst_5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/7090eea1-484e-157a-3069-22a4fb26a925.png)

1. インストール概要
時刻と日付
インストール先（ディスク および 必要であればパーティション設定）
KDUMP無効化（自宅サーバならKDUMPが取れても解析しないよね？）
ネットワークとホスト名（DHCPでもホスト名位設定しましょう）
![cent8inst_6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/341a490e-9842-afa5-9402-07f34cfe6c82.png)

1. 時刻と日付を選択し地域を選択
アジア／東京 を選択しました
![cent8inst_7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/b13a5206-c2a1-6bc2-9589-8ba62e9f2d99.png)

1. インストール先Diskを設定、必要であればパーティション設定
私は標準のディスク選択を受け入れました。
![cent8inst_8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/1a51f6d8-84aa-91ac-bb63-c5e147afdb73.png)

1. KDUMP 無効化
kdumpを有効にする のチェックを外す
必要な方はチェックを外さず、標準設定を受け入れてもいいと思います。
![cent8inst_9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/5f0a0645-f1e6-bdf7-3491-42c7368cdf97.png)
![cent8inst_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/9138e85e-d6dc-0bc4-ecc5-735d33743d1a.png)

1. ネットワークとホスト名
ホスト名の設定
Ethernet を オン に変更
![cent8inst_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/5fb3017b-1177-2c08-b822-32e4efb80bc0.png)

1. インストール概要の確認
インストールの開始 をクリック
![cent8inst_13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/41b2ddef-4b72-f52f-e17b-945b22b56196.png)

1. ユーザの設定
root パスワードの設定と、一般ユーザアカウントの作成を行います。  
![cent8inst_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/7ad23491-5b07-7d2d-9e83-d4d5306a2b25.png)

1. root パスワードの設定
![cent8inst_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/c77138bf-b443-692c-1f27-1a0f923d7219.png)

1. ユーザの作成
作成するユーザの情報を指定
私は "このユーザを管理者にする" をチェックしてここで作成したユーザで作業してます。
![cent8inst_16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/f3726935-37f8-3b57-b7a2-0017f065003a.png)

1. 再起動
インストールが終わるのを待って 再起動 を行います。
インストールメディアを外すのを忘れないでください。
![cent8inst_18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/ccb82e85-6e85-ced8-bc49-74ee8f19ae6d.png)

1. ライセンスへの同意
![cent8inst_19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/cee954b5-e6d6-9064-0bca-ac34011935bc.png)

1. ライセンスを確認し同意できる場合 ライセンスに同意する にチェックを付けてください。
![cent8inst_20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/31130afd-981f-c947-74e7-5d871d56294d.png)

1. 初期セットアップ完了
![cent8inst_21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/f3f88cf8-8ed0-4453-c05d-9efe671cac50.png)

1. ログイン
![cent8inst_22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/cfedd971-26ee-a3b1-6ccf-6f889ade3e61.png)

1. 初回ログイン時の設定1：言語選択
![cent8inst_23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/acb96fc6-4ba9-ba15-c6b1-74d472764fea.png)

1. 初回ログイン時の設定2：入力方法選択
![cent8inst_24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/b8410aa4-46cf-c611-8576-aa2c040c9bab.png)

1. 初回ログイン時の設定3：プライバシー設定
![cent8inst_25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/42ff2688-d12e-1959-8324-e8c6142da229.png)

1. 初回ログイン時の設定4：オンラインアカウントへの接続（任意、私はスキップしてます）
![cent8inst_26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/7d40b469-f403-4f14-7d44-6c549ce942f6.png)

1. 初回ログイン時の設定5：完了
![cent8inst_27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/db741e00-b4dc-3df0-4656-30bee7fe3d88.png)

## VirtualBox Guest Additons インストール

1. 必要なパッケージ追加
VirtualBox Guest Additions インストールの為に開発環境のインストールを行う
最初、VBoxGuestAdditions のインストールに失敗したのでsetup.logを見ると以下のモジュールを要求していたので、
開発環境と一緒にインストールしてます。
libelf-dev lebelf-devel or elfutils-libelf-devel  

    ```text
    [user01@centos8 ~] sudo dnf group install -y "Development Tools"
    [user01@centos8 ~] sudo dnf install -y  elfutils-libelf-devel
    ```

1. アップデートの実施
大抵の場合、追加インストールされた kernel-header と稼働中のkernelにずれが出来ます。
アップデートを実施してパッケージのバージョンを揃えましょう。

    ```text
    [user01@centos8 ~] sudo dnf clean all
    [user01@centos8 ~] sudo dnf check-update
    [user01@centos8 ~] sudo dnf -y upgrade
    [user01@centos8 ~] sudo shutdown -r now
    ```

1. VirtualBox Guest Additions のインストール1
Guest Additions CDイメージの挿入を選択
![cent8inst_29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/e20fc6eb-bf97-fb4f-7ea4-a123bc0383f5.png)

1. VirtualBox Guest Additions のインストール2
VBox_GAs_XXX の画面が出たら 実行する をクリックしてください。
![cent8inst_28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/ee3b19b9-8b5f-cc38-cdaa-8af6a05da8c7.png)
画面が表示されない場合以下のコマンドでインストールを実行してください。

    ```text
    [user01@centos8 ~] sudo /run/media/user01/Vbox_GAs_6.0.14/VBoxLinuxAdditions.run
    [user01@centos8 ~] sudo shutdown -r now
    ```

1. VirtualBox Guest Additions のインストール3
認証が要求された場合、認証情報を入力してください。
![cent8inst_30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560759/02859f23-3198-a18f-d0ad-f4d32f04263f.png)

1. VirtualBox Guest Additions のインストール4

インストールが完了したらOSを再起動して完了です。

## IPv6無効化

### 方法1：sysctl での無効化

1. sysctl.conf での IPv6無効化設定

    ```text
    [user01@cent8 ~]$ sudo vi /etc/sysctl.d/ipv6.conf
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1
    [user01@cent8 ~]$ sudo sysctl --load /etc/sysctl.d/ipv6.conf
    ```

1. NetworkManager でのIPv6無効化設定
NetworkManagerを利用している場合 OSを再起動したり コマンドでnicの再起動を行うと、IPv6が有効化されてしまいます。
この動作を回避するため、NetworkManagerでIPv6を無効に設定します。コマンド例では8.1以降用のdisabled を指定しています。
CentOS7から8.0までの場合、ignoreを指定してください。
また、enp0s3 の部分は自サーバのNIC名に置き換えてください。


    ```text
    [user01@cent8 ~]$ nmcli connection show enp0s3 |grep ipv6.method
    ipv6.method:                            auto
    [user01@cent8 ~]$ sudo nmcli connection modify enp0s3 ipv6.method "disabled"
    [user01@cent8 ~]$ nmcli connection show enp0s3 |grep ipv6.method
    ipv6.method:                            disabled
    [user01@cent8 ~]$ 
    ```

### 方法2：Kernel Boot Option での無効化

1. GRUB_CMDLINE_LINUX 行の末尾に "ipv6.disable=1" を追記してください。

    ```text
    [user01@cent8 ~]$ sudo vi /etc/default/grub 
    GRUB_TIMEOUT=5
    GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
    GRUB_DEFAULT=saved
    GRUB_DISABLE_SUBMENU=true
    GRUB_TERMINAL_OUTPUT="console"
    GRUB_CMDLINE_LINUX="resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet ipv6.disable=1"
    GRUB_DISABLE_RECOVERY="true"
    GRUB_ENABLE_BLSCFG=true
    [user01@cent8 ~]$ 
    ```

1. Grub設定を反映
ls で確認したリンク先を指定して grub2-mkconfig を実行してください。
リンク先が2カ所あった場合 grub2-mkconfig も二回実行してください。

    ```text
    [user01@cent8 ~]$ ls -lh /etc/grub*.cfg
    lrwxrwxrwx. 1 root root 22 10月  3 02:01 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
    [user01@cent8 ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    Generating grub configuration file ...
    done
    [user01@cent8 ~]$ 
    ```

### 共通設定

sysctl/kernel boot option のどちらでIPv6を停止した場合でも共通で行う設定です。

1. /etc/hosts から IPv6 エントリを削除
IPv6 のエントリを削除するかコメントアウトしましょう。

    ```text
    [user01@cent8 ~]$ cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ##::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    [user01@cent8 ~]$ 
    ```

1. /etc/netconfig から IPv6 エントリを削除
エラーメッセージの抑止です。
udp6/tcp6 の行削除するかコメントアウトしましょう。

    ```text
    [user01@cent8 ~]$ sudo vi /etc/netconfig 
    #
    # The network configuration file. This file is currently only used in
    # conjunction with the TI-RPC code in the libtirpc library.
    #
    # Entries consist of:
    #
    #       <network_id> <semantics> <flags> <protofamily> <protoname> \
    #               <device> <nametoaddr_libs>
    #
    # The <device> and <nametoaddr_libs> fields are always empty in this
    # implementation.
    #
    udp        tpi_clts      v     inet     udp     -       -
    tcp        tpi_cots_ord  v     inet     tcp     -       -
    ##udp6       tpi_clts      v     inet6    udp     -       -
    ##tcp6       tpi_cots_ord  v     inet6    tcp     -       -
    rawip      tpi_raw       -     inet      -      -       -
    local      tpi_cots_ord  -     loopback  -      -       -
    unix       tpi_cots_ord  -     loopback  -      -       -
    [user01@cent8 ~]$ 
    ```



## 参考

* [CentOS 8.0.1905 documentation](https://docs.centos.org/en-US/8-docs/)
* 画面の見切れを解消する方法は、他に仮想マシンのグラフィックコントローラを VBoxSVGA に設定する方法もあります。