ESXi 4.1.0 環境上で動いている RHEL5/CentOS5 のアップデートをやってみた。yum update で出てきたやつを全部入れた。これで最新だぜ!と安心して再起動したらいっこうに上がってこない。コンソールを見たら。
fsck.ext4: No such file or directory while trying to open /dev/datavg/datalv An error occurred during the file system check. Dropping you to a shell; the system will reboot when you leave the shell. Give root passwrd for maintenance (or type Control-D to continue):
こんなメッセージが表示されて起動が停止してる!なんで!データを入れてあった領域が見えなくなってる。どうしよう。
よく考えろ、何が変わった?カーネルのアップデートを行ったわけだから… VMware-tools の pvscsi ドライバがカーネルに組み込まれてない!なるほどそういうわけだ。
この仮想マシンで見えなくなった領域は、SCSI コントローラを標準の「LSI Logic パラレル」ではなく「準仮想化」を使っていた。「LSI Logic パラレル」であれば、完全仮想化なので Kernel に標準で組み込まれているドライバで認識できる。ところが「準仮想化」は Kernel に標準ではドライバが入っていないので VMware-tools で組み込んでやる必要がある。initrd に pvscsi が入っている必要がある。
とりあえず起動するだけなら、SCSI コントローラの「準仮想化」を「LSI Logic パラレル」に変更すれば起動する。起動させてから VMware-tools をインストールして initrd に pvscsi を組み込んでから、もう一度「準仮想化」に戻せば OK だ。
仕組みがわかってしまえば何のことはないのだけど、気付くまでは大変に焦った。いやはや。