Linux
VirtualBox
トラブルシューティング
centos7
VMware_ESXi

VirtualBox用のOVAファイルをESXi 6.5 で使うためにしたアレコレ

仕事で個人のデスクトップで動かしていた環境を社内サーバーに移す必要がでてきたため、
VirtualBox用のOVAファイルをESXi 6.5 で利用できるようにした。
既に上がっていた記事の情報を元に行ったが、手元の環境ではそれだけではうまく動作しなかったため追加の対応を色々したので纏めておく。Linux についてあまり詳しくないので手順の中で間違っているものや不要なものもあるかもしれないので気づいた方はおしえていただければ幸いです。

環境

  • ローカル環境
    • ホストOS: Windows 10 ​
    • ゲストOS: CentOS 7
    • VirtualBox:5.1系
    • VMwareのOVF Tool
    • MicrosoftのFCIV
  • 社内サーバー
    • VMware ESXi 6.5

VirtualBox→ESXi6.5

参考欄のリンク記事の詳細手順通りに実施したため概要だけ

  1. VirtualBoxから仮想マシンのOVAファイルをエクスポート
  2. VMware OVF Toolで OVAからOVFとVMDKを分離
  3. OVFファイルをテキストエディタで開きvirutualbox用の記述を修正して保存
  4. MicrosoftのFCIVでOVFファイルのSHA-1を確認
  5. mfファイルを開きSHA-1を4で確認した値に変更
  6. vSphere Client からOVFファイルを指定してデプロイ

何が起きたか

仮想マシンを起動したところ、起動時のプログレスバーが100%になるも起動できなかった。
レスキューモードであれば起動できた。

何をしたか

実施した対応を時系列で記述しておく。

1. 【解消せず】似た事象を探して同じ対応を行った

エラーメッセージなどでググって似ている事象と思われる記事を参考にして、起動失敗しているサービスを調査。network.serviceとrngd.serviceの起動失敗について対応した。しかし起動失敗は解消しなかった

network.service

# systemctl list-unit-files | grep Network
リストが出力される
dbus-org.freedesktop.NetworkManager.service enabled
NetworkManager-dispatcher.service           enabled
NetworkManager-wait-online.service          disabled
NetworkManager.service                      enabled 

disabled になっているものがあれば自動起動を有効にする
# systemctl enable NetworkManager-wait-online.service
ln -s '/usr/lib/systemd/system/NetworkManager-wait-online.service' '/etc/systemd/system/multi-user.target.wants/NetworkManager-wait-online.service'

確認
# systemctl list-unit-files | grep Network

networkを再起動
# systemctl restart network

rngd.service

# systemctl stop rngd.service
# systemctl disable rngd.service
systemdをリロード
# systemctl daemon-reload

2. 【解消せず】VirtualBox用のファイルや設定の削除

不要なファイルや設定が悪さをしているのかと思い、VirtualBox用のファイルや設定を削除したが特に効果は無かった。
- Guest Additonをアンインストール $ /opt/VBoxGuestAdditions-<バージョン番号>/uninstall.sh
- ifcfg に不要なファイルがあったので削除
- 起動ディスクの指定をUUIDにしてみる

3. 【解決】 Host SMBus controller not enabled! への対応

よくわからなかったが次の2つが効果あった。

i2c_piix4 の停止

$ lsmod | grep i2c_piix4 # モジュールがロードされているか確認
$ sudo su
# echo blacklist i2c_piix4 >> /etc/modprobe.d/blacklist.conf

dracut コマンドで、initramfs を再作成

# cd /boot
# ls -1 vmlinuz*
vmlinuz-#{カーネルのバージョン}.PAE*
… #カーネルのリストが出る

# mv initramfs-${bootしたいカーネルのバージョン}.PAE.img,.old #バックアップ
# dracut initramfs-${bootしたいカーネルのバージョン}.PAE.img ${bootしたいカーネルのバージョン}.PAE
# ls -1 initramfs*
initramfs-${bootしたいカーネルのバージョン}.PAE.img
initramfs-${bootしたいカーネルのバージョン}.PAE.img.old

雑記

これまではトラブルシューティングを行った場合は参考リンクだけをメモしていたが、しばらくするとページが消るなど参照できなくて困ることが多かったため、今回はなるべく詳細に手順を記載してみた。
対応中に閲覧したリンクや対応内容を下書きにメモりながら進めていたので、対応内容を詳細にまとめることができた。
今後も何かトラブルシューティングを行うときは同様の方法で手順を残しておくことを習慣にしていきたい。
(Qiitaで下書き記事を書く以外に何か良いツールはあるんだろうか…スクリーンキャプチャの録画とか?)

参考