
Nota: La respuesta ahora se actualizó para funcionar en 19.04
Estoy en 14.04 y accidentalmente abro mi unidad de CD/DVD/Bluray unas 20 veces al día. He analizado algunas preguntas aquí que no proporcionaron una solución funcional.
Ambosesta preguntayesta preguntaparecen estar desactualizados: la solución ofrecida no funciona.
Cuando lo hago, eject -i on
me encuentro coneject: unable to find or open device for: 'cdrom'
Cuando lo hago, eject -i on /dev/sr0
obtengo una respuesta más favorable: CD-Drive may NOT be ejected with device button
sin embargo, lamentablemente el botón todavía está habilitado.
La información de /proc/sys/dev/cdrom/info
sugiere que el bloqueo es posible:
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
esta respuestatiene una solución funcional que corrige una regla UDEV para permitir bloquear la unidad. Agregué información práctica a la solución, lo que permite:
- Deshabilite el botón de expulsión del hardware de la unidad óptica al inicio
- Agregue un atajo de teclado para expulsar la unidad óptica
- Asegúrese de que la unidad permanezca bloqueada después de salir de la suspensión
Respuesta1
Habilitar el bloqueo de la unidad
(nota: si eject -i on
ya funciona, puede pasar a "Bloquear la unidad al iniciar")
Primero, copia /lib/udev/rules.d/60-cdrom_id.rules
para que /etc/udev/rules.d/
te guste:
cp /lib/udev/rules.d/60-cdrom_id.rules /etc/udev/rules.d/
A continuación, edite /etc/udev/rules.d/60-cdrom_id.rules
y comente la línea problemática:
sudoedit /etc/udev/rules.d/60-cdrom_id.rules
Localice esta línea:
ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $devnode", GOTO="cdrom_end"
Ahora agregue un #
(esto "comenta" la línea, anulándola efectivamente sin eliminarla) al frente para que se vea así:
# ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $devnode", GOTO="cdrom_end"
Ahora guarde y cierre presionando Ctrl+ X, luego Ypara confirmar, seguido de Enteraceptar el nombre del archivo actual. No te preocupes si aparece como un nombre de archivo temporal extraño, así es como funciona Sudoedit.
Ahora deberías poder desactivar el botón de hardware de la unidad óptica (esencialmente estamos bloqueando la unidad) con esto:
eject -i on /dev/sr0
o eject -i 1 /dev/sr0
Ellos hacen lo mismo.
Bloquear la unidad al iniciar
Para que esto sea más útil, quería que este comando surtiera efecto al iniciar. Usé la GUIAplicaciones de inicioprograma (preinstalado en Ubuntu, encuéntrelo con Dash) para lograr esto.
Abra el programa y luego haga clic enAgregar, se abre un nuevo cuadro de diálogo.
Escriba un nombre (yo elegí el descriptivo "Bloquear unidad óptica") y dentro delDominio:entrar en el campobash -c 'eject -i on /dev/sr0'
Hacer clicAgregarpara completar y luego cerrar el programa.
Agregar un atajo de teclado
Ahora la unidad óptica está bloqueada al inicio. Pero, ¿cómo abriré el disco cuando necesite usarlo? Para hacerlo simple, pongo los comandos en un atajo de teclado de "expulsión" que desbloquea la unidad, la expulsa y luego la vuelve a bloquear. De esta manera todavía puedo acceder fácilmente a la unidad, pero el botón de hardware nunca es un problema.
A continuación se explica cómo realizar este atajo de teclado:
Abre elTecladoprograma que se encuentra dentro del Dash.
Haga clic en elAtajospestaña
Haga clic enAtajos personalizadosal final de la lista
Clickea en el+firmar, se abrirá un nuevo cuadro de diálogo
Nombra el acceso directo (yo usé "Desbloquear, expulsar, volver a bloquear CD")
Introduzca esto en elDominio:campo:
bash -c 'eject -i off /dev/sr0 && eject /dev/sr0 && eject -i on /dev/sr0'
Hacer clicAplicar
Haga clic a la derecha del nombre de su acceso directo donde diceDesactivado. Una vez que hagas clic en él,Desactivadocambios aNuevo acelerador:
Presione la combinación de teclas que desea utilizar. Yo usé Ctrl+ Alt+E
Luego podrá probar el acceso directo inmediatamente. Si todo está bien cierra y ¡listo!
Bloquear la unidad al reactivarse desde la suspensión (método anterior al sistema)
He notado que mi unidad se desbloquea nuevamente al salir de la suspensión, por lo que creé una secuencia de comandos para garantizar que la unidad permanezca bloqueada en este caso.
Cree el archivo de secuencia de comandos:
sudoedit /usr/lib/pm-utils/sleep.d/99lock-optical
Pegue lo siguiente en el nuevo archivo:
#!/bin/sh
# lock the optical drive upon resume from suspend
case "${1}" in
resume|thaw)
eject -i 1 /dev/sr0
;;
esac
Bloquear la unidad al reactivarse desde la suspensión (método systemd)
Estoy usando 19.04 ahora y noté que mi unidad se estaba desbloqueando al reanudar desde la suspensión. Este método funciona para que permanezca bloqueado:
Cree el archivo de secuencia de comandos:
sudoedit /usr/lib/systemd/system-sleep/00start_my_connection
Pegue lo siguiente en el nuevo archivo:
#!/bin/sh
if [ $1 = post ]
then eject -i 1 /dev/sr0
fi
Guarde y cierre el archivo, hágalo ejecutable y ¡listo!
Respuesta2
Para mí la información aquí ayuda: https://bugs.launchpad.net/ubuntu/+source/eject/+bug/885051/comments/6
Edité el archivo en/lib/directorio, no en/etc/ Ahora en mi Ubuntu 14.04 el comando funciona: eject -i 1 /dev/sr0
Respuesta3
Pruebe esto para que el botón no se expulse:
Abierto:Ajustes del sistema>Teclado>Atajos>Sonido y Medios
Seleccione "Expulsar" y borre el acceso directo (presionando "Retroceso").
Puedes usar la configuración de acceso directo para que haga algo más útil, como abrir una aplicación de uso común, bloquear la pantalla o restablecer tu wifi.
Fuente:
Tengo una MacBook Pro con versión 14.04 y el botón de expulsión está justo encima de Eliminar/Retroceso, lo que hace que sea fácil presionarlo accidentalmente (es peor para las MacBooks sin unidades de disco donde ese botón es para Encendido). Usé la configuración de acceso directo para hacer que el botón de expulsión bloqueara mi computadora portátil. He utilizado esta solución desde el 12.04 y todo lo demás.
Respuesta4
En estesitioEncontré esta sugerencia si eject -i 1
no funciona:
sudo echo 1 > /proc/sys/dev/cdrom/lock
bloquear (0 en lugar de 1 para desbloquear).
También se analizan otras opciones.
Aquí hay un breve código fuente en C que realiza otra opción:enlace(¡Observe la corrección de errores para versiones más recientes en los comentarios superiores!)
Pero leí en otros foros que todos estos comandos de expulsión sólo cambian el estado de bloqueo de la unidad cuando se inserta y monta un disco. La única solución parece ser una herramienta llamada cdctl
, pero no es muy compatible con muchos sistemas, según estudié los comentarios.