Comment créer correctement / dev / dvd?

10

Certains programmes recherchent /dev/dvdpar défaut les DVD. Lorsque je démarre mon ordinateur pour la première fois sans DVD inséré, /dev/dvdexiste et pointe vers le bon endroit ( /dev/sr0). Cependant, lorsque j'insère un DVD, /dev/dvddisparaît. Je voudrais qu'il reste, donc je n'ai pas à naviguer /dev/sr0dans les programmes qui recherchent des DVD. Comment puis-je m'assurer que le /dev/dvdlien symbolique existe et pointe vers le bon endroit?

Il semble que je puisse ajouter quelque chose /etc/udev/rules.d/70-persistent-cd.rules. Ce site donne quelques exemples, mais le 70-persistent-cd.rulesfichier dit "ajoutez l'indicateur ENV {GENERATED} = 1 à vos propres règles", ce qui ne fait pas partie des exemples. La man 7 udevpage est impénétrable pour moi, et je ne suis pas convaincu que la page liée donne 100% des informations dont j'ai besoin.

Alors, que puis-je faire sur un système Ubuntu 12.04 (ou ultérieur) moderne pour faire /dev/dvdtoujours exister et pointer vers le bon appareil?

EDIT: Est-ce aussi simple que d'ajouter ENV{GENERATED}=1aux règles de la page liée, quelque chose comme ceci:

SUBSYSTEM=="block", KERNEL=="sr0", SYMLINK+="dvd", GROUP="cdrom", ENV{GENERATED}=1

Est-ce la bonne information pour Ubuntu moderne? Que ENV{GENERATED}fait-il là, quand il n'a pas été généré, mais écrit à la main?

chazomaticus
la source
J'ai rencontré le même problème sur un Dell Inspiron 660s. Je souhaite qu'il y ait une meilleure réponse à ce problème.
Cerin

Réponses:

8

Ce tutoriel explique très bien comment faire ce que vous voulez:

Selon lui, il existe deux approches pour créer des liens symboliques. La première consiste à utiliser le nom du modèle et le numéro de série:

SUBSYSTEM=="block", ENV{ID_MODEL}=="...", ENV{ID_SERIAL}=="...", ENV{GENERATED}="1", SYMLINK+="dvd"

De cette façon, le lien symbolique restera correct même si vous déplacez le lecteur vers différentes positions sur le bus IDE, mais le /dev/dvdlien symbolique ne sera pas créé si vous remplacez le lecteur.

Le second est basé sur l'emplacement de l'appareil sur le bus:

SUBSYSTEM=="block", ENV{ID_TYPE}=="...", ENV{ID_PATH}=="pci-...", ENV{GENERATED}="1", SYMLINK+="dvd"

De cette façon, le lien symbolique restera correct même si vous remplacez des disques par des modèles différents, mais placez-les aux mêmes positions sur le bus IDE. La ENV{ID_TYPE}clé s'assure que le lien symbolique disparaît si vous mettez autre chose qu'un DVD dans cette position sur le bus.

Vous pouvez trouver les valeurs ID_MODEL, ID_SERIAL, ID_TYPEet en ID_PATHutilisant la commande suivante (la udevtestcommande comme dans le tutoriel ne fonctionne pas - plus - dans Ubuntu?):

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

La SUBSYSTEM=="block"clé est nécessaire pour éviter de faire correspondre les périphériques génériques SCSI. Sans cela, dans le cas du DVD SCSI, le lien symbolique pointera parfois vers les bons /dev/sr0périphériques, et parfois vers /dev/sg0, ce qui est faux.

La ENV{GENERATED}="1"clé est nécessaire pour empêcher le 75-cd-aliases-generator.rulesfichier udev de remplacer vos règles personnalisées.

Radu Rădeanu
la source
Merci pour toutes ces informations. Je suis allé essayer certaines de ces règles, mais j'ai constaté que mon /dev/dvdlien symbolique s'était corrigé comme par magie au cours des derniers mois. J'ai également lu dans ce bug que /dev/dvdles jours sont comptés. Tant pis. Pour l'instant, votre réponse semble donner toutes les informations nécessaires pour résoudre ce problème.
chazomaticus
0

J'ai trouvé cela sur un forum fedora peut aider:

Créer un fichier de script shell Dans ce fichier, mettez:

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

Assurez-vous que le fichier est exécutable:

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

Si vous allez utiliser la route rc.local, vous devez également le faire, en tant que root:

systemctl enable rc-local.service

car il n'est pas activé par défaut

source: http://forums.fedoraforum.org/showthread.php?t=295048

--------- La manière préférée de nos jours serait une règle UDev --------------

Basé sur /lib/udev/rules.d/60-cdrom_id.rules, qui crée le lien symbolique / dev / cdrom, essayez d'ajouter un fichier /etc/udev/rules.d/60-dvd.rules contenant:

KERNEL=="sr0", SYMLINK+="dvd", OPTIONS+="link_priority=-100"
Cester Nilap
la source