it-swarm.com.de

USB-Laufwerke auswerfen / Befehl auswerfen

Ich weiß, dass der Befehl eject zum Auswerfen fast aller angeschlossenen Hardwarekomponenten verwendet werden kann, aber kann er zum Auswerfen von USB-Laufwerken verwendet werden?

Ist es möglich, USB-Laufwerke und externe Festplatten mit dem Befehl eject auszuwerfen?

58
Joe Barr

Nein, sie müssen es auch nicht sein. eject wird zum Öffnen optischer Laufwerke verwendet, bei denen das Medium nicht direkt entnommen werden kann.

Das Aushängen ist für USB/eSATA/etc. Ausreichend. Speichergeräte.

Ja. Zum Beispiel:

Sudo eject /dev/sda

Andere Antworten hier, die darauf hinweisen, dass Sie mechanische Auswurfhardware benötigen, sind falsch.

Das Abhängen ist nicht dasselbe wie das Auswerfen.

  1. Wenn Sie die Bereitstellung eines Volumes aufheben, können Sie es sofort wieder bereitstellen, da das zugrunde liegende Gerät noch verfügbar ist. In einigen Situationen kann dies ein Sicherheitsrisiko darstellen. Durch Auswerfen des Geräts wird das Gerät nur durch einen Reset des USB-Subsystems (z. B. einen Neustart) neu geladen .
  2. Durch das Auswerfen des Geräts deaktivieren Sie effektiv jeden weiteren Zugriff auf das Gerät. Nur ein Zurücksetzen des USB-Subsystems (z. B. ein Neustart) lädt das Gerät neu. Andernfalls müssen Sie das USB-Gerät physisch trennen und erneut anschließen, um erneut darauf zugreifen zu können.
  3. Vor dem Auswerfen wird mit diesem Befehl die Bereitstellung aller Volumes auf dem Gerät aufgehoben, die bereitgestellt wurden.
  4. Wenn Volumes verwendet werden, schlägt dieser Befehl wie beim Aufheben der Bereitstellung fehl, mit der Ausnahme, dass einige Volumes möglicherweise nicht bereitgestellt werden und einige Volumes möglicherweise weiterhin bereitgestellt werden.
83
danorton

eject wird funktionieren, aber den Job in Bezug auf USB rotierend Laufwerke nicht wirklich "beenden".

Der beste Weg, um eine externe USB-Festplatte zu trennen, nach ordnungsgemäßem Aushängen, ist:

udisks --detach /dev/sdb

Dies führt normalerweise dazu, dass sich das Laufwerk ordnungsgemäß dreht.

Genau das aktuelle Implementierung :

  • sendet den SCSI-Sync-Cache-Befehl,
  • sendet SCSI-Stoppbefehl,
  • bindet den USB-Speicher-Kerneltreiber,
  • setzt das USB-Gerät aus (Stromversorgung),
  • deaktiviert/entfernt es logischerweise von seinem USB-Anschluss.

Dieser Vorgang ähnelt dem vorgeschlagenen manuellen Verfahren hier . Die erste Antwort war auf askubunt .

EDIT: Wie g.rocket hervorhebt, kann dieser Befehl auch äquivalent sein:

udisksctl power-off -b /dev/sdb
42
Totor

Manuelle Schritte zum Aufheben der Bereitstellung von disk/dev/sdb (erfordert Sudo):

echo 'offline' > /sys/block/sdb/device/state
echo '1' > /sys/block/sdb/device/delete

Dadurch wird das Gerät vollständig ausgeschaltet und vom System getrennt. Es wird erst wieder erkannt, wenn es getrennt und wieder angeschlossen wird.

12
Tony George

Wenn Sie die Manpage eject (1) sorgfältig lesen, sehen Sie, dass es 4 Methoden zum Auswerfen gibt:

   -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.

Wenn Sie eject auf HDD/SCSI aufrufen, wird der Befehl ioctl(fd, SG_IO, (void *)&io_hdr); ausgegeben (Kopie aus eject.c - Quellen).

Dies entspricht dem sicheren Entfernen von Geräten in MS Windows oder MaxOSX.

Für einige Geräte hat dies einen besonderen Mittelwert. Beispiel: Kindle 3, nachdem der Befehl Auswerfen in den Lademodus versetzt wurde und das Surfen auf dem Gerät ermöglicht, bevor der Bildschirm gesperrt wurde.

Andere Dienstprogramme tun dasselbe

scsi-spin --force --down /dev/sda
6
gavenkoa

In der osx-Befehlszeile sollten Sie diskutil verwenden, wobei [~ # ~] label [~ # ~] das Label Ihres USB ist Fahrt.

diskutil eject /Volumes/<LABEL>
3
efesaid

"Auswerfen" hat keine Bedeutung für Hardware ohne Fach oder anderen Lademechanismus (ich gehe davon aus, dass es auch mit Bandlaufwerken funktioniert).

Das Testen mit einem externen USB-Flash-Laufwerk zeigt jedoch, dass eject ähnlich wie umount funktioniert - mit dem Nebeneffekt, dass die Geräteknoten verschwinden, z.

% ls  /dev/sdc*
/dev/sdc  /dev/sdc1
% Sudo eject /dev/sdc
% ls  /dev/sdc*
/dev/sdc

Beachten Sie, dass /dev/sdc1 ist verschwunden.

3
Renan

udisks --detach /dev/sdX wobei (X) der letzte Buchstabe Ihres USB-Geräts ist. Es funktioniert gut auf jedem Linux-System.

2
victorx66

OK, ich werde versuchen, dies besser zu erklären:

mit dem Befehl udisks können Sie alle im Befehl zum Aufheben der Bereitstellung des Systems gemounteten oder angeschlossenen USB-Geräte vollständig entfernen und ausschalten. Hängen Sie lediglich die Partition aus, dh dev/sdb1 oder was auch immer, aber der USB ist noch im System vorhanden.

Also nicht gleich aushängen, auswerfen und abnehmen

udisks = USB ausschalten

umount = nur die Partition aushängen, nicht das gesamte Pendrive

eject = der gleiche oder sehr nahe am umount-Befehl

0
victorx66