正しい方向性を示してくれた @Affix の回答のおかげで、問題の解決策がわかりました。
ご想像のとおり、この問題は間違いなく UDEV が原因です。問題は、cdrom ドライブに関連するほとんどの UDEV ファイルにあるこの行です。
例
Fedora 19 には /usr/lib/udev/rules.d/60-cdrom_id.rules
というファイルがあります。 .このファイルには、CD/DVD デバイスのイジェクト ボタンを採用している次の行があります。
ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $devnode", GOTO="cdrom_end"
この問題を回避し、UDEV のイジェクト ボタンを統合する機能を無効にするには、次の手順を実行します。
<オール>
ファイル 60-cdrom_id.rules
のコピーを作成します
$ sudo cp /usr/lib/udev/rules.d/60-cdrom_id.rules /etc/udev/rules.d/.
このコピーしたバージョンのファイルを編集し、文字列 DISK_EJECT_REQUEST
を含む行をコメントアウトします。 .
$ sudoedit /etc/udev/rules.d/60-cdrom_id.rules
ファイルを保存すると、変更がすぐにわかるはずです!
上記の解決策は、両方の eject
の問題を修正します そして cdctl
.したがって、次のコマンドは期待どおりに機能します:
ドライブをロック
$ eject -i on /dev/sr0
eject: CD-Drive may NOT be ejected with device button
-or-
$ cdctl -o1
ドライブのロックを解除
$ eject -i off /dev/sr0
eject: CD-Drive may be ejected with device button
-or-
$ cdctl -o0
次の行を追加します:
DISC_EJECT_REQUEST
CD ROM udev ルールに。これにより、以下でロックできるようになります:
eject -i