Como posso criar corretamente o / dev / dvd?

10

Certos programas procuram /dev/dvd por padrão para encontrar DVDs. Quando inicializo meu computador pela primeira vez sem um DVD inserido, /dev/dvd existe e aponta para o local correto ( /dev/sr0 ). No entanto, quando insiro um DVD, /dev/dvd desaparece. Eu gostaria que ele ficasse por aqui, então eu não tenho que navegar para /dev/sr0 em programas que estão procurando por DVDs. Como posso garantir que o symlink /dev/dvd exista e aponte para o lugar certo?

Parece que posso adicionar algo a /etc/udev/rules.d/70-persistent-cd.rules . Este site fornece alguns exemplos, mas o arquivo 70-persistent-cd.rules diz "adicione o sinalizador ENV {GENERATED} = 1 a suas próprias regras ", que não faz parte dos exemplos. A página man 7 udev é 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 moderno, Ubuntu 12.04 (ou posterior) para fazer com que /dev/dvd sempre exista e aponte para o dispositivo correto?

EDIT: É tão simples quanto adicionar ENV{GENERATED}=1 às 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 é ENV{GENERATED} fazendo lá, quando não foi gerado, mas escrito à mão?

    
por chazomaticus 28.04.2012 / 08:36

2 respostas

8

Este tutorial explica muito bem como fazer o que você quer:

  • Criando links simbólicos personalizados para dispositivos

De acordo com ele, existem duas abordagens para criar links simbólicos. O primeiro é 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"

Desta forma, o link simbólico permanecerá correto mesmo que você mova o drive para posições diferentes no barramento IDE, mas o link simbólico /dev/dvd não será criado se você substituir a unidade.

O segundo é baseado 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 que você substitua os drives por modelos diferentes, mas coloque-os nas mesmas posições no barramento IDE. A tecla ENV{ID_TYPE} garante que o symlink desapareça se você colocar algo diferente de um DVD nessa posição no barramento.

Você pode encontrar os valores para ID_MODEL , ID_SERIAL , ID_TYPE e ID_PATH usando o seguinte comando (o comando udevtest como no tutorial não funciona mais? - no Ubuntu):

udevadm info --query=all --name=sr0

A chave SUBSYSTEM=="block" é 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 dispositivos /dev/sr0 corretos e, às vezes, para /dev/sg0 , o que está errado.

A chave ENV{GENERATED}="1" é necessária para impedir que o arquivo udev 75-cd-aliases-generator.rules substitua suas regras personalizadas.

    
por Radu Rădeanu 03.11.2013 / 08:22
0

Eu encontrei isso em um fórum fedora pode ajudar:

Crie um arquivo de script de shell Nesse arquivo, coloque:

#!/bin/bash
ln -s /dev/sr0 /dev/dvd

Verifique se o arquivo é executável:

sudo chmod +x /etc/rc.d/rc.local

Se você vai usar a rota rc.local, você também precisa fazer isso, como root:

systemctl enable rc-local.service

porque não está ativado por padrão

source: link

--------- A maneira preferida nos dias de hoje seria uma regra do UDev --------------

Baseado 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"
    
por Cester Nilap 06.11.2013 / 10:48

Tags