Aktivieren Sie das Sperren des Laufwerks
(Hinweis: Wenn dies eject -i on
bereits funktioniert, können Sie mit "Sperren des Laufwerks beim Start" fortfahren.)
Kopieren Sie zunächst /lib/udev/rules.d/60-cdrom_id.rules
nach /etc/udev/rules.d/
Belieben:
cp /lib/udev/rules.d/60-cdrom_id.rules /etc/udev/rules.d/
Bearbeiten Sie als Nächstes /etc/udev/rules.d/60-cdrom_id.rules und kommentieren Sie die problematische Zeile aus:
sudoedit /etc/udev/rules.d/60-cdrom_id.rules
Suchen Sie diese Zeile:
ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $devnode", GOTO="cdrom_end"
#
Fügen Sie nun ein (dies "kommentiert" die Zeile aus, wodurch sie effektiv gelöscht wird, ohne sie zu löschen) vor, damit sie so aussieht:
# ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $devnode", GOTO="cdrom_end"
Speichern und schließen Sie nun, indem Sie Ctrl+ drücken X, dann Ybestätigen und anschließend Enterden aktuellen Dateinamen akzeptieren. Machen Sie sich keine Sorgen, dass es sich um einen seltsamen temporären Dateinamen handelt. So funktioniert sudoedit.
Jetzt sollten Sie in der Lage sein, die Hardwaretaste des optischen Laufwerks (im Wesentlichen sperren wir das Laufwerk) folgendermaßen zu deaktivieren:
eject -i on /dev/sr0
~ oder ~ eject -i 1 /dev/sr0
Sie machen das Gleiche.
Sperren Sie das Laufwerk beim Start
Um dies nützlicher zu machen, wollte ich, dass dieser Befehl beim Start wirksam wird. Ich habe das GUI-Programm "Startup Applications" (in Ubuntu vorinstalliert, finde es mit Dash) verwendet, um dies zu erreichen.
Öffnen Sie das Programm und klicken Sie auf die Schaltfläche "Hinzufügen". Ein neues Dialogfeld wird geöffnet.
Geben Sie einen Namen ein (ich habe das beschreibende "Optisches Laufwerk sperren" verwendet) und geben Sie in das Feld "Befehl:" ein bash -c 'eject -i on /dev/sr0'
Klicken Sie auf "Hinzufügen", um das Programm abzuschließen und dann zu schließen.
Fügen Sie eine Tastenkombination hinzu
Jetzt ist das optische Laufwerk beim Start gesperrt. Aber wie öffne ich das Laufwerk, wenn ich es verwenden muss?! Um es einfach zu machen, habe ich die Befehle in eine Tastenkombination "Auswerfen" eingefügt, mit der das Laufwerk entsperrt, das Laufwerk ausgeworfen und das Laufwerk erneut gesperrt wird. Auf diese Weise kann ich immer noch leicht auf das Laufwerk zugreifen, aber die Hardware-Taste ist nie ein Problem.
So führen Sie diese Tastenkombination aus:
- Öffnen Sie das Programm "Tastatur" im Dash.
- Klicken Sie auf die Registerkarte "Verknüpfungen"
- Klicken Sie unten in der Liste auf "Benutzerdefinierte Verknüpfungen"
- Klicken Sie auf das "+" - Zeichen. Ein neues Dialogfeld wird geöffnet
- Nennen Sie die Verknüpfung (ich habe "CD entsperren, auswerfen, erneut sperren").
Geben Sie dies in das Feld "Befehl:" ein:
bash -c 'eject -i off /dev/sr0 && eject /dev/sr0 && eject -i on /dev/sr0'
Klicken Sie auf "Übernehmen"
Klicken Sie rechts neben dem Namen Ihrer Verknüpfung auf "Deaktiviert". Sobald Sie darauf klicken, ändert sich "Deaktiviert" in "Neuer Beschleuniger":
Drücken Sie die Tastenkombination, die Sie verwenden möchten. Ich habe Ctrl+ Alt+ benutztE
Sie können die Verknüpfung dann sofort testen. Wenn alles in Ordnung ist und Sie fertig sind!
Sperren des Laufwerks beim Aufwecken aus dem Suspend (Methode vor dem System)
Ich habe festgestellt, dass mein Laufwerk nach dem Fortsetzen von Suspend wieder entsperrt wird. Daher habe ich ein Skript erstellt, um sicherzustellen, dass das Laufwerk in diesem Fall gesperrt bleibt.
Erstellen Sie die Skriptdatei:
sudoedit /usr/lib/pm-utils/sleep.d/99lock-optical
Fügen Sie Folgendes in die neue Datei ein:
#!/bin/sh
# lock the optical drive upon resume from suspend
case "${1}" in
resume|thaw)
eject -i 1 /dev/sr0
;;
esac
Laufwerk beim Aufwecken vom Suspend sperren (systemd-Methode)
Ich verwende jetzt 19.04 und habe festgestellt, dass mein Laufwerk beim Fortsetzen der Unterbrechung entsperrt wurde. Diese Methode sorgt dafür, dass es gesperrt bleibt:
Erstellen Sie die Skriptdatei:
sudoedit /lib/systemd/system-sleep/00start_my_connection
Fügen Sie Folgendes in die neue Datei ein:
#!/bin/sh
if [ $1 = post ]
then eject -i 1 /dev/sr0
fi
Speichern und schließen und fertig!