今考えると、おそらくキーボードの設定がそもそもの原因だったのかなと思うが、半年くらい前から root パスワードが通らなくなってしまった ESXi 4.1 の仮想サーバがあった。
何とかしなきゃなと思ってはいたが、昨日あることが原因でその中で動いているホスト2台から応答が無くなってしまった。
ESXiサーバ自体を再起動するにも root パスワード必要だしとあれやこれやもがいた結果、意を決して電源ブチギリすることに。無事ESXiは起動したが、応答がなかったホストからはやはり応答がない。
コンソールを見ることが出来ないのでわからないけどもシングルユーザーモードで止まってるパターンだろうと想像した。
もがいている途中に当然 VMWareのKnowledge Base は参照していたが、そこには
ESXi ホストの再インストールが、ESXi のパスワードをリセットする方法としてサポートされている唯一の方法です。その他の方法を使用すると、ESXi アーキテクチャの複雑な性質のためにホスト障害が起こるか、サポートされない構成になる可能性があります。ESXi にはサービス コンソールがないため、シングル ユーザー モードのようなパスワードをリセットする従来の Linux メソッドは適用されません。
んー、再インストールはしんどい。(すでに時間深夜23時ころ)
しかもその唯一の方法、なんかすごくうまくいかない気がする!!!
更に検索すると、ESXiの起動ディスクをマウントし、etc/shadowを変更して又戻してうまく行った人を発見し、やってみた。
又ESXiサーバ、ブチギリ。(毎回寿命縮まる・・・)
ふたをあけ、起動ディスクにしているUSBメモリを取り出し、手元のMacBook Airにマウント。Hypervisor0〜Hyperviosor4がマウントされるので、
$ cp Hypervisor1/local.tgz ./
$ tar zxvf local.tgz
$ cd etc
$ vi shadow
そして、
root:/jjTTYxQozxraE:1234:0:99999:7:::
nobody:*:13358:0:99999:7:::
nfsnobody:!!:13358:0:99999:7:::
dcui:*:13358:0:99999:7:::
daemon:*:13358:0:99999:7:::
vimuser:*:13631:0:99999:7:::
赤い部分(適当に変更してあります。)を削除して保存。
root::0:99999:7:::
nobody:*:13358:0:99999:7:::
nfsnobody:!!:13358:0:99999:7:::
dcui:*:13358:0:99999:7:::
daemon:*:13358:0:99999:7:::
vimuser:*:13631:0:99999:7:::
更に、
$ cd ../
$ mv local.tgz local.tgz.bak (バックアップ)
$ tar zcvf local.tgz etc/
$ cp local.tgz Hypervisor1/
ここでUSBメモリをアンマウントし、元のサーバに戻して起動。
・・・・・・途中まではうまく起動したので、喜んでトイレに行って帰ると画面が真っ赤になっている・・・・・。
手元の local.tgz と local.tgz.bak のファイルサイズを見ると妙にlocal.tgz のほうがサイズが大きい。やけくそでlocal.tgz.bak を元に戻し起動すると通常通り起動する。
また電源ブチギリ(すでにブチギリに対する耐性は出来た)
ファイルサイズが違うのは BSD tar とLinux tar の違いだろうと思うが、手元にはBSDマシンばかりである。
そこで、初心者に優しそうな ここからUbuntuの仮想ディスクイメージをダウンロードし、VirtualBOXで起動を試みるも、なんか難しいこと言われて起動すらしない。
次に、このあたりからCentOSのイメージをダウンロードしVMWare Fusionで起動、起動したので上記と同じことを繰り返し、無事、root のパスワードが空の状態で起動が成功した。
その後、予想通りシングルユーザーモードで止まっている2台のホストを起動し、事なきを得た。
という疲れた話でした。
書いてしまえば簡単なんですけど、いつか誰かのためになれば。