Nota: Resposta agora atualizada para funcionar sob 19.04
Estou no 14.04 e acidentalmente abro minha unidade de cd / dvd / bluray cerca de 20 vezes por dia. Analisei algumas perguntas aqui que não forneciam solução de trabalho.
Tanto esta questão como esta parecem desatualizadas - a solução oferecida não funciona.
Quando eu faço, eject -i on
me deparo comeject: unable to find or open device for: 'cdrom'
Quando o faço, eject -i on /dev/sr0
recebo uma resposta mais favorável: CD-Drive may NOT be ejected with device button
no entanto, infelizmente, o botão ainda está ativado.
As informações de /proc/sys/dev/cdrom/info
sugerem que o bloqueio é possível:
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 resposta possui uma solução funcional que corrige uma regra UDEV para permitir o bloqueio da unidade. Adicionei algumas informações práticas à solução, permitindo:
- Desativar o botão de ejeção do hardware da unidade óptica na inicialização
- Adicione um atalho de teclado para ejetar a unidade óptica
- Certifique-se de que a unidade permaneça travada após acordar da suspensão
Respostas:
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:Em seguida, edite o /etc/udev/rules.d/60-cdrom_id.rules e comente a linha problemática:
Localize esta linha:
Agora adicione um
#
(isso "comenta" a linha, anulando-a efetivamente sem excluir) na frente para torná-la assim: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:
Digite isso no campo "Comando:":
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:
Cole o seguinte no novo arquivo:
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:
Cole o seguinte no novo arquivo:
Salve e feche e está tudo pronto!
fonte
Para mim, as informações aqui ajudam: https://bugs.launchpad.net/ubuntu/+source/eject/+bug/885051/comments/6
Eu editei o arquivo no diretório / lib / , não no / etc / Agora, no meu comando Ubuntu 14.04 funciona: eject -i 1 / dev / sr0
fonte
Se todo o resto falhar:
Pegue um alfinete (não uma agulha, pois você se machucará), empurre-o firmemente atrás do botão na unidade de DVD e use-o como uma alavanca para puxar o botão. Em seguida, pegue um pequeno pedaço de plástico 1 mm mais largo e maior que o orifício resultante, coloque um pouco de super cola e cole no orifício, tomando cuidado para não colocá-lo sobre o orifício minúsculo ao lado .
A partir de agora, use os 2 métodos a seguir para abrir a unidade de DVD:
fonte
Tente fazer isso para que o botão não seja ejetado:
Abra: Configurações do sistema > Teclado > Atalhos > Som e mídia
Selecione "Ejetar" e limpe o atalho (pressionando "Backspace").
Você pode usar as configurações de atalho para fazer algo mais útil, como abrir um aplicativo comumente usado, bloquear sua tela ou redefinir seu wifi.
Fonte:
Eu tenho um MacBook Pro executando o 14.04 e o botão de ejeção está no topo de Excluir / Backspace, o que o pressiona facilmente acidentalmente (é pior para MacBooks sem unidades de disco em que esse botão é para energia). Utilizei as configurações de atalho para fazer com que o botão de ejeção bloqueie meu laptop. Usam esta solução desde 12.04 e tudo mais.
fonte
Neste site , encontrei esta sugestão se
eject -i 1
não funcionar:sudo echo 1 > /proc/sys/dev/cdrom/lock
para bloquear (0 em vez de 1 para desbloquear)Existem outras opções discutidas também.
Aqui está um pequeno código-fonte c executando outra opção: link (observe a correção de bug para versões mais recentes nos comentários superiores!)
Mas li em alguns outros fóruns que todos esses comandos de ejeção alteram apenas o status de bloqueio da unidade quando um disco é inserido e montado. A única solução parece ser uma ferramenta chamada
cdctl
, mas não é muito compatível com muitos sistemas, como estudei os comentários.fonte