Je sais que cette question est traitée beaucoup, mais je n'ai pas pu trouver une réponse qui fait que cela se produise automatiquement. Ce que je voudrais, c'est quand je démonte la dernière partition du disque dur externe (comme cela pourrait en avoir plus d'un), je voudrais alimenter (udisksctl power-off
) Le disque dur externe, de sorte que je puisse retirer le câble USB en toute sécurité.
Existe-t-il un moyen de rédiger un script Bash et de l'accrocher à un événement de démontage global de la partition afin que je puisse vérifier le nombre de partitions montées sur ce périphérique et si cet appareil est un disque dur externe, je peux émettre la commande à la mise hors tension. Peut-il être fait? Si c'est le cas, comment? Toute référence à la documentation pourrait m'aider.
Ceci est à Ubuntu 19.04.
C'est de 7 ans d'histoire.
[.____] Le problème est causé par la modification des internes des UDISKS sur la mise à niveau de la version 1 à la version 2.
[.____] Il est documenté sur LaunchPad comme bug 1067876 . J'ai passé beaucoup de temps à essayer de déterminer ce qui n'allait pas, mais pas de chance.
Ceci est une réponse partielle à votre question, mais de toute façon c'est une solution de travail.
[.____] Je l'utilise sur mes machines avec des disques rigides et des périphériques USB.
Personnellement, j'utilise l'une des deux solutions:
Pour certains périphériques, je vois que Caja (Mate de File-Manager, Fourchette de Nautilus 2.3x) ont toujours Supprimer en toute sécurité le lecteur .
En cliquant dessus, il en résulte une rotation du disque dur et du menu de commutation sur USB Flash/SSD
Si vous enlevez en toute sécurité n'est pas affichée sur Caja, alors j'ouvre manuellement les disques de gnome (gnome-disks
Commande), sélectionnez le lecteur nécessaire et cliquez sur POWER OFF dans son interface.
Ensuite, le disque dur chevauche et le voyant s'éteint.
Écrire un script automatique est une tâche un peu difficile. Vous pouvez également essayer de rechercher sur GitHub ou ailleurs pour trouver des solutions existantes possibles.
Aussi quelque demi-réponse.
J'ai fait pour ma sauvegarde HardDrive un démarreur de bureau.
cat bin/Backup-Platte-umount.sh
#!/bin/bash
#devicenodes finden
devname=$(findmnt | grep media | awk '{print $2}' | egrep -v 'sda|sdb')
export dev=$(findmnt | grep media | awk '{print $2}' | egrep -v 'sda|sdb' | sed 's/.$//' | head -n1)
#backup-platte umounten
umount $devname && notify-send 'Backup-Platte raus' && udisksctl power-off -b $dev
Je vais essayer d'expliquer. Je ne suis pas très bon dans ça.
devname=$(findmnt | grep media | awk '{print $2}' | egrep -v 'sda|sdb')
Cette recherche pour le système de fichiers de minet dans les médias. Mes 2 disques internes sont filtrés avec egrep -v 'sda|sdb'
la partie suivante exporte la variable une variable.
export dev=$(findmnt | grep media | awk '{print $2}' | egrep -v 'sda|sdb' | sed 's/.$//' | head -n1
Gives me the pur harddrive node for udisksctl power-off
findmnt | grep media | awk '{print $2}' | egrep -v 'sda|sdb' | sed 's/.$//' | head -n1
/dev/sdc
et donc ça marche.
bash -x bin/Backup-Platte-umount.sh
++ findmnt
++ grep media
++ awk '{print $2}'
++ egrep -v 'sda|sdb'
+ devname='/dev/sdc1
/dev/sdc3
/dev/sdc2'
++ findmnt
++ grep media
++ awk '{print $2}'
++ egrep -v 'sda|sdb'
++ sed 's/.$//'
++ head -n1
+ export dev=/dev/sdc
+ dev=/dev/sdc
+ umount /dev/sdc1 /dev/sdc3 /dev/sdc2
+ notify-send 'Backup-Platte raus'
+ udisksctl power-off -b /dev/sdc
Remarque Je ne le teste que avec Bash comme Shell