GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Cuál es la forma correcta de desconectar el disco duro SATA de intercambio en caliente?

Estoy usando una bahía de intercambio en caliente SATA y tengo en BIOS este puerto en particular configurado específicamente para "Intercambio en caliente".

Esta bahía tiene un conveniente botón de "ENCENDIDO/APAGADO", por lo que no se producen interrupciones durante la conexión/desconexión de los cables.

Cuando enciendo una unidad, recibo inmediatamente algunos errores del kernel, antes de que se monte:

[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)

Y cuando lo estoy desmontando (como cualquier otra unidad) y luego APAGANDO la bahía, obtengo una salida más extraña del núcleo (las últimas partes ocurren unos 10 segundos después de apagarse; el sistema todavía piensa que la unidad está conectada por un tiempo) hasta que se agote el tiempo de espera):

[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

Sin embargo, la unidad funciona bien, sin problemas ni errores de datos en absoluto, pero tengo la sensación de que podría haberse hecho de una manera mejor/más segura, sin ese tiempo de espera.

Relacionado:¿Cuáles son las diferencias entre "-" y "-" en los comandos?

¿Existe una forma más adecuada de desconectar el SATA de intercambio en caliente?

He estado intentando enviar un udisksctl power-off -b /dev/sdd comando, pero si bien funciona bien para unidades USB, no hace nada con SATA. Lo mejor que pensé es suspender una unidad, antes de apagarla, pero la salida del kernel es la misma de todos modos.

$ 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

Respuesta aceptada:

Aquí está el comando más extraño que realmente hace el truco que estaba buscando:

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

… y después de esto dice:

[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

… y ahora puedo APAGAR y dice:

[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

Un poco molesto que necesita privilegios de root, pero parece mucho más satisfactorio 🙂


Ubuntu
  1. ¿Cuál es la mejor forma independiente de distro/shell para establecer variables de entorno?

  2. ¿Cuál es la mejor manera de sacar un segmento de un archivo de texto?

  3. ¿Cuál es la mejor manera de contar el número de archivos en un directorio?

  4. ¿Cómo saber el número de sectores defectuosos en el disco duro?

  5. ¿Cómo apagar el disco duro en Ubuntu?

Actualización a una unidad de estado sólido en Linux:la forma fácil y la forma difícil

¿Cuál es la forma recomendada de configurar un dispositivo con panel táctil Synaptics?

¿Cuál es la forma correcta de usar inotify?

¿Cuál es la forma más fácil de liberar espacio en un disco duro?

Cómo comprobar la salud de un disco duro

Identifique físicamente el disco duro defectuoso