4

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

eject usbDevicePath 

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

3 ответа3

9

Решение состоит в том, чтобы закрутить диск с помощью программного обеспечения, прежде чем выключать его и отключать от сети. Лучший способ сделать это с помощью утилиты 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, и он не должен вращаться. Это безопасно отключить и отключить.

4

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

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

Команда 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .