【VMware】「ハードウェアの安全な取り外し」によりデバイスを削除してしまった時の対処方法

vSphere 環境に構築した Windows 仮想マシン上から「ハードウェアの安全な取り外し」
で NIC や SCSI デバイスを削除してしまった場合の対処策について記載します。

「ハードウェアの安全な取り外し」でデバイスを削除してしまった際の対処策

NIC や SCSI デバイスを「ハードウェアの安全な取り外し」で削除してしまった直後、
vSphere Client の設定の編集から該当のネットワークアダプタは以下のように接続中
のチェックが外れ、該当の SCSI デバイスは表示されなくなります。
(仮想マシンを再起動すると NIC も見えなくなる場合があります。)

また、上記状態でネットワークアダプタの接続中にチェックを入れて [OK] を押しても、
再度接続中のチェックは外れてしまいます。

そのため、NIC や SCSI デバイスを「ハードウェアの安全な取り外し」で削除して
しまった場合には、新規にネットワークアダプタや SCSI デバイスを追加しても良い
ですが、新規に追加すると NIC の場合は改めてネットワーク設定が必要となり、
SCSI デバイスの場合は新規ディスクになるので以前のデータは残っていません。

ただ、vSphere Client などの UI 上から該当の NIC や SCSI デバイスが見えなく
なったとしても仮想マシンの構成ファイル(vmx) 上には設定が残っているため、
「ハードウェアの安全な取り外し」で削除してしまった NIC や SCSI デバイスを
元に戻す場合は以下手順を実施することで、元通りに戻せます。

1) 対象の仮想マシンを停止し、当該仮想マシンを管理する ESXi へ
     SSH 接続または DCUI 経由でシェルへ接続します。

2) 念の為、対象の仮想マシンディレクトリへ移動し cp コマンド等で vmx 
     ファイルのバックアップを取得します。

3) vi コマンド等で vmx ファイルに記述された以下箇所を編集します。

     <NIC の場合の例>
     ethernet1.present = "FALSE"
     ↓
     ethernet1.present = "TRUE"

     <SCSI デバイスの場合の例>
     scsi2.present = "FALSE"
     ↓
     scsi2.present = "TRUE"

     scsi2:0.present = "FALSE"
     ↓    
     scsi2:0.present = "TRUE"
 
4) KB 1026043 の手順で vmx をリロードします。

   ・インベントリから仮想マシンを削除せずに vmx ファイルをリロードする (1026043)
     https://kb.vmware.com/s/article/1026043?lang=ja

5) 仮想マシンを起動し、削除してしまったデバイスが元通りになったか
     確認してください。

上記手順の通り、各種デバイスは vmx ファイルに [*.present = “FALSE”] で
残ったままになってるので、TRUE に変更すれば元通りです。

なお、vmx ファイルを編集した後は vmx のリロードが必要となります。

ログから「ハードウェアの安全な取り外し」による削除か確認する方法

「ハードウェアの安全な取り外し」により、デバイスが削除されてしまったのかを
ログから確認する場合は仮想マシンログ(vmware.log) から以下のような記録が探せば
確認できます。

