ローカル環境で使う CentOS8 on Hyper-V のインストールについての備忘録です.
CentOS7 on Hyper-V の場合の同様の記録は

を,CentOS Stream についてのものは,


2019年9月24日にリリースとなった CentOS8 について,方針はとりあえず必要最低限のみ使えれば良い状態にすること.大したことに使うわけではないので,仮想マシンは次の通り設定します.また,Hyper-V 仮想マシンの構成バージョンは 9.0 です.
| 項目 | 値 | 備考 |
| 世代 | 2 | 起動時にいくつかエラーが出るが,いつものことなので気にしない.ただし,セキュアブートは無効にしないと起動してこない. |
| CPU | 2 | 後で変えられるのでとりあえず. |
| 起動メモリ | 1024MB | グラフィカルなインストーラーが起動すれば良し.512Mでは動的メモリ有効でも Kernel Panic で起動してこないことに注意 |
| 動的メモリ | 使用 | 後で変えられるのでとりあえず. |
| ネットワーク | 使用 | Virtual Switch に接続する. |
| 仮想HDD | 128GB | 容量可変なのでまあこれは超えないだろうという容量を選択する.作っただけだと実消費は4MB. |
CentOS7 のインストールイメージは,
CentOS-8-x86_64-1905-dvd1.iso(約6.6GB)
を選択(CentOS-8-x86_64-1905-boot.iso はインストール中のリポジトリの自動選択に失敗してインストールできなかったため.原因は不明).ミラーサイト一覧は以下の通り.
http://isoredirect.centos.org/centos/8/isos/x86_64/CentOS-8-x86_64-1905-dvd1.iso
インストール時の選択は以下の通り.
| 項目 | 値 | 備考 |
| ブート時の選択 | Install CentOS Linux 8.0.1905 | Test this media & install CentOS Linux 8.0.1905 がデフォルトになっていることに注意 |
| 使用言語 | 日本語 | インストール時使用言語. |
| 時刻と日付 | アジア/東京 | キーボードと言語サポートは「日本語」が自動選択されるが,時刻と日付はそうではないことに注意 |
| ソフトウェアの選択 | 最小限のインストール | 標準は「サーバー(GUI 使用)」となっていることに注意 |
| ネットワークとホスト名 | 固定 | クライアント用途ではないので固定.V6は自動.セットアップ時にネットワークを「オン」にしないとリポジトリの取得等ができずエラーになることに注意.ただし,なぜか今回はこの部分を正しく設定してもリポジトリの取得のところでエラーが発生した. |
| KDUMP | 無効 | カーネルパニックの際にダンプを保存するための仕掛け.個人で解析することはないので無効. |
| SECURITY POLICY | 不明 | コンテンツを指定しないといけないようだが,どのように指定すべきなのか不明なので,空白のままにした. |
| インストール先 | 自動構成 | 特になし. |
| ユーザーの追加 | ***** | 管理者として root 以外のユーザーを追加する. |
インストール後の作業は次の通り.まず,wheel group に su を限定.
# vi /etc/pam.d/su # Uncomment the following line to require a user to be in the "wheel" group. auth required pam_wheel.so use_uid
ローカルで使うものなので,SELinux は無効化.
# getenforce Enforcing # vi /etc/selinux/config SELINUX=disabled # getenforce # 再起動のあと Disabled
ホストネームの設定.
# hostnamectl set-hostname *****.******.*******
ネットワークの確認.
# nmcli d
デバイス タイプ 状態 接続
eth0 ethernet 接続済み eth0
lo loopback 管理無し --
# nmcli d show eth0
GENERAL.デバイス: eth0
GENERAL.タイプ: ethernet
GENERAL.ハードウェアアドレス: **:**:**:**:**:**
GENERAL.MTU: 1500
GENERAL.状態: 100 (接続済み)
GENERAL.接続: eth0
GENERAL.CON パス: /org/freedesktop/NetworkManager/ActiveConnection/0
WIRED-PROPERTIES.キャリア: オン
IP4.アドレス[1]: 192.168.***.***/**
IP4.ゲートウェイ: 192.168.***.***
IP4.DNS[1]: 192.168.***.***
IP6.アドレス[1]: fe80::****:****:****:****/**
IP6.ゲートウェイ:
# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether************ brd ff:ff:ff:ff:ff:ff
inet ***************** brd ****************** scope global eth0
valid_lft forever preferred_lft forever
inet6 ********************** scope link
valid_lft forever preferred_lft forever
起動時に有効なサービスの確認.CentOS7 までは SysV で起動するサービスが残ってましたが,CentOS8 だと完全に無くなっています.ただし,メッセージを見る限りですが,使えなくなったと言う訳ではなさそう.
# systemctl list-unit-files -t service | grep enabled auditd.service enabled [email protected] enabled crond.service enabled dbus-org.fedoraproject.FirewallD1.service enabled dbus-org.freedesktop.NetworkManager.service enabled dbus-org.freedesktop.nm-dispatcher.service enabled firewalld.service enabled [email protected] enabled import-state.service enabled irqbalance.service enabled kdump.service enabled loadmodules.service enabled lvm2-monitor.service enabled microcode.service enabled NetworkManager-dispatcher.service enabled NetworkManager-wait-online.service enabled NetworkManager.service enabled nis-domainname.service enabled rngd.service enabled rsyslog.service enabled selinux-autorelabel-mark.service enabled sshd.service enabled sssd.service enabled syslog.service enabled tuned.service enabled # chkconfig --list # chkconfig --list 注記: この出力に含まれるのは SysV サービスのみです。ネイティブな systemd サービスは含まれません。SysV の設定データはネイティブな systemd 設定で上書きされる場合があります。 systemd サービスを一覧表示する場合は 'systemctl list-unit-files' を使用します。 特定のターゲットで有効になっているサービスを確認する場合は 'systemctl list-dependencies [target]'を使用します。
システムを最新とし,hyper-v 対応を行い,古い kernel を削除し,自動更新を設定します.注意すべきところは以下の通り.
- CentOS8 になって大きく変わったところとして,標準のパッケージングマネージャーが yum から dnf に変わってますが基本的な使い方は全く同じで良さそう.
- CentOS8 出たばっかりだけど,かなり大量のパッケージがアップデートされま
- hypervkvpd は標準でインストールされているようです.
- package-cleanup は廃止の方向で,カーネルの削除等は全て dnf で行うになっているようです
$ sudo dnf -y remove $(dnf repoquery --installonly --latest-limit=-1)
- 自動更新は yum-cron ではなくて dnf-automatic を使えば良さそうです(参考: https://fedoraproject.org/wiki/AutoUpdates#Fedora_22_or_later_versions).
- 自動更新は dnf-automatic.timer が起動されて1時間後から1日毎にかかるっぽい(参考:cat /etc/systemd/system/multi-user.target.wants/dnf-automatic.timer).
# dnf -y update
CentOS-8 - AppStream 247 kB/s | 5.6 MB 00:23
CentOS-8 - Base 1.4 MB/s | 5.3 MB 00:03
CentOS-8 - Extras 1.3 kB/s | 2.1 kB 00:01
依存関係が解決しました。
================================================================================
パッケージ アーキテクチャー
バージョン リポジトリ
サイズ
================================================================================
Installing:
kernel x86_64 4.18.0-80.7.1.el8_0 BaseOS 415 k
kernel-core x86_64 4.18.0-80.7.1.el8_0 BaseOS 24 M
kernel-modules x86_64 4.18.0-80.7.1.el8_0 BaseOS 20 M
Upgrading:
bind-export-libs x86_64 32:9.11.4-17.P2.el8_0.1 BaseOS 1.1 M
iptables x86_64 1.8.2-9.el8_0.1 BaseOS 582 k
iptables-ebtables x86_64 1.8.2-9.el8_0.1 BaseOS 67 k
iptables-libs x86_64 1.8.2-9.el8_0.1 BaseOS 97 k
kernel-tools x86_64 4.18.0-80.7.1.el8_0 BaseOS 565 k
kernel-tools-libs x86_64 4.18.0-80.7.1.el8_0 BaseOS 424 k
kmod x86_64 25-11.el8_0.2 BaseOS 127 k
kmod-libs x86_64 25-11.el8_0.2 BaseOS 69 k
libdnf x86_64 0.22.5-5.el8_0 BaseOS 574 k
libnfsidmap x86_64 1:2.3.3-14.el8_0 BaseOS 121 k
libsss_autofs x86_64 2.0.0-43.el8_0.3 BaseOS 98 k
libsss_certmap x86_64 2.0.0-43.el8_0.3 BaseOS 123 k
libsss_idmap x86_64 2.0.0-43.el8_0.3 BaseOS 101 k
libsss_nss_idmap x86_64 2.0.0-43.el8_0.3 BaseOS 107 k
libsss_sudo x86_64 2.0.0-43.el8_0.3 BaseOS 96 k
microcode_ctl x86_64 4:20180807a-2.20190618.1.el8_0 BaseOS 2.0 M
p11-kit x86_64 0.23.14-5.el8_0 BaseOS 272 k
p11-kit-trust x86_64 0.23.14-5.el8_0 BaseOS 139 k
platform-python x86_64 3.6.8-2.el8_0.0.1 BaseOS 79 k
python3-hawkey x86_64 0.22.5-5.el8_0 BaseOS 86 k
python3-libdnf x86_64 0.22.5-5.el8_0 BaseOS 618 k
python3-libs x86_64 3.6.8-2.el8_0.0.1 BaseOS 7.9 M
python3-perf x86_64 4.18.0-80.7.1.el8_0 BaseOS 522 k
selinux-policy noarch 3.14.1-61.el8_0.1 BaseOS 591 k
selinux-policy-targeted noarch 3.14.1-61.el8_0.1 BaseOS 15 M
setup noarch 2.12.2-2.el8 BaseOS 180 k
sssd-client x86_64 2.0.0-43.el8_0.3 BaseOS 159 k
sssd-common x86_64 2.0.0-43.el8_0.3 BaseOS 1.4 M
sssd-kcm x86_64 2.0.0-43.el8_0.3 BaseOS 207 k
sssd-nfs-idmap x86_64 2.0.0-43.el8_0.3 BaseOS 94 k
systemd x86_64 239-13.el8_0.5 BaseOS 3.4 M
systemd-libs x86_64 239-13.el8_0.5 BaseOS 551 k
systemd-pam x86_64 239-13.el8_0.5 BaseOS 222 k
systemd-udev x86_64 239-13.el8_0.5 BaseOS 1.3 M
トランザクションの概要
================================================================================
インストール 3 パッケージ
アップグレード 34 パッケージ
.....
# dnf -y install hypervkvpd
メタデータの期限切れの最終確認: 0:02:36 時間前の 2019年09月29日 12時42分50秒 に実施しました。
Package hypervkvpd-0-0.27.20180415git.el8.x86_64 is already installed.
依存関係が解決しました。
行うべきことはありません。
完了しました!
# reboot
# dns list installed kernel
kernel.x86_64 4.18.0-80.el8 @anaconda
kernel.x86_64 4.18.0-80.7.1.el8_0 @BaseOS
# dnf remove kernel-core-4.18.0-80.el8
# dnf install dnf-automatic
# vi /etc/dnf/automatic.conf
....
apply_updates = yes
....
# systemctl enable --now dnf-automatic.timer
# systemctl start dnf-automatic.timer
ここまで設定して,vhdx ファイルの容量は 2.25GB.とりあえず,ここまで.
