J'ai une mémoire flash USB, j'ai créé deux partitions dessus, quand il est connecté, il faut parfois sda, sda1 et sda4 au lieu de sdb, sdb1, sdb4. Pour éviter cette confusion, j'ai décidé de créer une règle udev afin de la lier de manière symétrique sous/dev de manière persistante.
J'ai créé la règle ci-dessous
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0461", ATTRS{idProduct}=="4d81", SYMLINK+="myusb"
Lorsque je redémarre, il crée un lien symbolique sous /dev/myusb
mais je ne peux pas le monter.
Sudo mount /dev/myusb /media/myusb
mount: /dev/bus/usb/002/003 is not a block device
Je pense avoir cette erreur car elle contient deux partitions. Alors, que dois-je faire?
Je pense que le problème est que vous ne pouvez pas monter un lecteur entier avec plusieurs partitions à la fois. Vous devez monter chaque partition pour elle-même. Monter signifie avoir accès au système de fichiers, qui peut être très différent sur deux partitions différentes. Et comment mettriez-vous deux systèmes de fichiers dans un répertoire? Vous devez avoir au moins deux sous-répertoires comme /media/myusb/part1
.
Cela dit, nous sommes revenus aux UUID et aux étiquettes.
Vous pouvez créer une règle udev déclenchant un script qui monte les deux partitions par leur uuid, comme
#!/bin/bash
mount /dev/disk/by-uuid/xxxxx-xxxx-xxxxx-xxxxxx /media/myusb/part1
mount /dev/disk/by-uuid/yyyyy-yyyy-yyyyyy-yyyyy /media/myusb/part2
Vous pouvez également placer les partitions dans/etc/fstab et laisser udev faire un mount -a
.
Utilisez 'blkid' pour imprimer l'identifiant unique universel pour un périphérique; cela peut être utilisé avec UUID = comme un moyen plus robuste de nommer des périphériques qui fonctionne même si des disques sont ajoutés et supprimés.
Peut-être que vous pourriez essayer ça:
Pour la partition un:
KERNEL=="sd?1", SUBSYSTEMS=="usb", ATTRS{idVendor}=="0461", ATTRS{idProduct}=="4d81", SYMLINK+="myusb1"
Pour la partition deux
KERNEL=="sd?4", SUBSYSTEMS=="usb", ATTRS{idVendor}=="0461", ATTRS{idProduct}=="4d81", SYMLINK+="myusb2"
Je ne sais pas si cela fonctionne, mais vous pouvez l'essayer.
https://Oracle-base.com/articles/linux/udev-scsi-rules-configuration-in-Oracle-linuxhttps://wiki.ubuntuusers.de/udev/
Tout d'abord, je tiens à remercier tous ceux qui ont répondu, ils m'ont guidé sur le bon chemin.
Au début, j'ai vérifié les dispositifs pour localiser la clé USB
fdisk -l
Disk /dev/sda: 15.5 GB, 15512174592 bytes
234 heads, 12 sectors/track, 10789 cylinders, total 30297216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00055ec3
Device Boot Start End Blocks Id System
/dev/sda1 * 16128 30297215 15140544 c W95 FAT32 (LBA)
/dev/sda4 2142880 5194399 1525760 0 Empty
Disk /dev/sdb: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders, total 234441648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000517fa
Device Boot Start End Blocks Id System
/dev/sdb2 * 2048 40959079 20478516 83 Linux
/dev/sdb3 40959998 234436544 96738273+ 5 Extended
/dev/sdb5 40960000 52956093 5998047 83 Linux
/dev/sdb6 52957184 221904895 84473856 83 Linux
/dev/sdb7 221906944 234436544 6264800+ 83 Linux
Ma clé USB a été saisie sda
sda1
et sda4
(je n'ai pas encore trouvé le moyen d'affecter sda au disque principal)
Puis j'ai fait un attribute-walk
pour obtenir les paramètres associés avec
udevadm info -a -p $(udevadm info -q path -n /dev/sda)
udevadm info -a -p $(udevadm info -q path -n /dev/sda1)
udevadm info -a -p $(udevadm info -q path -n /dev/sda4)
J'ai utilisé ATTRS{serial}
et ATTR{partition}==1
, ATTR{partition}==2
comme identifiants distinctifs.
KERNEL=="sd*", ATTRS{serial}=="0019E06B5883CCA187BC2C59", ATTR{partition}=="1", SYMLINK+="usbdevices"
fonctionne pour la partition 1