web-dev-qa-db-fra.com

Les règles udev personnalisées ne fonctionneront pas

J'essaie de définir un udev personnalisé pour définir le point de montage/dev/sd ** pour les 6 disques durs de mon système.

J'ai essayé de le faire fonctionner, mais ce n'est pas normal. J'ai besoin de faire le tri parce que mes disques semblent changer aléatoirement les dégâts avec mes liens et bibliothèques. 5 de mes disques sont cryptés en vrai et je ne peux donc pas utiliser UUID pour monter sur des points spécifiques.

C'est ce que j'ai essayé d'utiliser. Im exécutant Ubuntu 13.04 ans et ont enregistré le fichier dans /lib/udev/rules.d/65-persistent-hdd.rules

# These are the rules to force all drives into specific /dev/sd** slots for truecrypt mounting
#
KERNEL=="sd*", SUBSYSTEMS==" block", ATTRS{serial}=="3PK0R7AD", SYMLINK+="sda%n"
KERNEL=="sd*", SUBSYSTEMS==" block", ATTRS{serial}=="S1UVJ1LZ401091", SYMLINK+="sdb%n"
KERNEL=="sd*", SUBSYSTEMS==" block", ATTRS{serial}=="S1VSJ1KS202775", SYMLINK+="sdc%n"
KERNEL=="sd*", SUBSYSTEMS==" block", ATTRS{serial}=="W1F08BLH", SYMLINK+="sdd%n"
KERNEL=="sd*", SUBSYSTEMS==" block", ATTRS{serial}=="S1Y6J90SA14564", SYMLINK+="sde%n"
KERNEL=="sd*", SUBSYSTEMS==" block", ATTRS{serial}=="S13PJDWS223047", SYMLINK+="sdf%n"

Donc, comme vous le voyez, j'essaye de forcer {serial} == "3PK0R7AD" à/dev/sda, {serial} == "S1UVJ1LZ401091" à/dev/sdb, etc, etc.

4
7hr08ik

Je ne suis pas sûr à 100% mais je pense que le problème est SYMLINK + = utilisera le/dev/NAME par défaut et n'ajoutera qu'un lien symbolique supplémentaire. Vous ne pouvez donc probablement pas créer de liens symboliques vers des appareils qui existent déjà?

Utilisez plutôt NAME = "sda"

De http://www.reactivated.net/writing_udev_rules.html

Après avoir utilisé une série de clés de correspondance pour correspondre précisément à un périphérique, udev vous donne un contrôle précis sur ce qui se passe ensuite, grâce à une gamme de clés d'affectation. Pour une liste complète des clés d'affectation possibles, consultez la page de manuel udev. Les clés d'affectation les plus élémentaires sont présentées ci-dessous. D'autres seront présentés plus loin dans ce document. NAME - le nom qui doit être utilisé pour le nœud de périphérique SYMLINK - une liste de liens symboliques qui agissent comme des noms alternatifs pour le nœud de périphérique

Comme indiqué ci-dessus, udev ne crée qu'un seul véritable nœud de périphérique pour un seul périphérique. Si vous souhaitez fournir des noms alternatifs pour ce nœud de périphérique, vous utilisez la fonctionnalité de lien symbolique. Avec l'affectation SYMLINK, vous gérez en fait une liste de liens symboliques, qui seront tous dirigés vers le nœud de périphérique réel. Pour manipuler ces liens, nous introduisons un nouvel opérateur à ajouter aux listes: + =. Vous pouvez ajouter plusieurs liens symboliques à la liste à partir de n'importe quelle règle en les séparant chacun par un espace.

KERNEL == "hdb", NAME = "my_spare_disk"

La règle ci-dessus dit: correspond à un périphérique qui a été nommé par le noyau en tant que hdb, et au lieu de l'appeler hdb, nommez le nœud du périphérique en tant que my_spare_disk. Le nœud de périphérique apparaît dans /dev/my_spare_disk.

KERNEL == "hdb", DRIVER == "ide-disk", SYMLINK + = "sparedisk" La règle ci-dessus dit: correspond à un périphérique qui a été nommé par le noyau comme hdb ET où le pilote est ide-disk. Nommez le nœud de périphérique avec le nom par défaut et créez un lien symbolique vers celui-ci nommé sparedisk. Notez que nous n'avons pas spécifié de nom de nœud de périphérique, donc udev utilise la valeur par défaut. Afin de conserver la disposition standard/dev, vos propres règles laisseront généralement le NOM tranquille mais créeront des SYMLINK et/ou effectueront d'autres affectations. *

Cela ne fonctionne pas pour moi, mais je ne sais pas où est mon problème dans mes règles udev car le débogage ne les montre même pas en cours de traitement. J'espère que cela vous aide

J'essaie de faire la même chose et de forcer mes appareils à être spécifiques/dev/sdX et je sais que les gens se demandent pourquoi, mais certaines personnes veulent ce niveau de contrôle sur leurs appareils.

3
Dave