4 min read

ESXi 6.0u3から7.0u1にしようとした

めちゃくちゃ苦労した。

経験をそのまま書いていくので読みにくいが許して。

結局最後は6.5u3になってしまった。
そこに行き着くまでの奮闘記。

環境

  • サーバー本体: Express5800/R120a-1
  • CPU: Xeon E5520-2.26GHz x2
  • Mem: 120GB

目次

前提

まず前提として、アップグレード可能かどうかである。

ここを参照することにより、どのバージョンがどのバージョンへアップグレード可能かがわかる。

ESXi 6.0u3の場合、6.5u1~6.7u3までにアップグレード可能だ。
なので7.0u1にするためにはそこを一度経由する必要がある。
クリーンインストールするなら別だが、アップグレードしていくほうが楽だと思ったのでそうすることにした。

それとなにがあってもいいように構成情報のバックアップをすべし。
色々なESXiのバージョンを試した話を参照。

6.5u3へ(失敗)

だめみたいですね

Expecting 2 bootbanks, found 1.と怒られる。
これが3回もあったのでもうやめた。

6.7u3へ(失敗)

6.7ではCPUがUnsupportedなのでディスクからの起動時にShift+Oを押してallowLegacyCPU=trueを入力。
そしたらインストーラーが起動せずCD内のESXiがメモリ内から起動した。意味不明。インストーラーをよこせ。
あとでわかるのだが、インストーラーが起動しなかったのはcdromBoot runweaselを消してallowLegacyCPU=trueを書いてしまったから。続く形で書けば起動する。

意味わからんのでやめた。
というかディスクからの起動が遅すぎて嫌になった。

OfflineBundleで6.5u3へ(成功)

これは無事に6.5u3になってくれた。
なのでこのままOBで7.0bにしていく(7.0u1の存在を忘れていた)

OBで7.0bへ(失敗)

7.0bにはなったがNo compatible network adapter found.というエラーが。
NICが認識されていない。

悩みに悩んでとりあえず再起動したらなぜか6.5u3に戻った。なぜ?
7.0b固有のバグかなと思い、そこで思い出した7.0u1にOBでアップグレードしてみる

OBで7.0u1へ(失敗)

7.0bとなにも変わらない。7.0u1にはなるが再起動すると6.5u3に戻る。

めんどくさいのでISOから7.0bをクリーンインストールしてみる(失敗)

7.0u1はISOがないので7.0bを焼いてクリーンインストールする。

ここで上記のcdromBoot runweaselが発覚。
Shift+OしてcdromBoot runweasel allowLegacyCPU=trueといれよう。

チーーーーーーーーン

まだ解決策はある(失敗)

ESXiのカスタムISOを作る。
NICのドライバがないってことがわかっているので、それが入ったISOを焼けばいい。

esxi no network adaptersとかでググれば日本語のブログなどもだいぶ出てくるので詳しくは書かないが手順はこう

  1. ESXi-Customizer-PSのダウンロード
  2. NICドライバのダウンロード
  3. ESXi-Customizer-PSとNICドライバの2つが入っただけのフォルダを作成
  4. PowerShellを管理者で起動、Set-ExecutionPolicy Unrestrictedで信頼されてないスクリプトを許可
  5. Install-Module -Name VMware.PowerCLI
  6. 上で作ったフォルダにcd
  7. .\ESXi-Customizer-PS-v2.6.0.ps1 -v70 -vft -pkgDir {そのフォルダのフルパス} -izip \PATH\TO\VMware-ESXi-7.0b-16324942-depot.zip
  8. Set-ExecutionPolicy Restrictedで信頼されてないスクリプトを拒否

ただ、注意点としてこの記事の執筆時は-v70オプションに対応していなかった。
なのでPS1スクリプトに少し手を入れた。
v67など対応しているバージョン表記の実装を読めばどう追加すればいいのかわかると思うので割愛。

これでNICドライバが入ったISOが出来上がるので焼く。

VMware-ESXi-7.0b-16324942-depot.zipVMware-ESXi-7.0U1-16850804-depot.zipの2つを元にISOを作成しインストールしようと試みたがドライバをちゃんと認識してくれずNo Network Adapters

PS1のログをよく見ると、NICドライバを追加する時に依存関係で失敗していた。
com.vmware.driverAPI-9.2.2.0 vmkapi_2_2_0_0の2つが存在しないため追加できていなかった模様。
これらはESXi 7.0から廃止されたらしい。
vibを探してもないようなので(あったとしてもそれらの依存関係でまた死にそう)もうESXi 6.7u3にすることにした。

OBで6.7u3へ(成功)

現状の確認。今は6.5u3である。

データストアにDLした6.7u3のOBを転送。
SSHからesxcli software sources profile list -d /vmfs/volumes/datastore1/ISO/ESXi670-201912001.zipしてプロファイルを確認。
esxcli software profile update -d /vmfs/volumes/datastore1/ISO/ESXi670-201912001.zip -p ESXi-6.7.0-20191204001-standardでアップグレード。

すぐに再起動させず、allowLegacyCPU=trueが永続化するようにコンフィグを書き換える。

vi /bootbank/boot.cfg
vi /altbootbank/boot.cfg
# どちらも kernelopt に allowLegacyCPU=true を追記

最新のパッチを当てる(失敗)

最新のパッチ当てるんだから上のESXi670201912001.zipを入れる必要なかったかも。

https://my.vmware.com/ja/group/vmware/patch#search
ここからDLして上と同じようにアップグレードする。

が、ESXi670-202010001.zipを入れようとしたら

[root@localhost:~] esxcli software profile update -d /vmfs/volumes/datastore1/ESXi670-202010001.zip -p ESXi-6.7.0-20201004001-standard
 [HardwareError]
 Hardware precheck of profile ESXi-6.7.0-20201004001-standard failed with errors: <CPU_SUPPORT ERROR: The CPU in this host is not supported by ESXi 6.7.0. Please refer to the VMware Compatibility Guide (VCG) for the list of supported CPUs.>
 Please refer to the log file for more details.

ここでもまたCPUが・・・
最新のパッチが当たらないのでは意味がないので6.5u3で最新のパッチが当たるか試してみることに。

CDから6.5u2へ(成功)

ダウングレードはできない仕様になっているためクリーンインストールをする。
なお6.5u3はISO配布がないのでu2

クリーンインストールは問題なく通った。
そして最新のパッチであるESXi650-202010001.zipも無事に適用することができた。

パッチを適用したことで6.5u3にアップグレードされ、セキュリティも最新のものになった。

もうこれでいくしかない

構成情報をリストアして完成。もう疲れすぎた・・・

PCIデバイスをパススルーしてる場合、VMの編集ボタンを押すとjsがクラッシュする問題がある。
VM mit Passtrough-Device kann nicht mehr bearbeitet werden
ここを見て解決。
一応書いておくとesx-uiのバージョンを下げるだけ。
再起動は不要。一応ブラウザのキャッシュは消しておく。

esxcli software vib remove -n esx-ui
esxcli software vib install -v https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/esx/vmw/vib20/esx-ui/VMware_bootbank_esx-ui_1.33.7-15803439.vib

おわり

やはりサポートが切られたCPUで運用していくのは無理だということがよくわかった。
もう二度とこんな苦労したくない・・・

午前2時前から始めて12時までかかってしまった・・・
でも最新のパッチを当てることができて大満足。

10時間の苦労が報われてよかった。