Como posso criar /dev/dvd corretamente?

Como posso criar /dev/dvd corretamente?

Certos programas procuram /dev/dvdpor padrão encontrar DVDs. Quando inicializo meu computador pela primeira vez sem um DVD inserido, /dev/dvdexiste e aponta para o local correto ( /dev/sr0). Porém, quando insiro um DVD, /dev/dvddesaparece. Eu gostaria que ele permanecesse para não precisar navegar /dev/sr0em programas que procuram DVDs. Como posso garantir que o /dev/dvdlink 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.rulesarquivo diz "adicione o sinalizador ENV{GENERATED}=1 às suas próprias regras", o que não faz parte dos exemplos. A man 7 udevpá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/dvdsempre exista e aponte para o dispositivo certo?

EDIT: É tão simples quanto adicionar ENV{GENERATED}=1regras 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/dvdlink 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_SERIALe usando o seguinte comando (o comando como no tutorial não funciona mais? - no Ubuntu) ID_TYPE:ID_PATHudevtest

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/sr0dispositivos 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.rulesarquivo 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"

informação relacionada