Je sais que la commande eject
peut être utilisée pour éjecter presque tous les composants matériels connectés, mais peut-elle être utilisée pour éjecter des lecteurs USB?
Est-il possible d'éjecter des lecteurs USB et des disques durs externes avec la commande eject
?
Non. Ils ne doivent pas non plus l'être; eject
est utilisé pour ouvrir des lecteurs optiques, où l'on ne peut pas extraire directement le support.
Le démontage est suffisant pour USB/eSATA/etc. périphériques de stockage.
Oui. Par exemple:
Sudo eject /dev/sda
Les autres réponses ici qui indiquent que vous avez besoin de matériel d'éjection mécanique sont incorrectes.
Le démontage n'est pas la même chose que l'éjection.
eject
fonctionnera, mais ne "terminera pas vraiment" le travail concernant les lecteurs USB rotatifs .
La meilleure façon de débrancher un disque dur externe USB, après un démontage correct , est:
udisks --detach /dev/sdb
Cela entraîne généralement un ralentissement progressif du lecteur.
Précisément, le implémentation actuelle :
Ce processus est proche de la procédure manuelle suggérée ici . La réponse initiale était sur askubunt .
EDIT: De plus, comme le souligne g.rocket , cette commande peut être équivalente:
udisksctl power-off -b /dev/sdb
Étapes manuelles pour démonter le disque/dev/sdb (nécessite Sudo):
echo 'offline' > /sys/block/sdb/device/state
echo '1' > /sys/block/sdb/device/delete
Cela éteindra complètement l'appareil et le détachera du système. Il ne sera à nouveau détecté qu'après avoir été déconnecté et reconnecté.
Si vous lisez attentivement la page de manuel eject (1), vous pouvez voir qu'il existe 4 méthodes d'éjection:
-r This option specifies that the drive should be ejected using a CDROM
eject command.
-s This option specifies that the drive should be ejected using SCSI
commands.
-f This option specifies that the drive should be ejected using a remov‐
able floppy disk eject command.
-q This option specifies that the drive should be ejected using a tape
drive offline command.
Lorsque vous appelez éjecter sur le disque dur/SCSI, il lance la commande ioctl(fd, SG_IO, (void *)&io_hdr);
(copie à partir des sources eject.c
).
Cela équivaut à retirer le périphérique en toute sécurité dans MS Windows ou MaxOSX.
Pour certains appareils, cela a une moyenne spéciale. Par exemple, Kindle 3 après éjecter la commande a été déplacée en mode de charge et autorise la navigation sur l'appareil, avant le verrouillage de l'écran.
Un autre utilitaire fait la même chose, comme ceci
scsi-spin --force --down /dev/sda
Dans la ligne de commande osx, vous devez utiliser diskutil où [~ # ~] label [~ # ~] est le label de votre clé USB conduire.
diskutil eject /Volumes/<LABEL>
"Éjecter" n'a aucune signification pour le matériel sans plateau ou autre mécanisme de chargement (je suppose que cela fonctionne aussi avec les lecteurs de bande).
Cependant, les tests avec un lecteur flash USB externe indiquent que eject
fonctionne un peu comme umount
- avec pour effet secondaire de faire disparaître les nœuds de l'appareil, par exemple.
% ls /dev/sdc*
/dev/sdc /dev/sdc1
% Sudo eject /dev/sdc
% ls /dev/sdc*
/dev/sdc
Notez que /dev/sdc1
a disparu.
udisks --detach /dev/sdX
où (X) est la dernière lettre de votre périphérique USB. Cela fonctionne très bien sur n'importe quel système Linux.
OK je vais essayer de mieux l'expliquer:
la commande udisks supprime et éteint complètement tout périphérique USB monté ou attaché dans la commande de démontage du système, il suffit de démonter la partition, c'est-à-dire: dev/sdb1 ou autre chose, mais l'usb est toujours présent dans le système.
Ce n'est donc pas la même chose à démonter, éjecter et détacher
udisks = éteindre l'USB
umount = démontez simplement la partition et non la clé entière
eject = identique ou très proche de la commande umount