実際の現場で起こるトラブル:稼働中ESXiサーバーの制御権喪失
このような状況は現場で珍しくありません。前任者からシステムを引き継いだばかりのタイミングや、サーバールームで半年間停止していたDell R740やHPE DL380を再起動した際、誰もrootパスワードを覚えていないことに気付くケースです。
ESXi Host ClientのWeb画面やDCUI(直接操作用の黄灰色の画面)からもログインが拒否されます。この時、配下ではデータベースや社内Webシステム、ERPなどを収容した10〜15台の仮想マシン(VM)が正常に稼働を続けている状態です。サーバーを完全にクリーンインストールし直すと、vSwitch、VLANタグ、ストレージのマウントなどの再設定に半日以上を要し、サービス停止のリスクが極めて高くなります。
なぜESXiには「パスワードをお忘れですか」機能がないのか?
一般的なLinux OSとは異なり、VMware ESXiは堅牢に設計された専用のベアメタル型ハイパーバイザーです。セキュリティと安定性を最大限に高めるため、VMwareは起動後にシステム全体がRAM上で動作するよう設計しています。
起動するたびに、ESXiはbootbankパーティション(FAT16/vfat形式)からstate.tgzアーカイブをRAM上に展開して動作します。rootユーザーのパスワードハッシュを格納するetc/shadowファイルは、このアーカイブ構造(state.tgz > local.tgz > etc/shadow)の奥深くに保存されています。管理画面などからパスワードを変更した際、システムはアーカイブを再圧縮してディスクへ書き戻します。
VMware公式では、パスワード紛失時にはESXiの再インストールが推奨されています。しかし実運用においては、bootbankの圧縮ファイルに安全にアクセスしてパスワードをクリアすることで、配下の仮想マシンデータに影響を与えることなく復旧が可能です。
ESXiのRootパスワードを忘れた場合の3つの対処法
方法1:Ubuntu Live USBを使用してパスワードをクリアする(スタンドアロンサーバーに推奨)
この方法は、ESXiがvCenterに接続されていないスタンドアロン環境で有効です。メンテナンス時間はわずか5〜10分程度で完了します。
ステップ1: Ubuntu Desktop(20.04または22.04 LTS)の起動用USBメディアを作成します。サーバーに挿入し、Try Ubuntu without installingモードで起動します。
ステップ2: Ubuntu内でTerminalを開き、ESXiのブートパーティションを確認します。
sudo blkid
BOOTBANK1というラベルが付いたvfat形式のパーティション、または容量が約250MB〜4GB程度のパーティション(ESXi 6.7、7.0、8.0によって異なります)を探します。ここでは、このパーティションが/dev/sdb5(NVMeドライブの場合は/dev/nvme0n1p5など)であると仮定します。
ステップ3: bootbankパーティションをUbuntuシステムにマウントします。
sudo mkdir -p /mnt/esxi_boot
sudo mount /dev/sdb5 /mnt/esxi_boot
ls -lh /mnt/esxi_boot/state.tgz
state.tgzファイルが表示されれば、設定が格納された正しいパーティションがマウントされています。
ステップ4: 設定アーカイブを展開してshadowファイルを抽出します。
# 一時作業ディレクトリを作成
mkdir -p /tmp/esxi_config && cd /tmp/esxi_config
# state.tgz -> local.tgz -> etc/shadow を展開
tar -xzf /mnt/esxi_boot/state.tgz
tar -xzf local.tgz
rm local.tgz
ステップ5: nanoエディタでetc/shadowファイルを開きます。
nano etc/shadow
通常、先頭行は以下のようになっています。
root:$6$xyz123...パスワードハッシュ文字列...:13358:0:99999:7:::
1つ目のコロンと2つ目のコロンの間にあるハッシュ文字列をすべて削除し、次のように変更します。
root::13358:0:99999:7:::
Ctrl + Oを押してからEnterを押してファイルを保存し、Ctrl + Xで終了します。この操作により、rootアカウントのパスワードが空(パスワードなし)の状態になります。
ステップ6: 設定を再度アーカイブし、ブートパーティションに書き戻します。
# local.tgz、次に state.tgz へ再圧縮
tar -czf local.tgz etc
tar -czf /mnt/esxi_boot/state.tgz local.tgz
# 安全にアンマウントして再起動
cd ~
sudo umount /mnt/esxi_boot
sudo reboot
ステップ7: USBを抜き、サーバーをESXiで再起動します。ユーザー名root、パスワード欄を空欄にしてDCUIまたはWeb UIにログインします。システムにログインできたら、直ちに新しいパスワードを設定してください。
方法2:vCenter Host Profile経由で新しいパスワードを同期する(ダウンタイムゼロ)
対象のESXiホストがVMware vCenterの管理下にあるクラスタ内に存在する場合(vSphere Enterprise Plusライセンスが必要)、サーバーの停止やレスキューUSBの接続は不要です。
- Administrator権限を持つアカウントでvSphere Clientにログインします。
- ポリシーおよびプロファイル > ホストプロファイル(Host Profiles)に移動します。
- 正常に稼働しているホストからプロファイルを抽出(Extract)するか、新規プロファイルを作成します。
- ホストプロファイルを編集し、セキュリティおよびサービス > セキュリティ > ユーザー設定 > rootへ移動します。
rootアカウントに設定したい新しいパスワードを入力します。- パスワードを紛失したESXiホストにこのホストプロファイルを適用(Attach)し、修正(Remediate)を実行します。vCenterによってわずか1〜2分で自動的に新しいパスワードがサーバーへ反映されます。
方法3:ESXiを上書きインストールし、「Preserve VMFS Datastore」を選択する
この方法は、社内セキュリティポリシーにより外部Live CD/USBのブートが禁止されている場合や、サーバー上のESXiのbootbankファイルが破損してUSBからの救出が不可能な場合に適しています。
現在稼働中のバージョンと一致するESXiインストール用USBを挿入(またはiLO/iDRAC/KVM経由でISOをマウント)し、インストーラーを起動します。
インストール先ディスクの選択画面に進むと、インストーラーが既存のESXi環境を検出し、次の3つのオプションを提示します。
- Upgrade ESXi, preserve VMFS datastore: ESXiをアップグレードし、既存の設定を保持します(rootパスワードは変更されません)。
- Install ESXi, preserve VMFS datastore: OSをクリーンインストールし、rootパスワードとネットワークを初期化しますが、Datastore上の仮想マシンデータは100%保持されます。
- Install ESXi, overwrite VMFS datastore: ディスク全体を完全に初期化し、すべての仮想マシンを消去します(絶対に選択しないでください)。
2番目の項目(Install ESXi, preserve VMFS datastore)を選択してください。約10〜15分でインストールが完了したら、IPアドレスとvSwitchを再設定し、Datastoreから.vmxファイルを選択して仮想マシンの登録(Register VM)を行うことで、各サービスを正常な状態に復帰させることができます。
自社システムにはどの方法を選択すべきか?
インフラの構成や運用環境に応じて、最適な対処方法を選択してください。
- スタンドアロンの物理サーバー(Standalone Host): Ubuntu Live USB(方法1)が最適です。ネットワーク構成、固定IP、vSwitchなどの設定を100%維持したまま、わずか5〜10分のメンテナンス時間で完了する最速の手法です。
- vCenterを導入しているエンタープライズ環境: Host Profile(方法2)を使用します。ダウンタイムが一切発生せず、安全性とVMwareの標準運用フローを満たす最適な方法です。
- ESXiのブートエラーや設定ファイルの破損がある場合: Datastore保持の上書きインストール(方法3)を選択します。仮想マシンデータを完全に保護したまま、OS環境をクリーンな状態にリフレッシュできます。

