ラップトップの光学式ドライブのイジェクトボタンを無効にし、イジェクトをキーボードショートカットに割り当てるにはどうすればよいですか?


8

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

14.04で、誤ってcd / dvd / blurayドライブを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
それは私のために働いています。「udevadm control --reload-rules」を使用してudevルールをリロードしましたか???
solsTiCe 2015年

回答:


11

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

(注: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

その後、すぐにショートカットをテストできます。すべてが十分に近く、完了した場合!


サスペンドからのウェイク時にドライブをロックする(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 /lib/systemd/system-sleep/00start_my_connection

以下を新しいファイルに貼り付けます。

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

保存して閉じると、すべて完了です。


いいね!(そして愚かな人生のハックの必要はありません! すばらしい!)ピンのあるものを削除しますか?
Fabby

1
ありがとう!他に解決策がない人のために残しておいても大丈夫です。「ハック」の別の完全な意味です:)
Insperatus '16年

どうやら一時停止すると、ドライブが元に戻り、再びロックが解除されます。
Insperatus、2015年

サスペンド/ウェイクアップ時に呼び出される「サスペンド/ウェイクスクリプト」と呼ばれるものがあります。私もそこにソリューションを追加することをお勧めします(スクリプトへの絶対パスはありません。存在することを知っているだけです)
Fabby

1
うん、私も同様に推定した。ここここで解決策を確認します
Insperatus、2015年

1

私の情報はここで役立ちます:https : //bugs.launchpad.net/ubuntu/+source/eject/+bug/885051/comments/6

/ etc /ではなく/ lib /ディレクトリにあるファイルを編集しました 。Ubuntu14.04でコマンドが機能します。ject-i 1 / dev / sr0


残念ながら、これは私にはうまくいきません。
Insperatus、2015年

私のために働いた(ThinkPad T420のUbuntu 14.04、ランチパッドで提案されたgonzoのようにlibファイルを編集した)
mondjunge

実際、私はディレクトリ構造を台無しにしていた、あなたはこの答えで正しい道を進んでいた!
Insperatus 2017

1

他のすべてが失敗した場合:

ピン(怪我をするので針ではありません)を取り、DVDドライブのボタンの後ろにしっかりと押し込み、レバーとして使用してボタンを押し出します。次に、1mm幅のプラスチックの小片を、結果の穴よりも大きくし、隣にある小さな穴の上に置かないように注意しながら、接着剤を重ね、穴に接着します

これからは、次の2つの方法でDVDドライブを開きます。

  1. ダッシュからUbuntuの「イジェクト」を使用する
  2. このライフハックピンをPCの周りに置いて、プラスチックの横の小さな穴に押し込み、ラップトップの電源がオフのときにDVDを取り出します。(粘着テープを使用して、ライフハックピンをラップトップの下側に固定します)

1
しかし、私のCD-ROMドライブを破壊することは、トレイをソフトウェアでロックする方法に対する答えとして私が実際に期待するものではありません!これを行う前に、私は小さな段ボールを取り、ボタンのような形の穴を切り、イジェクトボタンの上にテープで留めて、たとえば膝で誤って触れないようにします。
バイトコマンダー

@ByteCommander:そのため、タイトルとして「他の方法がすべて失敗した場合」が巨大になります。 さらに、元のポスターはすでにそれ笑わせ、賛成ています。しかし、あなたのライフハックも答えに値すると思います!回答として投稿すると、2票が得られると思います。
Fabby

いい考えですが、変換できず、また書きたくありません。それが誰かを助けるなら、それは大丈夫です。また、コメントに賛成投票することもできます。ところで、質問ポスターから投票したことをどうやって知りたいですか?
バイトコマンダー

@ByteCommander:コメントに賛成票を投じても、担当者は得られません。別のコメントを残さない場合にのみ、コメントに賛成票を投じます。それは背中を軽くたたくようなものです。そして、追加コメントは大きな抱擁のようなものです!> :)
Fabby

@ByteCommander:通常、誰がアップ/ダウン投票するかわかりませんが、私はアップ投票が入ってくるのを見て、質問に行き、OPユーザーページに行き、「最後のアクティビティ:1分」を確認しました。だから私はそれが彼/彼女/それであると推定し、それも私に笑顔を与えました。
ファビー2015年

0

これを試して、ボタンがイジェクトしないようにします。

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

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

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


ソース:

14.04を実行しているMacBook Proを使用していて、イジェクトボタンがDelete / Backspaceの真上にあるため、誤って簡単に押すことができます(ディスクドライブのないMacBookの場合、そのボタンがPower用です)。代わりに、ショートカット設定を使用して、イジェクトボタンでラップトップをロックしました。12.04以降のすべてのソリューションを使用しています。


キーボードのボタンではなく、実際のドライブのボタンを押しているので、これは私にはうまくいきませんでした。
Insperatus、2015年

0

このサイトでeject -i 1うまくいかない場合にこの提案を見つけました:
sudo echo 1 > /proc/sys/dev/cdrom/lockロックする(ロックを解除するには1ではなく0)
だけでなくとしてdicussed他のいくつかのオプションがあります。

ここでは別のオプションを実行する短いCのソースコードは次のとおりです。リンク(上部のコメントにある新しいバージョンのバグ修正に注意して!)

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.