ノートパソコンの光学ドライブの取り出しボタンを無効にして、取り出しをキーボード ショートカットに割り当てるにはどうすればよいですか?

ノートパソコンの光学ドライブの取り出しボタンを無効にして、取り出しをキーボード ショートカットに割り当てるにはどうすればよいですか?

注: 回答は 19.04 で機能するように更新されました

私は 14.04 を使用していますが、CD/DVD/ブルーレイ ドライブを 1 日に 20 回ほど誤って開いてしまいます。ここでいくつかの質問を調べましたが、有効な解決策はありませんでした。

両方この質問そしてこの質問時代遅れのようです。提供された解決策は機能しません。

eject -i on私がそうすると、eject: unable to find or open device for: 'cdrom'

そうすると、eject -i on /dev/sr0より好意的な応答が得られますが、CD-Drive may NOT be ejected with device button残念ながらボタンはまだ有効になっています。

からの情報/proc/sys/dev/cdrom/infoによると、ロックは可能であるようです:

CD-ROM information, Id: cdrom.c 3.20 2003/12/17

drive name:             sr0
drive speed:            24
drive # of slots:       1
Can close tray:         1
Can open tray:          1
Can lock tray:          1
Can change speed:       1
Can select disk:        0
Can read multisession:  1
Can read MCN:           1
Reports media changed:  1
Can play audio:         1
Can write CD-R:         1
Can write CD-RW:        1

この答えUDEV ルールを修正してドライブのロックを有効にする実用的なソリューションがあります。ソリューションに実用的な情報を追加して、次のことができるようにしました。

  • 起動時に光学ドライブのハードウェア取り出しボタンを無効にする
  • 光学ドライブを取り出すためのキーボードショートカットを追加する
  • サスペンドから復帰した後もドライブがロックされたままであることを確認する

答え1

ドライブのロックを有効にする

(注:eject -i onすでに動作している場合は、「起動時にドライブをロックする」に進んでください)

まず、次のよう/lib/udev/rules.d/60-cdrom_id.rulesにコピーします。/etc/udev/rules.d/

cp /lib/udev/rules.d/60-cdrom_id.rules /etc/udev/rules.d/

次に、/etc/udev/rules.d/60-cdrom_id.rules問題のある行を編集してコメントアウトします。

sudoedit /etc/udev/rules.d/60-cdrom_id.rules

次の行を見つけます:

ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $devnode", GOTO="cdrom_end"

次に、#先頭に (これにより行が「コメント アウト」され、削除せずに事実上無効になります) を追加して、次のようになります。

# ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $devnode", GOTO="cdrom_end"

Ctrl次に、 + を押して保存して閉じX、次にYを押して確認し、最後に をEnter押して現在のファイル名を受け入れます。奇妙な一時ファイル名として表示されますが、心配しないでください。これは sudoedit の動作方法です。

これで、次のようにして光学ドライブのハードウェア ボタンを無効にできるはずです (基本的にはドライブをロックします)。

eject -i on /dev/sr0またはeject -i 1 /dev/sr0彼らも同じことをします。


起動時にドライブをロックする

これをもっと便利にするために、このコマンドを起動時に有効にしたいと考えました。GUIを使用しましたスタートアップアプリケーションこれを実現するには、プログラム (Ubuntu にプリインストールされており、Dash で検索) を使用します。

プログラムを開いて、追加ボタンをクリックすると、新しいダイアログボックスが開きます。

名前を入力します(私は「光学ドライブをロック」という説明的な名前にしました)。指示:フィールド入力bash -c 'eject -i on /dev/sr0'

クリック追加完了したらプログラムを閉じます。


キーボードショートカットを追加する

これで、起動時に光学ドライブがロックされます。しかし、ドライブを使用する必要があるときに、どうやってドライブを開くのでしょうか?! 簡単にするために、ドライブのロックを解除し、ドライブを取り出し、ドライブを再度ロックする「取り出し」キーボード ショートカットにコマンドを配置しました。この方法により、ドライブに簡単にアクセスできますが、ハードウェア ボタンが問題になることはありません。

