USB-Laufwerke „ganz” sicher entfernen unter GNU/Linux / spin-down von USB-Festplatten
USB-Laufwerk „ganz” sicher entfernen
Von Windows kennt man die Funktion „Hardware sicher entfernen”. Diese sorgt dafür, dass vor dem „Abziehen” eines USB-Speichers alle Daten darauf geschrieben wurden und stoppt anschließend den Motor der Festplatte.
Unter GNU/Linux sollte man vor dem „Abklemmen” eines USB-Datenträgers Dateisysteme darauf auf jeden Fall mit umount oder über die grafische Oberfläche „aushängen”. Dieses stoppt aber nicht den Motor der Festplatte.
Abhilfe schafft das Skript „suspend-usb-device” (benötigt sdparm): Yan Li’s Words: Safely remove an USB hard drive in Linux.
Dieses
- sendet die Kommandos SYNC und STOP an das Laufwerk (mittels sdparm)
- löst den USB-Storage-Treiber vom entsprechenden USB-Device (unbind)
- schaltet das USB-Gerät in den Power-Level CONFIG_USB_SUSPEND.
Die Dateisysteme auf dem Datenträger werden vom Skript aber nicht ausgehängt, das muss man vorher weiterhin selbst tun. Insofern entspricht die Funktion nicht ganz dem „Hardware sicher entfernen” in Windows.
Motor einer USB-Festplatte anhalten („spin-down”)
Für IDE-Platten gibt es folgenden Befehl, um diese anzuhalten (standby):
hdparm -y /dev/sdb
Bei meiner USB-Festplatte scheitert dieser jedoch mit einem „HDIO_DRIVE_CMD(standby) failed: Input/output error”.
Für SCSI-Platten lautet der Befehl zum Anhalten (meine USB-Festplatte hält daraufhin kurz an, läuft aber sofort wieder hoch):
sg_start --stop /dev/sdb
Außerdem gibt es jedoch noch
sdparm --command=stop /dev/sdb
Mit letzterem Befehl lässt sich meine externe Festplatte (SATA-Festplatte Seagate ST315003) in einem USB-Gehäuse von Fantec (mit JMicron-Chip) anhalten.
