Éjecter / supprimer en toute sécurité vs umount

44

J'utilise Ubuntu 12.04, et lorsque je clique sur une icône de mon lecteur flash (dans la barre de gauche de Unity), deux options me confondent: éjecter et supprimer en toute sécurité .
Plus je me suis approché de la réponse, c’est ce fil de discussion , qui conclut que (pour un lecteur flash), ils sont égaux et équivalents umount. Cependant, cette dernière affirmation semble être fausse.
Si j'utilise umountla console pour démonter ma plongée flash, puis j'utilise la commande lsblk, je vois toujours mon périphérique (avec rien sous MOUNTPOINT, bien sûr). Par contre, si j’éjecte ou retire mon lecteur flash en toute sécurité , lsblkne le répertorie plus.

Ma question est donc la suivante: quelle serait la ou les commandes de la console qui reproduiraient réellement le comportement d’ éjection et de suppression en toute sécurité ?

LGenzelis
la source
3
Vous pourrez peut-être trouver un fichier .desktop pour l'icône sous /usr/share/applications/ou quelque chose comme ça. Si vous l'ouvrez dans un éditeur de texte, le champ Exec = ... correspond à la commande qui s'exécute lorsque vous cliquez dessus.
Spelufo

Réponses:

65

Si vous utilisez systemdalors utilisez l' udisksctlutilitaire avec l' power-offoption:

éteindre

Prend les dispositions nécessaires pour que le lecteur soit retiré et mis hors tension en toute sécurité. Sur le système d'exploitation, cela implique de s'assurer qu'aucun processus n'utilise le disque, puis de demander que les mémoires tampon et les caches en vol soient engagés dans un stockage stable.

Je recommanderais d’abord de démonter tous les systèmes de fichiers sur cet usb. Cela peut aussi être fait avec udisksctl, alors les étapes seraient:

udisksctl unmount -b /dev/sda1
udisksctl power-off -b /dev/sda

Si vous n'utilisez pas systemdalors vieux bien udisksdevrait fonctionner:

