2021年5月4日火曜日

ESXi上のLinux仮想マシンでCD/DVDドライブ接続解除時の「質問の回答」を回避する方法

ESXi上で稼働しているLinux仮想マシンでは、仮想CD/DVDドライブの「接続」チェックを解除しようとすると、以下のような「質問の回答」が表示されて、回答するまで仮想マシンの応答が停止してしまう。

ゲスト OS が CD-ROM ドアをロックしてその CD-ROM を使用している可能性があります。これにより、ゲストがメディアの変更を認識できなくなる可能性があります。可能な場合は、接続を切断する前に、ゲスト内から CD-ROMを取り出してください。切断を続行しますか (そしてロックをオーバーライドしますか)?

※上記質問に「はい」を答えれば接続が解除され「いいえ」を答えれば接続したままになる。

これは昔からある事象であり、みんな回避方法を常識として知っていたのかもしれないが、私自身が長年vSphere製品に携わっていたのに知らずに過ごしていた(いつも「質問の回答」が表示されたら「はい」を選択していた)。

今回、長年知らなかった回避方法を実際に試してみたので以下に記載する。

eject cdromを実行する

もっとも簡単な方法は、OSにてejectコマンドを実行することだ。

[root@localhost ~]# eject cdrom

ejectコマンドを実行すると、仮想CD/DVDドライブの「接続」を解除してくれる。以下は、ejectコマンド実行後の仮想マシンの「設定の編集」が面となる。

ただし、単純にejectコマンドを実行すると何のプロンプトも返らないので、成功か失敗かよくわからなくなる。そこで、-vオプションを使って詳細表示をさせるとわかりやすいだろう。

[root@localhost ~]# eject -v cdrom
eject: device name is `/dev/sr0'
eject: /dev/sr0: not mounted
eject: /dev/sr0: is whole-disk device
eject: /dev/sr0: is removable device
eject: /dev/sr0: trying to eject using CD-ROM eject command
eject: CD-ROM eject command succeeded

なお、ejectコマンドはCD/DVDドライブのアンマウント処理も同時に実施してくれるため、マウント後のumountコマンドによるアンマウント手順は不要となる。以下にマウント状態でのejectコマンドを実行した場合の動作を記載する。

[root@localhost ~]# mount cdrom /mnt/
mount: special device cdrom does not exist
[root@localhost ~]# eject -v cdrom
eject: device name is `/dev/sr0'
eject: /dev/sr0: mounted on /mnt
eject: /dev/sr0: is whole-disk device
eject: /dev/sr0: is removable device
eject: /mnt: unmounting
eject: /dev/sr0: trying to eject using CD-ROM eject command
eject: CD-ROM eject command succeeded

仮想マシンの詳細設定にcdrom.showIsoLockWarningmsg.autoanswerを設定する

個人的には毎回仮想マシン構築時に設定する手間も発生することから、おすすめはできない設定となる。

仮想マシンの「設定の編集」→「仮想マシンオプション」→「構成パラメータ」の「構成の編集」ボタンを選択し、以下2行のパラメータを追加する。この設定はOS起動状態で反映可能である。

パラメータ 値 (接続解除させないパターン) 値 (強制切断パターン)
cdrom.showIsoLockWarning TRUE FALSE
msg.autoanswer TRUE TRUE

参考

0 件のコメント:

コメントを投稿

人気の投稿