VMware : してログ

Windows10 が最新版にアップグレードできない問題を解消するために、ESXi をアップグレードすることにしました。下位バージョンの 5.5 で問題無いことと、NIC も外した最小構成でもダメだったことから、6.0u1 固有の問題が疑われました。

アップグレード手順

概ね下記の手順になります。アップグレードによって、ファイルシステムのサポートが終了したりするので、事前に調査しておきましょう。メジャーバージョン同士でもクライアントがウェブベースになったりしていますので、注意が必要です。

  1. ファイルをダウンロード
  2. ESXi からアクセスできるファイルシステムにコピー
  3. すべての仮想マシンを停止
  4. メンテナンスモードに切り替え
  5. アップグレード
  6. 再起動
  7. メンテナンスモード終了
  8. 停止した仮想マシンを起動

ダウンロード

my vmware から、製品名を "ESXi (Embedded and Installable)"、バージョンを選んでファイルを検索します。リストには、"update-from-esxi6.5-6.5_update02" など update の付いたものがあります。恐らく、update 付きのものはそこまでの更新ファイルをまとめたもの、付かないものは差分と思われますので、内容をよく確認して差分ファイルも必要か判断してください。

アップグレード

まずアップデートファイルの内容(プロファイル名)を確認します。今回のファイルは下記の内容でしたが、日付の違いと後ろの "s" はよく分からないのですが、"ESXi-6.5.0-20180502001-standard " を入れることにしました。

esxcli software sources profile list \
-d /vmfs/volumes/hdd/update-from-esxi6.5-6.5_update02.zip
Name                              Vendor        Acceptance Level
--------------------------------  ------------  ----------------
ESXi-6.5.0-20180501001s-standard  VMware, Inc.  PartnerSupported
ESXi-6.5.0-20180501001s-no-tools  VMware, Inc.  PartnerSupported
ESXi-6.5.0-20180502001-no-tools   VMware, Inc.  PartnerSupported
ESXi-6.5.0-20180502001-standard   VMware, Inc.  PartnerSupported

調べたプロファイル名を指定して、アップデートコマンドを発行します。ファイル変更を行わない "--dry-run" オプションもあるので、動作を確認する場合は指定してください。

esxcli software profile update \
-p ESXi-6.5.0-20180502001-standard \
-d /vmfs/volumes/hdd/update-from-esxi6.5-6.5_update02.zip

更新作業は一瞬で終わりますので、ホストを再起動して適用されたか確認をします。今回は懸念していた問題は何も無く、あっという間に最新版にアップグレードできてしまいました。

アップグレード結果

全ての仮想マシンを停止するので、今までアップグレードしてきませんでしたが、案外簡単に時間もかからずアップグレードできることが分かりました。しかし、いつもこんなうまく行くとは限りませんから、バックアップシステムがあると安心だなと思いました。iSCSI だとロードバランサみたいにバックアップシステムを使うことはできませんが、NFS ならそういった構成もありかなと思います。

さっそく Windows 10 のアップグレードを試したところ、ブルースクリーン&ロールバックは発生せず、問題なく April 2018 Update を適用することができました。結論としては「ESXi6.0u1 のホスト環境では Windows 10 1603 以降の仮想マシンは動作しない」ということでした。

追記:別環境5.5→6.7アップグレード

相変わらずサイトが分かりにくいので my vmware から、アップデートファイルのダウンロードページまでのパスをメモしておきます。5.5からアップグレードする場合、いったん6.0に上げてから6.7へと2段階で行います。

  1. my vmware にアクセス
  2. 右側の Quick Links から All downloads に行く
  3. 右側の Other Downloads から Download Patches に行く

