ESXi

ESXi 古いCPUで無理矢理7.0U2aを動かして仮想マシンを作るときのメモ

ふと思い立ってESXiのアップグレード方法を丹念に調べて6.5を7.0U2aにした。Web UIは前よりキビキビと動いているようだし、おかしかった監視データーもちゃんと見えるようになってとても快適。

だけど…



広告


仮想マシンのBIOSが非常に遅く、起動すれば通常通り動くのだけれども、ちょっと待てるレベルではない。
解決方法を探そうと、キーワードを色々と入れて検索してみたけれど、そんな事例を見つけることができず、修正ができていない。

また、Ubuntuを動かしているとsyslogに failed to get udev uid: Invalid argument が大量に出力される。

これらの問題を回避するための設定を幾つか追加しておく必要がある。
仮想マシンを作るたびに毎回やることなので、ここにまとめてメモしておく。

環境

そもそもが、ESXi 7.0U2aを動かすのに無理があるマシン構成。

型番Gateway DX4840
ESXi7.0U2a
CPUIntel core i5 750 (Lynnfield)本来、ESXi 6.5までが動作範囲
Memory20GB (2GBx2+8GBx2)
LANRealtek RTL8111 + Intel 82574LRTL8111はドライバがないので動かない

仮想マシン作成のたびに行う設定

仮想マシン作成のたびに以下の設定を行って、トラブルを回避する。

ファームウェア

ファームウェアはEFIに設定する。

うちで起動するのはUbuntuなので、セキュアブートも可能と思われるが、設定はしなくてもよい。

設定パラメータ

仮想マシンオプションの詳細にある設定パラメーターに以下の2つを追加する。

キー目的
monitor.allowLegacyCPUTRUEVMX Unrestricted Guestがないというエラーを回避
disk.EnableUUIDTRUE

設定変更したら、仮想マシンを一度シャットダウンし、改めて起動する必要がある。

参考画像は使い回し。必要な項目が追加される可能性があるので、設定イメージとして。

仮想マシンの動き

実際にUbuntu 20.04 serverをインストールして様子を見てみた。
インストールCDをセットしておくと、スルスルッと素早く起動してくれる。

インストール時のパーティション

EFIになっているので、ESPのパーティションが必要になる。
インストールをデフォルトで進めていくと、以下のようになった。

FILE SYSTEM SUMMARY

  MOUNT POINT     SIZE    TYPE       DEVICE TYPE
[ /              14.496G  new ext4   new LVM logical volume      > ]
[ /boot           1.000G  new ext4   new partition of local disk > ]
[ /boot/efi     512.000M  new fat32  new partition of local disk > ]

…

USED DEVICES

  DEVICE                                                       TYPE                 SIZE
[ ubuntu-vg (new)
  ubuntu-lv    new, to be formatted as ext4, mounted at /      LVM volume group    14.496G > ]

[ /dev/sda                                                     local disk          16.000G > ]
  partition 1  new, primary ESP, to be formatted as fat32, mounted at /boot/efi   512.000M >
  partition 2  new, to be formatted as ext4, mounted at /boot                       1.000G >
  partition 3  new, PV of LVM volume group ubuntu-vg                               14.498G >

ESPは1つめのパーティションに作られて、512MBの容量が取られるらしい。
過去に示されていたubuntuの記事では200MBが推奨されていたような気がするが、時代?で増えているのかもしれないな。

また、デフォルトではLVMが標準で選択されていた。
このために/bootには別に1GBのマウントポイントが作られ、OSで自由に使える領域になるようだ。

これはこれで良いのだけれども、用途が決まっていて容量拡張が必要ないなら、LVMじゃなくても良いのかなと思ったりする。

FILE SYSTEM SUMMARY

  MOUNT POINT     SIZE    TYPE       DEVICE TYPE
[ /              15.496G  new ext4   new partition of local disk > ]
[ /boot/efi     512.000M  new fat32  new partition of local disk > ]

…

USED DEVICES

  DEVICE                                                       TYPE                 SIZE
[ /dev/sda                                                     local disk          16.000G > ]
  partition 1  new, primary ESP, to be formatted as fat32, mounted at /boot/efi   512.000M >
  partition 2  new, to be formatted at ext4, mounted at /                          15.498G >

すっきりしているように思う。

仮想コンソール

BIOSと比較すると仮想コンソールが広くなって、仮想コンソールからCUIでログインした時などは情報量が多くて良いのではないだろうか。

起動後のログ確認

ここに上げている以外にもチラチラなんか出てるんだけど、気にしなくて良いのとか、問題ないのばっかりだと思われる。

failed to load module mdraid

これを解決するためにライブラリをインストールする手があるみたいだけど、mdraidって必要なんだろうか?
launchpad ubuntu / libbd_mdraid.so.2: cannot open shared object file

Aug 21 05:16:49 r1router udisksd[731]: failed to load module mdraid: libbd_mdraid.so.2: cannot open shared object file: No such file or directory
Aug 21 05:16:49 r1router udisksd[731]: Failed to load the 'mdraid' libblockdev plugin

ファイルを探す方法は…

$ sudo apt install apt-file
$ sudo apt-file update
$ apt-file search libbd_mdraid.so.2
libblockdev-mdraid2: /usr/lib/x86_64-linux-gnu/libbd_mdraid.so.2
libblockdev-mdraid2: /usr/lib/x86_64-linux-gnu/libbd_mdraid.so.2.0.0

パッケージをインストールすると一緒に入ってきそうなものを調べると…
Qiita / aptの依存関係を知りたいそんなときに

$ apt-cache depends libblockdev-mdraid2
libblockdev-mdraid2
  Depends: libblockdev-utils2
  Depends: libbytesize1
  Depends: libc6
  Depends: libglib2.0-0
  Depends: mdadm

とりあえず、インストールしてみるか。

$ sudo apt install libblockdev-mdraid2

エラーログは出なくなった。インストールが必要なのかどうかは分からない。

GRUB failed boot detection

vimで表示してみると問題っぽく見えているけれども、問題なし。

Aug 21 05:04:19 r1router systemd[1]: Starting GRUB failed boot detection...
Aug 21 05:04:19 r1router systemd[1]: grub-initrd-fallback.service: Succeeded.
Aug 21 05:04:19 r1router systemd[1]: Finished GRUB failed boot detection.

ユニットファイルの中身を見てみると…

$ systemctl cat grub-initrd-fallback.service
# /lib/systemd/system/grub-initrd-fallback.service
[Unit]
Description=GRUB failed boot detection
After=local-fs.target
…

ということで、単にサービスの名前がこれなんだなと。

さいごに

完全に自分用メモ。

こんな環境の人は多分いないだろうし、

コメントはこちらから お気軽にどうぞ ~ 投稿に関するご意見・感想・他