Каким образом можно отключить жесткий диск SATA с возможностью «горячей» замены?

Я использую SATA-отсек для горячей замены, и у меня в BIOS этот конкретный порт настроен специально для «горячей замены».

В этом отсеке есть удобная кнопка «POWER ON / OFF», поэтому никаких прерываний при подключении / отключении кабелей не происходит.

Когда я включаю диск, я сразу получаю некоторые ошибки ядра, прежде чем он будет монтироваться:

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

И когда я размонтирую его (как и любой другой диск), а затем выключая отсек, я получаю более странный вывод из ядра (последние части появляются примерно через 10 секунд после выключения), система все еще думает, что диск подключен некоторое время до истечения таймаута):

[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

Однако диск работает нормально, никаких проблем или ошибок данных, но у меня возникает ощущение, что это могло быть сделано лучше / безопаснее, без такого таймаута [!ding]

Есть ли более правильный способ отключения SATA с горячей заменой?

Я пытался отправить команду udisksctl power-off -b /dev/sdd, но в то время как он отлично работает для USB-накопителей, он ничего не делает с SATA. Лучшее, что я подумал, это приостановить диск, прежде чем отключить питание, но выход ядра будет таким же.

$ 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
2
задан 26 December 2017 в 04:53

4 ответа

Вот самая странная команда, которая на самом деле делает трюк, который я искал:

sudo sh -c 'echo 1 > /sys/block/sdd/device/delete'

... и после этого он идет:

[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

... и теперь я могу отключить питание, и он идет:

[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

Маленький облом, что ему нужна привилегия root, но он выглядит намного более удовлетворительным:)

1
ответ дан 18 July 2018 в 00:29

Когда вы размонтировали все разделы с файловыми системами на диске (и сменили все активные разделы подкачки), вы можете отключить питание без риска для файловых систем (и, возможно, для хранения данных в спящем состоянии) и после этого вы можете отключить диск.

Я использовал этот метод в течение многих лет с дисками eSATA, которые я использую для резервного копирования, и у меня не было проблем.

Процесс размонтирования начинается с промывки буферов (завершает запись данных в смонтированные файловые системы, которые также могут выполняться отдельно с помощью команды sync), и после этого процесс размонтирования завершается (и файловые системы больше не доступны).

Следующие ссылки могут помочь описать размонтирование и изгнание USB-накопителей (eject = unmount и отключить питание),

подробнее об отключении: Отключите мою Windows диск на Ubuntu pendrive unmount и eject: Как отключить USB-устройство MTP из командной строки. Это размонтирование. Буферы очищаются, поэтому можно отключить устройство от сети. Устройство все еще включено, поэтому его можно увидеть на рабочем столе, и его можно снова установить. Это отличается от извлечения. Выталкиваемый pendrive будет отключен, и его необходимо отключить и снова подключить, если вы хотите его установить. Я не использую общий метод автоматического извлечения для дисков [e] SATA в linux, но вы можете использовать следующую последовательность действий, отключить отключение отключения питания

. Вы можете найти методы с помощью hdparm до отключите диск SATA, но я не использовал их, и я не думаю, что они необходимы.

1
ответ дан 18 July 2018 в 00:29

Вот самая странная команда, которая на самом деле делает трюк, который я искал:

sudo sh -c 'echo 1 > /sys/block/sdd/device/delete'

... и после этого он идет:

[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

... и теперь я могу отключить питание, и он идет:

[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

Маленький облом, что ему нужна привилегия root, но он выглядит намного более удовлетворительным:)

1
ответ дан 24 July 2018 в 17:14

Когда вы размонтировали все разделы с файловыми системами на диске (и сменили все активные разделы подкачки), вы можете отключить питание без риска для файловых систем (и, возможно, для хранения данных в спящем состоянии) и после этого вы можете отключить диск.

Я использовал этот метод в течение многих лет с дисками eSATA, которые я использую для резервного копирования, и у меня не было проблем.

Процесс размонтирования начинается с промывки буферов (завершает запись данных в смонтированные файловые системы, которые также могут выполняться отдельно с помощью команды sync), и после этого процесс размонтирования завершается (и файловые системы больше не доступны).

Следующие ссылки могут помочь описать размонтирование и изгнание USB-накопителей (eject = unmount и отключить питание),

подробнее об отключении: Отключите мою Windows диск на Ubuntu pendrive unmount и eject: Как отключить USB-устройство MTP из командной строки. Это размонтирование. Буферы очищаются, поэтому можно отключить устройство от сети. Устройство все еще включено, поэтому его можно увидеть на рабочем столе, и его можно снова установить. Это отличается от извлечения. Выталкиваемый pendrive будет отключен, и его необходимо отключить и снова подключить, если вы хотите его установить. Я не использую общий метод автоматического извлечения для дисков [e] SATA в linux, но вы можете использовать следующую последовательность действий, отключить отключение отключения питания

. Вы можете найти методы с помощью hdparm до отключите диск SATA, но я не использовал их, и я не думаю, что они необходимы.

1
ответ дан 24 July 2018 в 17:14
  • 1
    Thx, это ценная информация, но я действительно знал все это уже и искал что-то еще;) – GreggD 26 December 2017 в 01:00
  • 2
    @GreggD, будем надеяться, что кто-то, кто знает больше о продвинутых методах с дисками SATA, может чип и дать вам то, что вы ищете :-) – sudodus 26 December 2017 в 01:04
  • 3
    Да, проверьте мой ответ ниже;) Найди эту команду в каком-то блоге. – GreggD 26 December 2017 в 01:07

Другие вопросы по тегам:

Похожие вопросы: