web-dev-qa-db-fra.com

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

J'utilise Ubuntu 12.04, et lorsque je clique sur une icône de mon lecteur flash (dans la barre de gauche de Unity), j'obtiens deux options qui me rendent confus: éjecter et supprimez en toute sécurité .
Le plus proche de ma réponse était ce fil de discussion , ce qui conclut que (pour un lecteur flash), ils sont à la fois égaux et également équivalents à utiliser la commande umount . Cependant, cette dernière affirmation semble être fausse.
Si j'utilise umount de la console pour démonter ma plongée flash, puis j'utilise la commande lsblk, je vois toujours mon appareil (sans rien sous MOUNTPOINT, bien sûr) . D'un autre côté, si je éjecte ou enlève en toute sécurité mon lecteur flash , lsblk ne l'affiche plus.

Donc, ma question est, quelle serait la commande/les commandes de la console qui reproduiraient vraiment le comportement de éjecter et supprimer en toute sécurité ?

46
LGenzelis

Si vous utilisez systemd, utilisez l'utilitaire udisksctl avec power-off option:

éteindre

Organise le retrait et la mise hors tension du lecteur. Du côté du système d'exploitation, cela implique de s'assurer qu'aucun processus n'utilise le lecteur, puis de demander que les tampons et les caches en vol soient validés pour un stockage stable.

Je recommanderais d'abord de démonter tous les systèmes de fichiers sur cette clé USB. Cela peut être fait aussi avec udisksctl, donc les étapes seraient:

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

Si vous n'utilisez pas systemd alors l'ancien bon udisks devrait fonctionner:

udisks --unmount /dev/sda1
udisks --detach /dev/sda
70
jimmij

umount est parfaitement sûr pour le disque. Une fois que vous avez fait cela, vous avez réussi à démonter le système de fichiers et vous n'avez pas à vous inquiéter dans ce sens. La principale différence entre eject et umount ne concerne pas du tout le disque - il s'agit plutôt de la sortie d'alimentation 5v du port USB.

Après umount, vous pouvez toujours voir votre disque répertorié dans lsblk car il est toujours sous tension et connecté. umount le 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 5v, il le ferait généralement - je pense qu'il descend à 0,5 V, 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 sa ligne de 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 y jeter un œil à 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
15
mikeserv