VMware ESXi 6.5のインストールでNICとHDDが認識されずハマった話

    VMware ESXiを自宅のサーバ機にインストールした時のお話。

    スポンサーリンク

    No Network Adaptersエラーの表示

    My VMwareに登録⇒VMware vSphere Hypervisor 6.5をダウンロード⇒DVDに焼いてDVDドライブブートでインストーラ起動、ここまではよかった。

    インストールの途中でこんな表示が出てくる。

    ネットワークアダプターがないから先へ進めないよー、とのことだ。

    実は事前に「Realtek製NICはESXiから認識されない」という情報を掴んでいた。
    なんでも、ESXiはサポートしているデバイスがかなり少ないらしく、Intelチップくらいしか認識しないらしい。

    そしてぼくのサーバのNICはもちろん蟹さんなのである。
    ちなみに、蟹チップをLinuxに使うのはオススメしない。(前にUbuntuのインストール時にもかなりハマった。「r8169」でググるとその片鱗が見えると思う。)

    これを解決するためにどうするかというと、ESXiのインストーラにRealtekのドライバを突っ込んであげることで認識するようになるらしい。(カスタムイメージと言う)

    カスタムイメージの作成

    カスタムイメージを作成するには「VMware PowerCLI」「ESXi-Customizer-PS」「突っ込みたいドライバ」の3つが必要だ。

    ・VMware PowerCLI 6.5 Release 1
    https://my.vmware.com/ja/web/vmware/details?downloadGroup=PCLI650R1&productId=614

    ・ESXi-Customizer-PS v2.5
    https://www.v-front.de/p/esxi-customizer-ps.html#download

    ・今回突っ込みたいドライバ(Realtek NIC on vSphere 6)
    http://www.vdicloud.nl/2015/02/07/realtek-nic-on-vsphere-6/

    まず、PowerCLIをインストールする。環境によってはPowershell 3.0をインストールしろとか言われるのでそれに従う。

    PowerCLIを起動すると「Set-ExecutionPolicy RemoteSigned」してねとか言われるので、PowerCLIを管理者権限で実行してそのコマンドを入力する。

    それが終わったらPowerCLIからコマンドラインで「ESXi-Customizer-PS-v2.5.ps1」を実行する。

    こいつを実行するとVMwareの公式からESXiのISOイメージを拾ってきて、オプションで指定したドライバをそのISOに書き込んで吐き出してくれるらしい。便利だ。。

    このスクリプトにオプション類を付けて実行してみる。

    まず、「.\ESXi-Customizer-PS-v2.5.ps1」でESXi-Customizer-PSが実行される。その時に3種類のオプションを指定している。

    「-v65」は、ESXiのバージョン6.5をカスタム元のISOイメージとして使用する。

    「-v60」ならバージョン6.0、「-v55」ならバージョン5.5を使ってカスタムイメージを作成してくれる。

    特に問題がなければ最新の6.5でいいだろう。

    「-load net-r8168,net-r8169」は、Realtek NICのr8168ドライバとr8169ドライバをカスタムイメージに突っ込んでねという意味だ。

    Realtek NIC on vSphere 6があるので指定する必要もなさそうだが、心配性なので一応入れておく。

    「-pkgDir c:\mydoc\vib\」は、カスタムイメージに突っ込みたいVIBファイルのパスを指定する。

    このパスの中にRealtek NIC on vSphere 6のVIBを入れておく。(つまりC:\mydoc\vib\net51-drivers-1.0.0-1vft.510.0.0.799733.x86_64.vibのようになる)

    で、実際に上記コマンドを叩いた様子。

    「ESXi-6.5.0-20170404001-standard-customized.iso」という名前で、Realtek NICのドライバを突っ込んだISOが出来上がる。

    これを元にインストールを進めると、先程のネットワークアダプターエラーは出ずに進むことができた。

    しかし。

    HDDを認識しない

    NICの問題は解決したが、次はSATAの内蔵HDDを認識しない問題が。

    調べたところ、sata-xahciというドライバを追加するのがいいらしいので、それを追加でloadしてもういっちょカスタムイメージを作成。

    このISOを使って同じようにインストールを進めてみる。

    しかし、認識しなかった。

    そういえばESXiはUSBメモリにインストールして運用するのが一般的だとどこかで見た覚えがある。

    早速Rufus 2.14をダウンロードし、USBメモリにISOを書き込んでみる。

    menu.c32が古いとか言われるのでとりあえず「はい」と答える。

    無事、USBメモリへのISO書き込みが完了したのでサーバに刺す。

    BIOSでブートディスクの優先順位を選択し(ぼくのUSBはIO DATA製だ)、設定を保存して再起動する。

    ESXi 6.5インストール完了

    そのまま通常通りインストールを進めると、きた。今度はUSBメモリがきちんとデバイスとして認識されている。

    このディスクを選択し、rootパスワードの設定やらをすればインストール完了。

    あとはそのままリブートすれば、次回以降は勝手にUSBからESXiが起動してくれる。

    そしてこれが起動後の画面。ESXiは基本的にwebブラウザ経由で別のPCから操作するため、下に書いてあるIPアドレスにアクセスする。

    DHCPで動的にIPが振られていない場合はrootログインして設定する必要があるのだろうと思う。

    いずれにせよ後でStatic IPを設定するのだが。

    サーバのIPアドレスにアクセスすると、なにやら自動的に暗号化が施されている様子。

    サーバ自身が自分で認証局を立てて証明書を発行している、いわゆるオレオレ証明書だ。

    あなたがアクセスしたのは192.168.0.23だけど、証明書はlocalhost.localdomain向けに発行されてるから一致しないよー。このサイトは信頼できないよー、とChromeに怒られるが無視。

    ESXiのログインページに飛ぶので、先程設定したrootでログイン。

    待ちに待った管理画面が出てくる。

    各種設定

    画面左側の「管理」⇒「ライセンス」⇒「ライセンスの割り当て」をやらないと、60日後に使えなくなるため注意。

    あとはTSM-SSHサービスを起動しておけばSSHできる。(「ポリシー」⇒「ホストと連動して起動および停止します」にチェックしておかないとホスト再起動時にSSHできなくなるので注意)

    ただ、Teratermなどのコンソールからログインする場合は、デフォルトが公開鍵認証になっている上に鍵ペアがそもそもないので一旦パスワード認証に戻す必要がある。

    1. ブラウザのSSHコンソールでrootログイン
    2. /etc/ssh/sshd_configを編集
    3. PasswordAuthentication yesに変更して/etc/init.d/SSH restartする

    これでTeratermからパスワードログインできるようになる。

    ここから、公開鍵認証にしたい人は次の手順を踏む必要がある。
    1. ssh-keygenで鍵ペアを作成。コマンドがない人はGitのやつ使うなりPuTTYなどで作成する。
    2. 公開鍵である.pubファイルのみを、コピペやSSH SCPなどでESXiに転送する。
    3. 転送した.pubファイルを/etc/ssh/keys-root/authorized_keysに移動させる
    4. Teratermで秘密鍵を指定してログインしてみる
    5. 成功したら、また/etc/ssh/sshd_configを編集する
    6. PasswordAuthentication noに変更して/etc/init.d/SSH restartする

    調べてもあまり情報がなかったのでここまで辿り着くのに割と時間がかかった。

    で、ここまでやったのに結局XenServerに乗り換えてしまった。

    原因としては、うちのSATAコントローラが悪いのか、内蔵HDDを何やっても認識してくれなかった。

    Samsung製HDD⇒日立製HDDに換えても、USB-HDDケースに入れてUSB経由でやってみてもダメ。

    /bootbank/sata_ahc.v00の中にあるahci.mapというマッピングファイルを上書きしてみてもダメ。

    ESXiは諦めてXenServerに乗り換えたら、ハード起因の問題など何もなく普通にインストール完了して仮想マシン構築ができてあっけなく終わりました。

    ぼくにとってESXiのインストールは時間の無駄以外の何物でもなかった。

    個人で使うハイパーバイザ型仮想化ソフトウェアを検討している人で、安物マシンを使っている方は是非XenServerをオススメします、というお話でした。

    参考にさせて頂いたサイト様
    vSphere ESXi 6でRealtek NICを動かす(ESXi-Custmizer-PS編) – 雑木林

    技術メモメモ: Shuttle DS81を買ってESXi 6.0をインストールした話② (ESXi Custom Image作成~インストール完了まで)

    void *: ESXi 6.0 のインストールで NIC または HDD/SSD が認識しない場合の対処

    VMware vSphere Hypervisor 5.0でSATAディスク認識 – インフラSEの書き込み

    サーバのESXi化が泥沼化 その2 – SATAコントローラの追加 [クソゲ〜製作所]

    スポンサーリンク