Извлечение устройства SATA в Linux

Как правильно извлечь устройство SATA в Linux? Я знаю, что команда eject может сделать это для USB-устройства:

eject usbDevicePath 

Работает ли это так же для устройств SATA? Будет ли он синхронизировать кэши и правильно отключать SATA-устройство?

3 ответа

Решение

Решение состоит в том, чтобы закрутить диск с помощью программного обеспечения, прежде чем выключать его и отключать от сети. Лучший способ сделать это - использовать утилиту scsiadd. Эта программа может добавлять и удалять диски в подсистеме SCSI Linux. Кроме того, в довольно современных ядрах удаление устройства вызовет команду остановки, которая является именно тем, что мы ищем.

Бежать:

$ sudo scsiadd -p

который должен напечатать что-то вроде:

Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: SAMSUNG HD300LJ  Rev: ZT10
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi4 Channel: 00 Id: 00 Lun: 00
  Vendor: LITE-ON  Model: DVDRW LH-20A1L   Rev: BL05
  Type:   CD-ROM                           ANSI  SCSI revision: 05
Host: scsi5 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: WDC WD10EACS-00Z Rev: 01.0
  Type:   Direct-Access                    ANSI  SCSI revision: 05

Определите диск, который вы хотите удалить, и затем выполните:

$ sudo scsiadd -r host channel id lun

подставляя соответствующие значения из вывода scsiadd -p. Например, если бы я хотел удалить "WDC WD10EACS-00Z", я бы запустил:

$ sync & sudo scsiadd -r 5 0 0 0

Если все работает, scsiadd должен вывести:

Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: SAMSUNG HD300LJ  Rev: ZT10
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi4 Channel: 00 Id: 00 Lun: 00
  Vendor: LITE-ON  Model: DVDRW LH-20A1L   Rev: BL05
  Type:   CD-ROM                           ANSI  SCSI revision: 05

Вы можете перепроверить конец dmesg. Тебе следует увидеть:

[608188.235216] sd 5:0:0:0: [sdb] Synchronizing SCSI cache
[608188.235362] sd 5:0:0:0: [sdb] Stopping disk
[608188.794296] ata6.00: disabled

На этом этапе диск удален из подсистемы SCSI Linux, и он не должен вращаться. Это безопасно отключить и отключить.

Этот ответ был наиболее полезным: после размонтирования, остановки LVM, LUKS и т. Д. Вы делаете:

echo 1 >/sys/block/sdX/device/delete

Команда mount может помочь вам, смотрите man mount

Итак, вам нужно "извлечь" это устройство, просто проверьте, какое это устройство, вы можете сделать это с:

# sudo df -lh
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       145G   50G   87G  37% /

Поэтому, если вы хотите "извлечь" /dev/sda1, просто используйте:

sudo umount /dev/sda1

Конечно, если устройство используется / занято, оно не позволит вам сделать это, как sda1, где моя ОС:D

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