メジャーバージョンを上げたためか、ライセンスキーの更新も必要なようでした。この取得先も分かりにくかったので同様にメモしておきます。

  1. my vmware にアクセス
  2. 右側の Quick Links から All downloads に行く
  3. 表示された All Products からVMware vSphere Hypervisor (ESXi) の View Download Components に行く
  4. 製品リストが表示されるので Download に行く
  5. License & Download にライセンスキーがある(執筆時点ではこのページ

タイトル通りなのですが、私の ESXi6.0u1 の環境では Windows10 が Windows Update や更新アシスタンスによるアップデート、インストールメディアから起動、いずれも "KMODE EXCEPTION NOT HANDLED" のブルースクリーンになりロールバックされてしまいます。そんな訳で Windows7 を使い続けて来たのですが、そろそろ Windows10 の環境も無いと困るので重い腰を上げて調査しています。最初に断っておきますが、まだ解決できておらず何の参考にもならない記事になります。

状況について整理

  • Windows 10 1511 からアップグレードすると、再起動時に "KMODE EXCEPTION NOT HANDLED" のブルースクリーンが表示されロールバック
  • Windows Update、更新アシスタンス、インストール CD、何れの方法でも失敗
  • 「PC を初期状態に戻す」を実行し、Windows 10 のみにしてもアップグレードに失敗
  • 非標準サポートの RTL8168 の NIC を使っていたので、デバイスマネージャで削除&仮想マシンのデバイスからも削除、この状態でも失敗
  • 仮想マシンのバージョンを8~11の間で変更してもダメ
  • 新しい仮想マシンで上記ひととおり確認してもダメ
  • BIOS、EFI、ハードディスクのタイプ、SCSIアダプタ、考えられる組み合わせすべてダメ
  • いっぽうハード構成が違う ESXi5.5 では最新の 1803 まで動作を確認
  • 6.0u1 固有の問題かも?と検索してみるが解決に繋がる情報は得られず(同様の症状の書き込みは見つかるが…)

ESXi のアップデートを検討

あまり面倒なことはしたくないので、今まではクリーンインストールしかしていませんでした。しかし、iSCSI や特殊デバイスをパススルーしていたり、あまりダウンさせたくない VM も動いているのでアップグレードを検討しています。手順はそれほど難しいものでは無さそうですが、いろいろと不安材料があります。

  • 手動で入れた NIC Realtek RTL8168 は消えないのか(そのまま動くのか)
  • 仮想マシンの設定はそのまま保持されるのか
  • 問題があった場合はどうやって戻すのか(または戻せないのか)

NIC についてはクリーンインストールでもバージョンによって入らなかったりするので、非常に不安です。そもそも Windows 10 1511 のときも突然ネットに繋がらなくなったりして、不安定だったので Windows7 を使っていた経緯があります。今回、真っ先に NIC を疑ったわけですが、デバイスを外してもダメなので無関係と思われ、その検証をする前は Intel の NIC を増設しようとしていました。

仮想マシンはすべて iSCSI に入っているので、最悪クリーンインストールしても消えることは無いはずですが、オペミスや再設定が不安(めったにやらない手順なので)です。また、特殊デバイスのパススルー設定もやりたくない作業ですので、アップグレードを選択します。

問題があった場合はたぶん戻せないので、そうなったらクリーンインストールやむなし、ということで。今回、互換性とWebベースの管理画面を避けたいという点を考慮して、6.0u3 へアップグレードしようと思っています。これが成功して Windows 10 1803 が動けば良し、ダメなら 6.5 へ更に上げ、それに失敗したらクリーンインストールということにします。Webベースになったのは 6.0u2 からでしたので、いっきに 6.5u2 にアップグレードすることにしました。

とりあえず作業手順を調査中

中途半端ですみません。作業したらまた記事にします。

NICは1個しか無いのだが…
NICは1個しか無いのだが…

VMware の仮想マシンで「入力されたIPアドレスは別のアダプタに既に割り当てられています」と表示され、ある固定IPが割り当てられない状態に陥ってしまいました。そのIPは以前使っていたのですが、VMware Server から ESXi へ仮想マシンを変換した際におかしくなったようです。状況的に考えて、前のバージョン VMware Tools のアダプタの設定が残っていて、表示されていないけど邪魔している感じがします。ちなみに「はい」で無視できそうですが、そううまく行きませんでした。

デバイスマネージャを弄っていると「非表示のデバイスの表示」という項目が見つかり、これで解決かと思いきやそうでも無かったみたいです。いくつか似たデバイス名が増えるのですが、それらは動作しているアダプタに関連したものらしいです。また、いったんアダプタを削除してみてもダメでした。

ネットで調べてみましたが「(非表示のデバイスの表示を)使用しても、その IP アドレスが割り当てられた以前の仮想 NIC(非実体化アダプタ)が常に表示されるとは限りません。」だそうで、解決には DevCon.exe というツールが必要になります。ただし現在、そのダウンロードリンクが切れており入手ができませんでした。新しめの Windows であれば、WDK というパッケージの中に入っています、がこれは古い Windows では動きません。しばらく探してみましたが、入手は叶いませんでした。

なお、完全な解決ではありませんが、今まで使っていたIPアドレスを欠番にして別のものを割り当てたり DHCP にすれば逃げれます。予防策としては、固定IPの仮想マシンを変換するときは一時的に DHCP に変更してから行い、変換後にもう一度固定IPを振りなおせば良さそうです。こうすれば、見えないアダプタは DHCP になるので、重複エラーが回避できると思われます。

追記

もう少し探してみたところ古い devcon.exe を発見しました。下記リンク先ページより、下の方にある「WDK 7.1.0 (Windows XP ドライバー用)」からダウンロードできます。Windows XP~7、Windows Server 2003~2008R2 に対応するバージョンになります。

インストールするのは「Microsoft Windows Driver Kit 7.1 > Full Development Environment > Tools」だけでよいです。32bit用の devcon.exe はインストール先の「.\Tools\devcon\i386」にあります。コマンドプロンプトで下記のように実行し、インストールされた非実体化ネットワークアダプタのデバイス名を見つけます。

devcon findall =net

動作しているアダプタは、GUI版デバイスマネージャの「プロパティ > 詳細」より確認できますので、これと違う側が非実体化アダプタということになります。デバイス名が分かったら、下記のように実行してこれを取り除きます。デバイス名はダブルクォーテーションで囲んで頭に「@」を付けてください。

devcon -r remove "@PCI\VEN_1022&DEV_2000&SUBSYS_20001022&REV_10\3&61AAA01&0&88"

これで以前のアダプタに振っていたIPが使えるようになったと思います。

こんな感じでなぜか起動しません
こんな感じでなぜか起動しません

新しい ESXi ホストを構築するのに 6.5 を入れてみました。管理クライアントがウェブベースのものになって使い勝手が良く、新しめの Windows マシンは問題なく動作しました。ただ、古い WindowsXP や Windows 2000 Server が起動すらしない現象が起こります。新規に仮想マシンを作ってみたり、VMのバージョンを落としてもダメです。また、旧 VMware 製品で動いていたインスタンスをコンバートしても同様でした。これ何なんだろう? ネットで当たっても中国語で質問してる人がいるくらいで、他に報告や回答は見つからないです。

「仮想マシン win2000sv のパワーオンに失敗しました。仮想マシンから切断されました。 詳細についてはここをクリックしてください。 」

  • 状態:失敗 - 仮想マシンから切断されました。
  • エラー:
    仮想マシンから切断されました。
    トランスポート接続 (9) を確立できませんでした: There is no VMware process running for config file ... win2000sv.vmx。
    リモートが切断されました

ちなみに古い Linux マシンは動作しました。今回は古い Windows を動作させる必要があるので、仕方なく 6.0 を採用したいと思います。あまり同様の情報が無いので、環境に依存した問題なのかも知れません。何かご存じの方はコメント欄にてご教授ください。

追記:バージョン下げて試験

6.0でも同じだった
6.0でも同じだった

結局 6.0 でもダメで 5.5 まで落としたら動作するようになりました。この症状ですがストレージの参照は普通にできますので、アクセスに問題があるようには思えません。また、仮想マシンの作成で Windows7 など選んだ場合は起こりません。問題は仮想マシンの設定ファイルにありそうなので、何が違うのか見比べてみようかと思います。

追記:調査結果

どうやらゲストOSの種類で“Windows 2000 Professional”/“Windows 2000 Server”を選択すると起動できないっぽい。起動しない“Windows XP”もアップデートしたもので元々の種類が 2000 Pro だったようです。試しに、“Windows 2000 Server”で新規作成し、設定編集でゲストOSを“Windows XP”に変更しただけで起動しました。他に問題無いか、もう少し調査してみます。

追記:結局のところ

新しく仮想マシンを作る場合は、“Windows XP 32bit”で作成して Windows 2000 をインストールすればいいと思います。既存の Windows 2000 仮想マシンを持ってくる場合は、設定ファイル(vmx)をテキストエディタで開いて無理やり変える、という対応で今のところうまく行っています。

guestOS = "win2000"

このようになっている部分を次のように変更します。何か不具合が起きるかも知れませんので、自己責任でお願いいたします。

guestOS = "winXPPro"

ちなみに、別ハードの 6.0 では Windows 2000 のゲストOS設定でも起動するので、何らかのハードウェア絡みの問題と思われます。

容量が足りなくなった仮想マシン(WindowsXPのシステムディスク)を拡張する方法をメモしておきます。再インストールすることなく、簡単に容量を拡張できるようです。

  • 拡張する仮想マシンは停止しておきます
  • ESXiのSSHを有効にして、適当なターミナルで接続します
  • システムディスク(vmdk)を調べておき、"vmkfstools -i winxp.vmdk -d thin winxp_ex.vmdk" のようなコマンドでコピーします
  • 仮想マシンの設定を開き、コピーしたディスクを追加します
  • コピーしたディスクの設定で容量を増やしておきます
  • 仮想マシンを起動し、ディスク管理で確認しておきます
  • コマンドプロンプトを開き、"diskpart" を実行します
  • "list volume" のコマンドで、追加してディスクの番号を確認します
  • "select volume 2" のコマンド(番号は確認しておいたもの)で操作するボリュームを選択します
  • "expand" コマンドで残り容量分を拡張します(即反映されるので注意)
  • "exit" で終了します
  • 仮想マシンをシャットダウンし停止させます
  • ESXiのSSHに戻り、今までのシステムディスクを削除します
  • 拡張したシステムディスクをコピーで戻します "vmkfstools -i winxp_ex.vmdk -d thin winxp.vmdk"
  • 仮想マシンを起動して、拡張されていれば完了です

VMware ESXi 5.5 の必要メモリは 4GB ですが、それぎりぎりのマシンだと、3.75GB などと認識されインストールできないようです。 余った Core2Duo のマシンに入れようと思いましたが、それ用の DDR2 メモリが 2GB のモジュールしか手に入らず、マザーボードのスロットが2つしか無くて詰んでしまいました。 仕様では 8GB まで搭載可能らしいのですが、4GB のモジュールは ECC Registerd しか無いようです。

他の方法ですが「VMware ESXi 5.xで4GBのメモリを入れているのにインストール出来ない」に、インストール時の判定を緩めて無理やりインストールする方法が紹介されていました。

複数の仮想マシンから、仮想ディスクを共有できるらしいので、実際に試してみた。 概ね下記のような手順で間違い無いと思うのだが、複数の仮想マシンで使用するとディスクが壊れる。

  • シックプロビジョニング(Eager zeroed)で仮想ディスクを作成する
  • ハードディスクを、新しい SCSI コントローラのもとに、独立型ー通常で追加する
  • 追加された SCSI コントローラを、SCSI デバイスの共有ー物理(あらゆるサーバー上の仮想マシンで共有)に変更する
再起動するとスキャンディスクが走る

同じように追加した仮想マシン(XP と Windows 10)間で、別のマシンで書き込んだファイルは F5 などを押しても表示されない。 再起動をすると、チェックディスクが走ってファイルが消えてしまうので、危なくて使っていられない。

同時に起動はできるみたいだが、この仮想ディスク共有の設定は封印したほうが良さそうである。

相変わらず、VMware のサイトって分かり難い。 最新版の VMware vSphere Client(ってか製品名自体が覚えにくいんだよな)をダウンロードしたい、といった要求をストレート満たしてくれる情報がありました。 日本語ページの情報は古いことが多いので、最初から英語ページを見るのが良いと最近気づきました。

https://kb.vmware.com/selfservice/search.do?cmd=displayKC&docType=kc&docTypeID=DT_KB_1_1&externalId=2089791

現時点での最新版をピックアップしておきます。

ゲスト OS のインストーラが起動しないどころか、BIOS の画面も出ない現象が起こっています。 起動させても、真っ暗なまま CD は反応して高速回転したりしますが、ブートメニューは疎か vmware のロゴすら表示されません。 BIOS から EFI に変更すると、最初の画面は出るもののインストーラは途中で止まってしまいます。 その他、設定をいくら弄っても改善せず、どんどん変な方向に嵌っていってしまいました。

仮想マシンのデバイス関係かと思いましたが、vShere Client のコンソールが画面を更新できていないだけでした。 どうも、ディスプレイモードが変わるときに更新ができなくなって真っ暗になるらしく、最初から発現すると BIOS 画面や vmware のロゴも表示されないという状況になるようです。 この状態になったら、コンソールを開きなおすことで再度表示されるようになるようです。

分かってしまえば、画面が真っ暗なまま、ただ気づかなかっただけでした。 インストールが済んでしまえば、リモートデスクトップで接続できるので問題無いですが、早くバージョンアップして直らないかな…。

ESXi サーバーを SSD 化するのに伴い、5.5u1 から 6.0u1 までアップグレードしようと作業していましたが、起動中にこの画面が表示されて停止してしまいます。 しかも同じ条件で起動に成功することもあるし、ただ再起動しただけで停止したりと、とにかく不安定な状況でした。 ひとつひとつ原因を探ってみましたが、現在のところ特定には至っていませんが、マザーボード(チップセット)か UEFI ファームウェアに原因がありそうです。

仕方が無いので 5.5 build 3343343(にしてもすげービルド番号だ)をインストールして様子を診ているところですが、こちらは今のところ問題ありません。

問題の発生する環境
  • マザーボード:ASRock Z87 Pro3/Pro3 C2(Z87 1150 DDR3 ATX)
  • CPU:Intel i7-4770K
現象の詳細
  • 起動中(またはセットアップ中)に突然、パープルスクリーンに切り替わり「checksum BAD」と表示され停止する
  • 停止するタイミングは決まったパターンが見られない
  • インストーラは、CD ブート、USB ブート問わず発生する
  • インストールできた場合でも、起動中に発生することがある(SSD、HDD、USB メモリを問わず)
  • 試行錯誤中、UEFI のブートドライブが表示されなくなることが何回かあった
  • 起動に成功した場合は、リモートから接続してゲスト OS を起動したりしても特に問題は無い
SATA 関係が怪しいが…

UEFI(最近ようやく“ウエファイ”って読むことにしたよ)で散々あれこれやってみても結局解決しない。 チェックサム不一致ということなので、HDD の読み書きが疑わしいのだが、SSD や USB メモリなど異なるデバイスでも起こるときは起こる。 終いには、CD でブートしている最中にも停止したのを見て、もしこれらのコントローラが原因なら BIOS アップデートかな、と。

次にメインメモリを疑う

とりあえず 8GB × 4 だったので、適当に1枚を選んで試す、全部試さなかったけど改善せず。 メモリ検査ツールを探したら、Memtest86+ というのが良いということで、2時間ぐらいかけて1パス完遂してみたが、何のエラーも報告されなかった。


追加:BIOS アップデートしてみた

本当はショップの BTO で組んだ PC の場合、リテール品のマザボと微妙に異なる場合があるので、メーカーからの BIOS アップデートはしない方が良いのだが、一縷の望みをかけて実行してみました。 インストールは問題なく終わったものの、初回の起動時にパープルスクリーン、はい終了。 次の ESXi アップデートで直ることを期待して、5.5u2 を使うしかないようです。