Certos programas procuram /dev/dvd
por padrão encontrar DVDs. Quando inicializo meu computador pela primeira vez sem um DVD inserido, /dev/dvd
existe e aponta para o local correto ( /dev/sr0
). Porém, quando insiro um DVD, /dev/dvd
desaparece. Eu gostaria que ele permanecesse para não precisar navegar /dev/sr0
em programas que procuram DVDs. Como posso garantir que o /dev/dvd
link simbólico exista e aponte para o lugar certo?
Parece que posso adicionar algo ao arquivo /etc/udev/rules.d/70-persistent-cd.rules
. Esse sitedá alguns exemplos, mas o 70-persistent-cd.rules
arquivo diz "adicione o sinalizador ENV{GENERATED}=1 às suas próprias regras", o que não faz parte dos exemplos. A man 7 udev
página é impenetrável para mim e não estou convencido de que a página vinculada forneça 100% das informações de que preciso.
Então, o que posso fazer em um sistema Ubuntu 12.04 (ou posterior) moderno para que /dev/dvd
sempre exista e aponte para o dispositivo certo?
EDIT: É tão simples quanto adicionar ENV{GENERATED}=1
regras na página vinculada, algo assim:
SUBSYSTEM=="block", KERNEL=="sr0", SYMLINK+="dvd", GROUP="cdrom", ENV{GENERATED}=1
Essa é a informação correta para o Ubuntu moderno? O que está ENV{GENERATED}
acontecendo ali, quando não foi gerado, mas escrito à mão?
Responder1
Este tutorial explica muito bem como fazer o que você deseja:
Segundo ele, existem duas abordagens para a criação de links simbólicos. A primeira é usar o nome do modelo e o número de série:
SUBSYSTEM=="block", ENV{ID_MODEL}=="...", ENV{ID_SERIAL}=="...", ENV{GENERATED}="1", SYMLINK+="dvd"
Dessa forma, o link simbólico permanecerá correto mesmo se você mover a unidade para posições diferentes no barramento IDE, mas o /dev/dvd
link simbólico não será criado se você substituir a unidade.
A segunda é baseada na localização do dispositivo no barramento:
SUBSYSTEM=="block", ENV{ID_TYPE}=="...", ENV{ID_PATH}=="pci-...", ENV{GENERATED}="1", SYMLINK+="dvd"
Dessa forma, o link simbólico permanecerá correto mesmo se você substituir as unidades por modelos diferentes, mas colocá-las nas mesmas posições no barramento IDE. A ENV{ID_TYPE}
chave garante que o link simbólico desapareça se você colocar algo diferente de um DVD naquela posição no barramento.
Você pode encontrar os valores para ID_MODEL
, ID_SERIAL
e usando o seguinte comando (o comando como no tutorial não funciona mais? - no Ubuntu) ID_TYPE
:ID_PATH
udevtest
udevadm info --query=all --name=sr0
A SUBSYSTEM=="block"
chave é necessária para evitar a correspondência de dispositivos genéricos SCSI. Sem ele, no caso do DVD SCSI, o link simbólico às vezes apontará para os /dev/sr0
dispositivos corretos, e às vezes para /dev/sg0
, o que está errado.
A ENV{GENERATED}="1"
chave é necessária para evitar que o 75-cd-aliases-generator.rules
arquivo udev substitua suas regras personalizadas.
Responder2
Encontrei isso em um fórum do fedora que pode ajudar:
Crie um arquivo de script de shell Nesse arquivo, coloque:
#!/bin/bash
ln -s /dev/sr0 /dev/dvd
Certifique-se de que o arquivo seja executável:
sudo chmod +x /etc/rc.d/rc.local
Se você for usar a rota rc.local, você também precisará fazer isso, como root:
systemctl enable rc-local.service
porque não está habilitado por padrão
fonte:http://forums.fedoraforum.org/showthread.php?t=295048
---------A forma preferida hoje em dia seria uma regra UDev--------------
Com base em /lib/udev/rules.d/60-cdrom_id.rules, que cria o link simbólico /dev/cdrom, tente adicionar um arquivo /etc/udev/rules.d/60-dvd.rules contendo:
KERNEL=="sr0", SYMLINK+="dvd", OPTIONS+="link_priority=-100"