2022-10-20T02:31:29.229Z In(05) vcpu-0 - VMXNET3 user: Quiesce device 3.
2022-10-20T02:31:29.229Z In(05) vcpu-0 - Ethernet3 MAC Address: 00:50:56:a6:67:6e
2022-10-20T02:31:29.230Z In(05) vcpu-0 - VMXNET3 user: Ethernet3 RSS fields requested by vmx: 3
2022-10-20T02:31:29.231Z In(05) vcpu-0 - VMXNET3 user: Ethernet3 Driver Info: version = 17964782 gosBits = 2 gosType = 2, gosVer = 40960, gosMisc = 212
2022-10-20T02:31:29.231Z In(05) vcpu-0 - VMXNET3 user: Activate request succeeds for device 3.
2022-10-20T02:31:29.294Z In(05) vcpu-0 - VMXNET3 user: Quiesce device 3.
2022-10-20T02:31:29.294Z In(05) vcpu-0 - Ethernet3 MAC Address: 00:50:56:a6:67:6e
2022-10-20T02:31:29.294Z In(05) vcpu-0 - VMXNET3 user: Ethernet3 RSS fields requested by vmx: 3
2022-10-20T02:31:29.399Z No(00) vcpu-1 - ConfigDB: Setting Ethernet3.pciSlotNumber = "-1"
:
2022-10-20T02:31:29.569Z No(00) vcpu-0 - ConfigDB: Setting Ethernet3.present = "FALSE"
:
2022-10-20T02:31:29.931Z In(05) vcpu-0 - Powering off Ethernet3
2022-10-20T02:31:29.931Z In(05) vcpu-0 - Hot removal done.
2022-10-20T02:49:06.549Z In(05) vcpu-1 - E1000: e1000e-- tx queue 1 is enabled.
2022-10-20T02:49:06.549Z In(05) vcpu-1 - E1000: e1000e-- tx queue 1 is enabled.
2022-10-20T02:49:06.552Z In(05) vcpu-1 - E1000: e1000e-- tx queue 1 is enabled.
2022-10-20T02:49:06.579Z In(05) vcpu-1 - E1000: e1000e-- tx queue 1 is enabled.
2022-10-20T02:49:06.580Z In(05) vcpu-1 - E1000: e1000e-- tx queue 1 is enabled.
2022-10-20T02:49:06.581Z In(05) vcpu-1 - E1000: e1000e-- tx queue 1 is enabled.
2022-10-20T02:49:06.581Z In(05) vcpu-1 - E1000: e1000e-- tx queue 1 is enabled.
2022-10-20T02:49:06.581Z In(05) vcpu-1 - E1000: e1000e-- tx queue 1 is enabled.
2022-10-20T02:49:06.582Z In(05) vcpu-1 - E1000: e1000e-- tx queue 1 is enabled.
2022-10-20T02:49:06.691Z In(05) vcpu-0 - E1000: e1000e-- tx queue 1 is enabled.
2022-10-20T02:49:06.793Z No(00) vcpu-1 - ConfigDB: Setting Ethernet1.pciSlotNumber = "-1"
:
2022-10-20T02:49:06.839Z No(00) vcpu-0 - ConfigDB: Setting Ethernet1.present = "FALSE"
:
2022-10-20T02:49:06.893Z In(05) vcpu-0 - Powering off Ethernet1
2022-10-20T02:49:06.894Z In(05) vcpu-0 - Hot removal done.
2022-10-22T07:12:32.011Z No(00) vcpu-0 - ConfigDB: Setting SCSI1.pciSlotNumber = "-1"
:
2022-10-22T07:12:32.139Z No(00) vcpu-0 - ConfigDB: Setting SCSI1.present = "FALSE"
2022-10-22T07:12:32.140Z No(00) vcpu-0 - ConfigDB: Setting scsi1:1.present = "FALSE"
2022-10-22T07:12:32.140Z No(00) vcpu-0 - ConfigDB: Setting scsi1:0.present = "FALSE"
:
2022-10-22T07:12:32.289Z In(05) vcpu-0 - Powering off SCSI1
2022-10-22T07:12:32.289Z In(05) vcpu-0 - Virtual Device for scsi1:0 was already successfully destroyed
2022-10-22T07:12:32.289Z In(05) vcpu-0 - Virtual Device for scsi1:1 was already successfully destroyed
2022-10-22T07:12:32.289Z In(05) vcpu-0 - Powering off scsi1:1
2022-10-22T07:12:32.289Z In(05) vcpu-0 - Powering off scsi1:0
2022-10-22T07:12:32.289Z In(05) vcpu-0 - Hot removal done.

ログを見ると [Hot removal done.] の前に各デバイスの present が FALSE になっている
ので、分かりやすいと思います。

Hotplug を無効化し、「ハードウェアの安全な取り外し」を出来なくする

「ハードウェアの安全な取り外し」は Hotplug が有効になっているため実行できます。

Hotplug を無効化したい場合には、以下 KB 1012225 の手順で実施できます。

ESXi 6.x、5.x および ESXi/ESX 4.x 仮想マシンで HotAdd/HotPlug 機能を無効にする (1012225)
https://kb.vmware.com/s/article/1012225?lang=ja
タイトルとURLをコピーしました