ESXi 6.0u3から7.0u1にしようとした
めちゃくちゃ苦労した。
経験をそのまま書いていくので読みにくいが許して。
結局最後は6.5u3になってしまった。
そこに行き着くまでの奮闘記。
環境
- サーバー本体:
Express5800/R120a-1
- CPU:
Xeon E5520-2.26GHz x2
- Mem:
120GB
目次
- 前提
- 6.5u3へ(失敗)
- 6.7u3へ(失敗)
- OfflineBundleで6.5u3へ(成功)
- OBで7.0bへ(失敗)
- OBで7.0u1へ(失敗)
- めんどくさいのでISOから7.0bをクリーンインストールしてみる(失敗)
- まだ解決策はある(失敗)
- OBで6.7u3へ(成功)
- 最新のパッチを当てる(失敗)
- CDから6.5u2へ(成功)
- もうこれでいくしかない
- おわり
前提
まず前提として、アップグレード可能かどうかである。
ここを参照することにより、どのバージョンがどのバージョンへアップグレード可能かがわかる。
ESXi 6.0u3の場合、6.5u1~6.7u3までにアップグレード可能だ。
なので7.0u1にするためにはそこを一度経由する必要がある。
クリーンインストールするなら別だが、アップグレードしていくほうが楽だと思ったのでそうすることにした。
それとなにがあってもいいように構成情報のバックアップをすべし。
色々なESXiのバージョンを試した話を参照。
6.5u3へ(失敗)
3回もこのエラーでインストールできず死んでる pic.twitter.com/aytyycECfL
— yui (@sugtao4423) October 23, 2020
だめみたいですね
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へ(成功)
OfflineBundle使って無事ESXi 6.5u3にはできました pic.twitter.com/dElwJcAJ73
— yui (@sugtao4423) October 23, 2020
これは無事に6.5u3になってくれた。
なのでこのままOBで7.0bにしていく(7.0u1の存在を忘れていた)
OBで7.0bへ(失敗)
ESXi 7.0bにアップグレードできたと思ったらNo compatible network adapter found.ですよ… pic.twitter.com/9ea1uOTpZu
— yui (@sugtao4423) October 23, 2020
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 7.0bのインストーラー起動したけどNo Network Adaptersって怒られたわ… pic.twitter.com/mZTQ1Tc8c9
— yui (@sugtao4423) October 23, 2020
チーーーーーーーーン
まだ解決策はある(失敗)
ESXiのカスタムISOを作る。
NICのドライバがないってことがわかっているので、それが入ったISOを焼けばいい。
esxi no network adapters
とかでググれば日本語のブログなどもだいぶ出てくるので詳しくは書かないが手順はこう
- ESXi-Customizer-PSのダウンロード
- NICドライバのダウンロード
- ESXi-Customizer-PSとNICドライバの2つが入っただけのフォルダを作成
- PowerShellを管理者で起動、
Set-ExecutionPolicy Unrestricted
で信頼されてないスクリプトを許可 Install-Module -Name VMware.PowerCLI
- 上で作ったフォルダに
cd
.\ESXi-Customizer-PS-v2.6.0.ps1 -v70 -vft -pkgDir {そのフォルダのフルパス} -izip \PATH\TO\VMware-ESXi-7.0b-16324942-depot.zip
Set-ExecutionPolicy Restricted
で信頼されてないスクリプトを拒否
ただ、注意点としてこの記事の執筆時は-v70
オプションに対応していなかった。
なのでPS1スクリプトに少し手を入れた。
v67など対応しているバージョン表記の実装を読めばどう追加すればいいのかわかると思うので割愛。
これでNICドライバが入ったISOが出来上がるので焼く。
VMware-ESXi-7.0b-16324942-depot.zip
とVMware-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時間の苦労が報われてよかった。
ということでね。結局ESXi 6.5u3の最新パッチ(Build 16901156)になりましたとさ pic.twitter.com/CQvqRWg3Oa
— yui (@sugtao4423) October 24, 2020