boot deviceの情報はbootloaderからkernelに渡されるようになってて、
bootloaderはカーネルを読み込んだディスクのドライブをBIOSのINT13の
ドライブ番号(c:なら0x80,d:なら0x81だっけ?)で渡すんじゃなかったっけ。

だからboot deviceがunknownになってしまうのは
・非標準のbootloader(GRUBとか)使ってて値がちゃんと渡されてない
・BIOSのドライブ番号(C,D,E..)と実際のwd?,sd?との対応を
  kernelがうまく判断できない
  (i386/autoconf.cのdevice_register()が関係あると思うけどよくわからん)
というのが原因なんだろうけど、vmwareでどうなのかは設定次第じゃないかしら。
逆にwdとsdの混在環境でもうまくいく場合もあるはず。実際使えてたし。