it-swarm.com.de

Wie kann ich eine SATA-Festplatte sicher von einem laufenden System entfernen?

Ich muss manchmal eine Festplatte in einen Festplattenschacht stecken. Zu anderen Zeiten habe ich das seltsame Setup, eine SSD mit einem SATA-eSATA-Kabel an meinem Laptop anzuschließen, während ich Strom von einem Desktop ziehe.

Wie kann ich die SATA-Festplatte sicher aus dem System entfernen? Dieser Phoronix Forum-Thread hat einige Vorschläge:

justsumdood schrieb:

Ein (noymöser) Droide schrieb:
Was machen Sie dann auf der Softwareseite, bevor Sie den Netzstecker ziehen? Ist es ein einfaches "umount/dev/sd" [Laufwerksbuchstabe]? Nach dem Aushängen des Geräts das Gerät "ausschalten" (oder in den Ruhezustand versetzen):

hdparm -Y /dev/sdX

(wobei X das Gerät darstellt, das Sie ausschalten möchten. Beispiel:/dev/sdb)

dadurch wird das Laufwerk heruntergefahren, ohne dass die Gefahr eines Spannungsanstiegs besteht.

Bedeutet dies, dass die Festplatten-Caches ordnungsgemäß geleert und danach ausgeschaltet werden?

Ein weiterer Vorschlag aus dem gleichen Thread:

chithanh schrieb:
Die gesamte SATA- und eSATA-Hardware kann physisch im laufenden Betrieb angeschlossen werden (dh nicht beschädigt werden, wenn Sie den Stecker einstecken/ziehen).

Wie der Chipsatz und der Treiber damit umgehen, ist eine andere Frage. Einige Treiber/Chipsatz-Kombinationen verarbeiten Hotplugging nicht ordnungsgemäß und benötigen einen Warmplug-Befehl wie den folgenden:

echo 0 - 0 > /sys/class/scsi_Host/hostX/scan

Ersetzen Sie X durch die entsprechende Nummer für Ihren SATA/eSATA-Port.

Ich bezweifle, ob dies der richtige Weg ist, aber ich kann auch keinen Beweis dafür finden.

Was ist der richtige Weg, um eine angeschlossene Festplatte aus einem System zu entfernen? Angenommen, ich habe bereits jede Partition auf der Festplatte abgemeldet und sync ausgeführt. Bitte verweisen Sie nach Möglichkeit auf eine offizielle Dokumentation. Ich konnte weder im Linux-Dokumentationsbaum noch im Linux ATA-Wiki etwas finden.

67
Lekensteyn
  1. Hängen Sie alle Dateisysteme auf der Festplatte aus. (umount ...)
  2. Deaktivieren Sie alle LVM-Gruppen. (vgchange -an)
  3. Stellen Sie sicher, dass nichts die Festplatte für irgendetwas verwendet.
  4. Sobald Sie dies getan haben, sollte es sicher sein, den Netzstecker zu ziehen.

Wenn Sie besonders vorsichtig sein möchten, führen Sie zuerst echo 1 > /sys/block/(whatever)/device/delete aus. Dadurch wird die Registrierung des Geräts vom Kernel aufgehoben, sodass Sie wissen nichts verwenden, wenn Sie den Netzstecker ziehen. Wenn ich das mit einem Laufwerk in einem eSATA-Gehäuse mache, kann ich hören, wie sich die Köpfe des Laufwerks selbst parken, sodass der Kernel das Laufwerk anscheinend anweist, sich auf das Herunterfahren vorzubereiten.

Wenn Sie einen AHCI-Controller verwenden, sollte dieser mit ausgesteckten Geräten umgehen können. Wenn Sie einen anderen SATA-Controller verwenden, kann der Treiber durch Hotplugging verwirrt werden.

Nach meiner Erfahrung funktioniert SATA-Hotplugging (mit AHCI) unter Linux ziemlich gut. Ich habe ein optisches Laufwerk ausgesteckt, eine Festplatte angeschlossen, auf Fehler gescannt, ein Dateisystem erstellt und Daten darauf kopiert, die Bereitstellung aufgehoben und den Stecker gezogen, ein anderes DVD-Laufwerk angeschlossen und eine Disc gebrannt, alles mit dem Gerät und läuft.

84
Wyzard

wie wäre es mit eject /dev/sdX? In meinem Setup werden mit diesem Befehl das Laufwerk umountet, synchronisiert und heruntergefahren.

5
bitvitez

Diese beiden Abschnitte sind für verschiedene Dinge.

Der erste ist für Ausstecken. Der zweite ist für Einstecken.

Zum Entfernen des Netzsteckers synchronisiert das Betriebssystem die Daten während des Aufhebens der Bereitstellung. Wenn die Festplatte nicht gemountet ist (vorausgesetzt, Sie verfügen tatsächlich über vollständige Hardwareunterstützung), können Sie die Festplatte ausschalten und dann den Stecker ziehen, ohne das Risiko eines Datenverlusts oder einer Beschädigung.

Zum Einstecken sollte das Gerät automatisch erkannt werden. Wenn nicht, können Sie diesen Befehl ausführen, um einen Busscan auszulösen. Sobald das Gerät erkannt wurde, können Sie es mounten.

Und lassen Sie mich dies einschränken, indem Sie sagen, dass ich so etwas bisher nur mit USB-Laufwerken gemacht habe.

5
bahamat

Ich habe ein Paar Skripte, die auf der Antwort von Wyzard aufbauen. Das erste, scsi-drop, Besteht darin, eine einzelne Festplatte sicher zu trennen:

#!/bin/sh

if test -h "$1"
then
    disk=$(chase "$1")
else
    disk="$1"
fi

if test -b "$disk"
then
    echo 1 >/sys/block/$(basename "$disk")/device/delete
else
    echo "$0: not a block device: $1" >&2
    exit 1
fi

Der Hauptvorteil besteht darin, dass Sie ihm einen Symlink übergeben können, wie er in /dev/disk/by-id/ Zu finden ist, und dieser wird auf das reale Gerät übertragen. Es muss chase installiert sein; Möglicherweise können Sie mit readlink -e dasselbe Ergebnis erzielen.

Das zweite Skript, scsi-rescan, Wird nach dem Hotpluggen eines neuen Geräts verwendet:

#!/bin/bash

exec tee /sys/class/scsi_Host/host*/scan <<<'- - -' >/dev/null

Dadurch scannen alle Adapter erneut nach Geräten. Nur so konnte ich die neue Kapazitäts- und Partitionstabelle lesen.

2
Toby Speight

Tatsächlich parken SATA-Laufwerke die Köpfe automatisch, wenn die Stromversorgung unterbrochen wird. Das Ziehen des Laufwerks, während es sich noch dreht, sollte keine Probleme verursachen. Drehscheiben neigen jedoch zu Beulen, wenn sie gestoßen werden. Sie können dies hören, wenn Sie schuppige Energie oder Sonneneruptionen haben.

Der größte Schaden wird normalerweise durch nicht leeren Cache und nicht festgeschriebene Schreibvorgänge in Puffern usw. verursacht. Aus diesem Grund MÜSSEN Sie ein Laufwerk aushängen, bevor Sie es entfernen. Der SCSI-Befehl ist nur eine gute Maßnahme und funktioniert zum gleichen Zweck.

0
spongebob