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.showIsoLockWarning
とmsg.autoanswer
を設定する
個人的には毎回仮想マシン構築時に設定する手間も発生することから、おすすめはできない設定となる。
仮想マシンの「設定の編集」→「仮想マシンオプション」→「構成パラメータ」の「構成の編集」ボタンを選択し、以下2行のパラメータを追加する。この設定はOS起動状態で反映可能である。
パラメータ | 値 (接続解除させないパターン) | 値 (強制切断パターン) |
---|---|---|
cdrom.showIsoLockWarning | TRUE | FALSE |
msg.autoanswer | TRUE | TRUE |
0 件のコメント:
コメントを投稿