udisks --unmount /dev/sda1
udisks --detach /dev/sda
Jimmij
la source
Oh mec, je viens seulement de comprendre que la question était de savoir comment faire cela à partir de la ligne de commande. Quelle différence y a-t-il entre une chose et une autre. Je ne supprimerai pas ma réponse parce que je pense que cela offre une certaine perspective - mais la vôtre est la bonne réponse pour les systèmes linux, je pense ( je ne sais même pas s'il s'agit d'une question pertinente de bsd de toute façon ...) .
mikeserv
4
udisksctl power-offsemble ne pas être équivalent à la "retirer en toute sécurité" dans mon cas. Avec une carte micro-SD dans mon lecteur de carte interne, périphérique /dev/sdd, sans système de fichiers monté, lorsque j'utilise la commande udisksctl power-off -b /dev/sdd, le voyant du lecteur s'éteint, mais l'ensemble du périphérique devient alors inutilisable, car il est littéralement complètement éteint. Je dois redémarrer le système pour qu'il redevienne utilisable.
Ack
1
Pour @ack: vous pouvez désactiver / activer le hub (éventuellement interne) auquel le lecteur est connecté. Puisqu'il s'agit d'un concentrateur, il supprimera et réénumérera tout, y compris le périphérique manquant. J'espère que vous pourrez lire cet exemple: udisksctl power-off -b /dev/mmcblk0mmc0: carte aaaa retirée usb 3-1.8: déconnexion USB, cd /sys/bus/usb/devices/usb3/3-1 echo 0 > authorized echo 1 > authorizedconcentrateur numéro d'appareil 41 concentrateur 3-1: 1.0: concentrateur USB trouvé usb 3-1: autorisé à se connecter usb 3-1.8: nouveau périphérique USB trouvé , idVendor = 0bda, idProduct = 0129 mmc0: nouvelle carte SDHC SDHC ultra ultra-rapide à l'adresse aaaa
AB
14

umountest parfaitement sécurisé pour le disque. Une fois que vous avez terminé, vous avez correctement démonté le système de fichiers et vous n'avez pas à vous inquiéter pour cela. La principale différence entre éjecter et umountne concerne pas le disque - il s’agit plutôt de la puissance de sortie 5V du port USB.

Après, umountvous pouvez toujours voir votre disque répertorié lsblkcar il est toujours allumé et connecté. umountle système de fichiers d’un disque dur interne et vous verrez le même comportement pour la même raison. Mais lorsque vous éjectez un périphérique USB, vous le mettez hors tension et il cesse de tirer le volume 5v normalement. Je pense que le niveau passe à .5v, mais cette classe s'est produite il y a longtemps.

lsblk -f /dev/disk/by-id/usb-SanDisk_Cruzer_200522428118F4325EC2-0:0
NAME   FSTYPE LABEL   UUID                                 MOUNTPOINT
sdd                                                        
├─sdd1 vfat   USBESP  3AD6-C7CC                            
└─sdd2 ext4   USBROOT 5afbfe93-6955-44ec-8c4f-cf381f8ef174 

Voici son trajet en bus USB ...

cat /sys/bus/usb/devices/5-3/manufacturer 
SanDisk

Même si je ne le monte presque jamais, il est branché et clignote depuis longtemps, je suppose ...

cat /sys/bus/usb/devices/5-3/power/{level,connected_duration}
on
1777877440

Je devrais faire quelque chose à ce sujet:

echo 1 | sudo tee /sys/bus/usb/devices/5-3/remove                                      

Maintenant, je vais regarder à nouveau ...

cat /sys/bus/usb/devices/5-3/power/level                            
cat: /sys/bus/usb/devices/5-3/power/level: No such file or directory

Hmmm ...

lsblk -f /dev/disk/by-id/usb-SanDisk_Cruzer_200522428118F4325EC2-0:0
lsblk: /dev/disk/by-id/usb-SanDisk_Cruzer_200522428118F4325EC2-0:0: not a block device
Mikeserv
la source
1
Merci. Après umountun disque dur externe, est-il sécuritaire de retirer le disque dur externe de l’ordinateur?
Tim
1
Je ne pense pas que cela umountéquivaut à "supprimer en toute sécurité", et ni l'un ni l'autre udisksctl power-off, voyez s'il vous plaît mon commentaire sur l'autre réponse. Comparez avec le comportement dans Windows par exemple. Je suppose que Windows fait un peu plus que «démonter» les systèmes de fichiers sur le périphérique. Je l' ai observé filer vers le bas des disques durs externes, éteindre les LED sur les lecteurs de cartes ( sans rendre ultérieurement le dispositif inutilisable à moins rebranché ou redémarrage du système), etc.
ack
2
@ack - Qu'est-ce que Windows a à voir avec cela? et pourquoi devinez-vous? et vous n'avez pas besoin de redémarrer pour qu'il redevienne utilisable. umountc'est toi alors vous l'éteignez. et je n'ai jamais rien suggéré d' udiskctlune manière ou d'une autre.
mikeserv
1
@mikeserv "Retirer le matériel en toute sécurité" est l'expression utilisée dans Windows. Il est probable que d'autres systèmes ont copié cette phrase en raison de la familiarité de l'utilisateur. Il est important de le distinguer du simple démontage du système de fichiers. C'est particulièrement le cas lorsque le système d'exploitation doute de la mise en cache en écriture d'un périphérique de stockage. J'ai personnellement subi une perte de données assez importante (superbloc et fichiers corrompus) après avoir simplement démonté et débranché un disque dur externe. J'ai découvert par la suite que Linux m'avait averti à ce sujet: "Aucune page de mode de cache mise en cache", "Cache de lecteur supposé: écriture via".
ack
1
@ack - non, ce n'est pas important. votre problème est probablement votre acpi. cela n'a absolument rien à voir avec le système d'exploitation - le fabricant de votre carte n'a écrit des pilotes que pour un seul système d'exploitation. ces petits périphériques multicartes nécessitent un accès de niveau assez faible à la cible de la carte - ils doivent être capables de faire des choses comme eye-fi. ce ne sont pas des périphériques bloqués, mais des personnages. ils ne sont rien du tout comme les disques usb. le board-rom doit les traiter séparément, et si votre fournisseur le supporte mal (ce n'est pas inhabituel - essayez de démarrer à partir de l'un d'eux), vous n'avez pas de chance. mais ce n'est pas le problème de Linux.
mikeserv