Ativar bloqueio da unidade
(nota: se eject -i on
já estiver funcionando, você pode pular para "Bloquear a unidade na inicialização")
Primeiro, copie /lib/udev/rules.d/60-cdrom_id.rules
para /etc/udev/rules.d/
o seguinte:
cp /lib/udev/rules.d/60-cdrom_id.rules /etc/udev/rules.d/
Em seguida, edite o /etc/udev/rules.d/60-cdrom_id.rules e comente a linha problemática:
sudoedit /etc/udev/rules.d/60-cdrom_id.rules
Localize esta linha:
ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $devnode", GOTO="cdrom_end"
Agora adicione um #
(isso "comenta" a linha, anulando-a efetivamente sem excluir) na frente para torná-la assim:
# ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $devnode", GOTO="cdrom_end"
Agora salve e feche pressionando Ctrl+ X, depois Ypara confirmar e depois Enterpara aceitar o nome do arquivo atual. Não se preocupe, pois ele aparece como um nome de arquivo temporário estranho, é assim que o sudoedit funciona.
Agora você deve poder desativar o botão de hardware da unidade óptica (basicamente estamos bloqueando a unidade) com isso:
eject -i on /dev/sr0
~ ou ~ eject -i 1 /dev/sr0
Eles fazem o mesmo.
Bloquear a unidade na inicialização
Para tornar isso mais útil, eu queria que esse comando tivesse efeito na inicialização. Eu usei o programa GUI "Startup Applications" (pré-instalado no Ubuntu, localize-o no Dash) para fazer isso.
Abra o programa e clique no botão "Adicionar", uma nova caixa de diálogo é aberta.
Digite um nome (fui com o descritivo "Bloquear unidade óptica") e, no campo "Comando:", digite bash -c 'eject -i on /dev/sr0'
Clique em "Adicionar" para concluir e feche o programa.
Adicionar um atalho de teclado
Agora a unidade óptica está bloqueada na inicialização. Mas como vou abrir a unidade quando precisar usá-la ?! Para simplificar, coloquei os comandos em um atalho de teclado "ejetar" que desbloqueia a unidade, ejeta a unidade e, em seguida, reinicia a unidade. Dessa forma, ainda posso acessar facilmente a unidade, mas o botão de hardware nunca é um problema.
Veja como realizar esse atalho de teclado:
- Abra o programa "Teclado" encontrado no Dash.
- Clique na guia "Atalhos"
- Clique em "Atalhos personalizados" na parte inferior da lista
- Clique no sinal "+", uma nova caixa de diálogo será aberta
- Nomeie o atalho (usei "Desbloquear, Ejetar, CD de desbloqueio")
Digite isso no campo "Comando:":
bash -c 'eject -i off /dev/sr0 && eject /dev/sr0 && eject -i on /dev/sr0'
Clique em "Aplicar"
Clique à direita do nome do seu atalho, onde diz "Desativado". Depois de clicar nele, "Desativado" muda para "Novo acelerador":
Pressione a combinação de teclas que deseja usar. Eu usei Ctrl+ Alt+E
Você pode testar o atalho imediatamente. Se tudo estiver bem perto e pronto!
Bloquear unidade ao acordar da suspensão (método pré-systemd)
Percebi que minha unidade é desbloqueada novamente ao retomar a suspensão, por isso criei um script para garantir que a unidade permaneça bloqueada nesse caso.
Crie o arquivo de script:
sudoedit /usr/lib/pm-utils/sleep.d/99lock-optical
Cole o seguinte no novo arquivo:
#!/bin/sh
# lock the optical drive upon resume from suspend
case "${1}" in
resume|thaw)
eject -i 1 /dev/sr0
;;
esac
Bloquear unidade ao acordar da suspensão (método systemd)
Agora estou usando o 19.04 e notei que minha unidade estava sendo desbloqueada ao retomar a suspensão. Este método funciona para mantê-lo bloqueado:
Crie o arquivo de script:
sudoedit /lib/systemd/system-sleep/00start_my_connection
Cole o seguinte no novo arquivo:
#!/bin/sh
if [ $1 = post ]
then eject -i 1 /dev/sr0
fi
Salve e feche e está tudo pronto!