Ausschalten der externen Festplatte, des Flash-Laufwerks usw. über die Befehlszeile unter Linux

8

Ich dachte immer, dass das sichere Entfernen eines gemounteten Geräts die Verwendung des umountBefehls bedeutet, und bis vor kurzem, als ich zu Ubuntu 12.04 LTS wechselte, bemerkte ich, dass es die Möglichkeit gab, das Gerät sicher zu entfernen, was meine Neugier weckte.

Ich habe eine Reihe von Posts durchgesehen und festgestellt, dass dies umountanscheinend nicht bedeutet, dass ich das Gerät sicher entfernen kann, da es das Gerät nicht ausschaltet. Ich weiß, dass es die Möglichkeit dazu gibt eject. Dies ist mein Verständnis nach dem Durchsuchen des Internets. Referenzen umfassen:

Ich bin dann auf einen Artikel gestoßen, habe aber festgestellt, dass der Prozess kompliziert ist, und ich glaube, ich habe endlich Pay Dirt getroffen, als ich auf den Befehl gestoßen bin, udiskszudisks --unmount /dev/sdb1 && udisks --detach /dev/sdb

Was mich verwirrt, ist (abgesehen davon, ob es umounttatsächlich sicher ist, das Gerät ohne Datenverlust zu entfernen und ob ich den Befehl syncvorher verwenden muss und ob das Gerät ausgeschaltet wurde, was sicher zu entfernen scheint), warum Ich muss /dev/sdbgefolgt von --detachim Gegensatz zu verwenden/dev/sdb1

PeanutsMonkey
quelle

Antworten:

6

/dev/sdbist das ganze Gerät. /dev/sdb1ist eine Partition auf diesem Gerät.

Sie können zwar eine Festplatte verwenden, ohne sie zu partitionieren, dies ist jedoch eher ungewöhnlich (außerhalb von RAID-Setups, aber dann erstellen Sie die Dateisysteme auf den RAID-Geräteknoten, nicht auf den physischen Geräteknoten).
Es ist nicht wirklich sinnvoll, zu versuchen, eine einzelne Partition zu trennen (physisch zu entfernen). Sie möchten das gesamte Gerät (das mehrere Partitionen enthalten kann) entfernen, nicht nur eine Partition dieses Geräts.

Eine Partition Aushängen wird das Dateisystem synchronisieren, so rufen , syncbevor unmountnicht notwendig ist.
Wenn Sie udisks --detachdas Gerät aufrufen, wird überprüft, ob auf diesem Gerät keine Dateisysteme installiert sind (Sie sollten sicherstellen, dass dieser Aufruf tatsächlich erfolgreich ist), und es wird ein "ordnungsgemäßes Herunterfahren" durchgeführt, das unabhängig von einem "Pull the Plug" -Ansatz immer vorzuziehen ist ob dieses bestimmte Gerät etwas Besonderes tut.

Matte
quelle
Ich hatte keine Ahnung, dass nur / dev / sdb das gesamte Gerät darstellt, von dem ich annehme, dass es alle Partitionen darstellt. Ist das korrekt? Also könnte ich den Befehl einfach so ausführen, als udisks --unmount /dev/sdb && udisks --detach /dev/sdbob ich alle Partitionen aushängen möchte? Es ist daher sinnvoll, nur eine Partition zu entfernen, wenn mehrere Partitionen vorhanden sind.
PeanutsMonkey
Wie stellen Sie auch sicher, dass der Anruf udisks --detacherfolgreich ist?
PeanutsMonkey
Nein, das Abhängen /dev/sdbfunktioniert nicht. Sie müssen jede gemountete Partition aushängen und die Ausgabe der Befehle anzeigen / analysieren.
Mat
Entschuldigung, folgen Sie nicht ganz dem, was Sie meinen, indem Sie die Ausgabe der Befehle betrachten oder analysieren? Sollte ich nicht jede Partition aushängen und dann den Befehl ausführen udisks --detach /dev/sdb?
PeanutsMonkey