GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Wie trennt man die Hot-Swap-Sata-Festplatte richtig?

Ich verwende einen SATA-Hot-Swap-Schacht und habe im BIOS diesen bestimmten Port speziell für „Hot-Swap“ konfiguriert.

Dieser Schacht verfügt über eine praktische „POWER ON/OFF“-Taste, sodass beim Ein- und Ausstecken von Kabeln keine Unterbrechungen auftreten.

Wenn ich ein Laufwerk einschalte, erhalte ich sofort einige Kernel-Fehler, bevor es gemountet wird:

[1263413.036674] ata6: exception Emask 0x10 SAct 0x0 SErr 0x4040000 action 0xe frozen
[1263413.036680] ata6: irq_stat 0x00000040, connection status changed
[1263413.036683] ata6: SError: { CommWake DevExch }
[1263413.036698] ata6: hard resetting link
[1263418.796687] ata6: link is slow to respond, please be patient (ready=0)
[1263423.052529] ata6: COMRESET failed (errno=-16)
[1263423.052547] ata6: hard resetting link
[1263428.032390] ata6: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[1263428.032836] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20150930/psargs-359)
[1263428.032846] ACPI Error: Method parse/execution failed [_SB.PCI0.SAT0.SPT5._GTF] (Node ffff88040e0c5780), AE_NOT_FOUND (20150930/psparse-542)
[1263428.159582] ata6.00: ATA-9: HGST HDN726040ALE614, APGNW7JH, max UDMA/133
[1263428.159588] ata6.00: 7814037168 sectors, multi 0: LBA48 NCQ (depth 31/32), AA
[1263428.161980] ACPI Error: [DSSP] Namespace lookup failure, AE_NOT_FOUND (20150930/psargs-359)
[1263428.161988] ACPI Error: Method parse/execution failed [_SB.PCI0.SAT0.SPT5._GTF] (Node ffff88040e0c5780), AE_NOT_FOUND (20150930/psparse-542)
[1263428.164472] ata6.00: configured for UDMA/133
[1263428.164483] ata6: EH complete
[1263428.164650] scsi 5:0:0:0: Direct-Access     ATA      HGST HDN726040AL W7JH PQ: 0 ANSI: 5
[1263428.165064] sd 5:0:0:0: Attached scsi generic sg4 type 0
[1263428.165502] sd 5:0:0:0: [sdd] 7814037168 512-byte logical blocks: (4.00 TB/3.64 TiB)
[1263428.165508] sd 5:0:0:0: [sdd] 4096-byte physical blocks
[1263428.165582] sd 5:0:0:0: [sdd] Write Protect is off
[1263428.165587] sd 5:0:0:0: [sdd] Mode Sense: 00 3a 00 00
[1263428.165618] sd 5:0:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[1263428.213630]  sdd: sdd1
[1263428.214062] sd 5:0:0:0: [sdd] Attached SCSI disk
[1263534.534238] EXT4-fs (dm-5): mounted filesystem with ordered data mode. Opts: (null)

Und wenn ich es (wie jedes andere Laufwerk) unmounte und dann den Schacht ausschalte, erhalte ich eine seltsamere Ausgabe vom Kernel (die letzten Teile treten etwa 10 Sekunden nach dem Ausschalten auf – das System denkt immer noch, dass das Laufwerk für eine Weile verbunden ist bis zum Timeout):

[1263588.964461] ata6: exception Emask 0x10 SAct 0x0 SErr 0x4090000 action 0xe frozen
[1263588.964467] ata6: irq_stat 0x00400040, connection status changed
[1263588.964478] ata6: SError: { PHYRdyChg 10B8B DevExch }
[1263588.964483] ata6: hard resetting link
[1263589.687000] ata6: SATA link down (SStatus 0 SControl 300)
[1263594.686806] ata6: hard resetting link
[1263595.006827] ata6: SATA link down (SStatus 0 SControl 300)
[1263595.006837] ata6: limiting SATA link speed to 1.5 Gbps
[1263600.006678] ata6: hard resetting link
[1263600.330626] ata6: SATA link down (SStatus 0 SControl 310)
[1263600.330634] ata6.00: disabled
[1263600.330645] ata6: EH complete
[1263600.330653] ata6.00: detaching (SCSI 5:0:0:0)
[1263600.334909] sd 5:0:0:0: [sdd] Synchronizing SCSI cache
[1263600.334943] sd 5:0:0:0: [sdd] Synchronize Cache(10) failed: Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[1263600.334946] sd 5:0:0:0: [sdd] Stopping disk
[1263600.334955] sd 5:0:0:0: [sdd] Start/Stop Unit failed: Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK

Das Laufwerk funktioniert jedoch einwandfrei, es gibt keinerlei Probleme oder Datenfehler, aber ich habe das Gefühl, dass es ohne eine solche Zeitüberschreitung möglicherweise besser/sicherer gemacht worden wäre.

Verwandte:Was sind die Unterschiede zwischen „-“ und „–“ in Befehlen?

Gibt es eine geeignetere Methode zum Trennen von Hot-Swap-SATA?

Ich habe versucht, ein udisksctl power-off -b /dev/sdd zu senden Befehl, aber während es für USB-Laufwerke gut funktioniert, macht es nichts mit SATA. Das Beste, was ich dachte, ist, ein Laufwerk zu suspendieren, bevor es ausgeschaltet wird, aber die Kernel-Ausgabe ist sowieso gleich.

$ uname -a
Linux dev 4.4.0-93-generic #116-Ubuntu SMP Fri Aug 11 21:17:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Akzeptierte Antwort:

Hier ist der seltsamste Befehl, der tatsächlich den Trick macht, nach dem ich gesucht habe:

device=sde; sudo sh -c "echo 1 > /sys/block/${device}/device/delete"

… und danach heißt es:

[1285227.129329] sd 5:0:0:0: [sde] Synchronizing SCSI cache
[1285227.129566] sd 5:0:0:0: [sde] Stopping disk
[1285228.209095] ata6.00: disabled

… und jetzt kann ich AUSSCHALTEN und es geht:

[1285259.491044] ata6: exception Emask 0x10 SAct 0x0 SErr 0x4090000 action 0xe frozen
[1285259.491049] ata6: irq_stat 0x00400040, connection status changed
[1285259.491052] ata6: SError: { PHYRdyChg 10B8B DevExch }
[1285259.491058] ata6: hard resetting link
[1285260.211923] ata6: SATA link down (SStatus 0 SControl 300)
[1285260.211934] ata6: EH complete

Wenig schade, dass es Root-Privilegien braucht, aber es sieht viel zufriedenstellender aus 🙂


Ubuntu
  1. Wie wird die externe Festplatte automatisch gemountet?

  2. Was ist der beste Weg, um eine binäre Anwendung für Linux zu verteilen?

  3. Wie verwendet man inotify richtig?

  4. Was ist der richtige Weg, um Tabulatoren in sed einzufügen?

  5. So überprüfen Sie den Zustand einer Festplatte

Upgrade auf ein Solid-State-Laufwerk unter Linux:Der einfache und der schwierige Weg

Was ist der beste distro-/shellunabhängige Weg, um Umgebungsvariablen festzulegen?

Was ist der beste Weg, um ein Segment aus einer Textdatei zu entnehmen?

Was ist die empfohlene Methode zum Konfigurieren eines Synaptics Touchpad-Geräts?

Was ist der einfachste Weg, um Speicherplatz auf einer Festplatte freizugeben?

Den Inhalt einer Festplatte auf Null setzen, ohne das Dateisystem zu zerstören