J'ai un disque dur externe avec un volume logique fonctionnant parfaitement qui peut être monté avec:udisksctl mount -b /dev/mapper/wd0hdd-wd0
Il va créer un nouveau répertoire sous /media/username/wd
Qui est le comportement attendu puisque wd
est l'étiquette de mon disque wd0
Le nom de mon volume logique et username
mon nom d'utilisateur.
Cependant, j'aimerais que ce volume logique puisse être monté automatiquement (sans taper cette commande) lorsque je branche le disque dur externe, tout comme udisks2 le fait généralement avec une partition linux standard (non lvm). [Problème1]
De plus, j'ai remarqué que /media/username/wd
Appartient à root: root avec 755 droits ce qui est problématique car je ne peux pas créer de fichiers/répertoire à la racine de ma partition en tant qu'utilisateur normal. Pour la partition linux standard, le répertoire créé appartient à username
ce qui est attendu [Problème2]
Enfin, Nautilus n'affiche pas le volume dans le volet gauche comme d'habitude pour la partition linux standard, mais plutôt dans Other Locations
. Cependant, l'extension gnome Place Status Indicator
Répertorie correctement le nouveau wd
sous mes autres lecteurs. [Problème3]
Trouvez un moyen de dire à udisks2 de considérer qu'un volume logique donné doit être monté automatiquement en tant que support amovible.
Configurez un lecteur externe avec une seule partition logique:
Sudo lvmdiskscan # Suppose sdc is the candidate
Sudo pvcreate /dev/sdc
Sudo vgcreate wd0hdd /dev/sdc1
Sudo lvcreate -l 100%FREE -n wd0 wd0hdd
Sudo mkfs.ext4 /dev/wd0hdd/wd0
[Facultatif] utilisez Gnome-Disk pour changer l'étiquette du disque en wd
Redémarrez Ubuntu et voyez ce qui se passe dans nautilus et dans /media/username
Lorsque
Dites-moi ce qui pourrait être utile ici.
J'ai essayé de trouver quelque chose d'utile dans le journal pour aider à suivre le problème, il n'y a rien de pertinent affiché par journactl mais il peut y avoir des indices sur ce qui ne va pas grâce à udisksctl monitor
Juste après avoir monté l'appareil avec udisksctl mount -b /dev/mapper/wd0hdd/wd0
17:49:54.019: Added /org/freedesktop/UDisks2/jobs/2
org.freedesktop.UDisks2.Job:
Bytes: 0
Cancelable: true
ExpectedEndTime: 0
Objects: ['/org/freedesktop/UDisks2/block_devices/dm_2d5']
Operation: filesystem-mount
Progress: 0.0
ProgressValid: false
Rate: 0
StartTime: 1553186994019094
StartedByUID: 0
17:49:54.095: /org/freedesktop/UDisks2/jobs/2: org.freedesktop.UDisks2.Job::Completed (true, '')
17:49:54.095: Removed /org/freedesktop/UDisks2/jobs/2
17:49:54.140: /org/freedesktop/UDisks2/block_devices/dm_2d5: org.freedesktop.UDisks2.Filesystem: Properties Changed
MountPoints: /media/mil/wd1
17:49:54.141: /org/freedesktop/UDisks2/block_devices/dm_2d5: org.freedesktop.UDisks2.Block: Properties Changed
UserspaceMountOptions: uhelper=udisks2
17:49:54.141: /org/freedesktop/UDisks2/block_devices/sdd: org.freedesktop.UDisks2.PartitionTable: Properties Changed
Partitions: ['/org/freedesktop/UDisks2/block_devices/sdd1']
Je ne sais pas si ce UserspaceMountOptions: uhelper=udisks2
Pourrait m'aider si je parviens à modifier ces options de montage.
HintAuto
et udisks2
HintAuto
est une propriété qui peut être remplacée grâce à UDISKS_AUTO
Dans udisks2. J'ai repéré que la partition physique udisksctl info -b /dev/sdc1 | grep HintAuto
-> HintAuto: true
. Cependant, HintAuto
est faux pour le périphérique logique udisksctl info -b /dev/mapper/wd0hdd-wd0 | grep HintAuto
-> HintAuto: false
J'ai réussi à remplacer la valeur de HintAuto pour le volume logique grâce à des règles udev comme expliqué dans Automount LVM volume logique avec une règle udev et udisks2 mais cela n'a pas résolu mon problème depuis udisks2
ne monte toujours pas automatiquement la partition.
Utilisez /etc/fstab
Soit en éditant directement, soit en utilisant gnome-disk-utility, cela résout simplement le problème de montage automatique au démarrage mais pas si je branche le dernier disque. En outre, cela ne résout pas le problème 2 ni le problème 3 (je pensais que x-gvfs-show résoudrait mais non) et pour autant que je sache /etc/fstab
Est pour le lecteur statique et udisks2 est pour toutes sortes de lecteurs amovibles, donc je préfère une solution udisks2.
Utilisez un script Shell génial démarré par un démon détectant le moment où le disque est branché. Huum bien peut-être si je n'ai pas d'autre choix mais je n'ai trouvé aucun script résolvant les trois problèmes mentionnés ci-dessus. Je pense également que le travail pourrait être effectué par udisks2.
Dites à udisks2 de monter automatiquement tout le volume logique. Ce ne serait pas souhaitable car une partie de mon volume logique est un autre système Linux. De toute façon, je n'ai trouvé aucun moyen de le faire.
Les gens pourraient demander:
- Pourquoi une seule partition LVM sur tout le disque au lieu d'une seule partition standard? KISS!
- Oui, tu as raison ! Cependant, ce que j'essaie de réaliser ici n'est qu'un scénario plus simple de ce que je veux réaliser à la fin. J'ai un autre disque sur lequel j'ai installé une petite partition ESP pour le démarrage multiple en mode EFI et un autre volume physique LVM contenant deux volumes logiques avec deux linux différents et un troisième énorme volume logique pour les données multimédias La plupart du temps, ce disque est simplement branché sur mon ordinateur personnel, donc j'utilise uniquement la partition de stockage des données multimédias pour la sauvegarde et la musique, mais parfois je vais à d'autres endroits sans mon ordinateur et n'apporte que mon disque, donc je peux démarrer avec mon propre linux, emacs et lecteur de musique configuré comme j'aime et commencer à travailler dans un environnement agréable.Dans ce contexte, LVM est vraiment utile pour cette configuration pour redimensionner et gérer facilement le cryptage.
Enfin, après tant d'essais, la meilleure et la seule solution de travail que j'ai trouvée pour monter automatiquement un volume logique est d'utiliser SystemD. Crée ton <path-to-mount-folder>.mount
et <path-to-mount-folder>.automount
fichier sous /etc/systemd/system/
media-username-wd.mount
[Unit]
Description=Western Digital external drive mount in media
[Mount]
What=/dev/wdhdd0/wd0
Where=/media/username/wd
Type=ext4
Options=defaults
[Install]
WantedBy=multi-user.target
media-username-wd.automount
[Unit]
Description=Western Digital external drive automount in media
[Automount]
Where=/media/username/wd
[Install]
WantedBy=multi-user.target
Installez ces nouveaux services
systemctl daemon-reload
systemctl disable media-mil-wd.mount
systemctl enable media-mil-wd.automount
Le service .mount
est désactivé et seul le .automount
est activé exprès. Le premier est utilisé dans l'esprit de fstab pour monter la partition au démarrage et le second pour monter automatiquement la partition lorsqu'il est détecté (le lecteur externe est branché). Bien que l'existence d'un .mount
un fichier est requis pour chaque .automount
fichier créé, il n'est pas obligatoire d'activer le service.
Vérifier l'état
systemctl start media-mil-wd.automount
systemctl status media-mil-wd.automount
Je voudrais remercier Tomáš Tomeček pour son inestimable article Automount avec SystemD qui aurait pu me faire gagner des heures de lecture manuelle udev si seulement je l'avais découvert plus tôt.
Enfin cette solution est maintenant assez bonne pour moi elle résout mon problème principal [Problème1] et aussi [Problème2] qui est Nice. Cependant cela ne résout pas [Problem3] mais je peux vivre avec ça pour l'instant.
Je suis toujours ouvert à toutes suggestions surtout si elles sont soit plus simples, soit permettent de résoudre le [Problème3] qu'est l'intégration parfaite dans Nautilus.