このキーボード ショートカットを実行する方法は次のとおりです。

  • 開くキーボードDash 内で見つかったプログラム。

  • クリックショートカットタブ

  • クリックカスタムショートカットリストの一番下

  • クリックしてください+サインすると、新しいダイアログボックスが開きます

  • ショートカットに名前を付けます(私は「CDのロック解除、取り出し、再ロック」を使用しました)

  • これを指示:分野:

    bash -c 'eject -i off /dev/sr0 && eject /dev/sr0 && eject -i on /dev/sr0'
    
  • クリック適用する

  • ショートカット名の右側にある無効クリックすると、無効変更する新しいアクセラレータ:

使用したいキーの組み合わせを押します。私はCtrl+ Alt+を使用しました。E

その後、すぐにショートカットをテストできます。問題がなければ閉じて完了です。


サスペンドからの復帰時にドライブをロックする (pre-systemd 方式)

サスペンドから再開するとドライブが再びロック解除されることに気づいたので、この場合にドライブがロックされたままになるようにスクリプトを作成しました。

スクリプト ファイルを作成します。

sudoedit /usr/lib/pm-utils/sleep.d/99lock-optical

次の内容を新しいファイルに貼り付けます。

#!/bin/sh
# lock the optical drive upon resume from suspend
        
case "${1}" in
    resume|thaw)
        eject -i 1 /dev/sr0    
;;
esac

サスペンドからの復帰時にドライブをロックする (systemd メソッド)

現在 19.04 を使用していますが、サスペンドから復帰するとドライブがロック解除されることに気付きました。次の方法でロックを解除したままにすることができます:

スクリプト ファイルを作成します。

sudoedit /usr/lib/systemd/system-sleep/00start_my_connection

次の内容を新しいファイルに貼り付けます。

#!/bin/sh
if [ $1 = post ]
  then eject -i 1 /dev/sr0
fi

ファイルを保存して閉じ、実行可能にすれば準備完了です。

答え2

私にとって、ここにある情報は役に立ちます: https://bugs.launchpad.net/ubuntu/+source/eject/+bug/885051/comments/6

ファイルを編集しました/ライブラリ/ディレクトリ、ない/等/ 私のUbuntu 14.04では、コマンドは次のように動作します: eject -i 1 /dev/sr0

答え3

ボタンが排出されないようにするには、次の操作を試してください。

  1. 開ける:システム設定>キーボード>ショートカット>サウンドとメディア

  2. 「取り出し」を選択し、ショートカットをクリアします(「Backspace」を押します)。

ショートカット設定を使用すると、よく使用するアプリケーションを開いたり、画面をロックしたり、Wi-Fi をリセットしたりするなど、より便利な操作を実行できます。


ソース:

私は 14.04 を実行している MacBook Pro を持っていますが、取り出しボタンが Delete/Backspace のすぐ上にあるため、誤って押してしまうことがよくあります (ディスク ドライブのない MacBook では、そのボタンが電源ボタンになっているため、さらにひどい状況です)。ショートカット設定を使用して、取り出しボタンでラップトップをロックするようにしました。12.04 以降、その間のすべてのバージョンでこのソリューションを使用しています。

答え4

これについてサイトeject -i 1機能しない場合は、次の提案を見つけました:
sudo echo 1 > /proc/sys/dev/cdrom/lockロックするには (ロック解除するには 1 ではなく 0)
他にもいくつかのオプションが議論されています。

以下は別のオプションを実行する短い C ソース コードです。リンク(上のコメントにある新しいバージョンのバグ修正に注意してください!)

しかし、他のフォーラムで読んだところによると、これらの取り出しコマンドはすべて、ディスクが挿入されマウントされたときにのみドライブのロック状態を変更するとのことです。唯一の解決策は と呼ばれるツールのようですcdctlが、コメントを調べたところ、多くのシステムと互換性があまりありません。

関連情報