ESXi 環境で Linux のカーネル新しいの入れたらディスクが見えなくなった

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 だ。

仕組みがわかってしまえば何のことはないのだけど、気付くまでは大変に焦った。いやはや。