Извлечение устройства 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