Бывает такое — вот у тебя сфейленный диск в рейде, ты его вынимаешь, ставишь новый, копируешь таблицу разделов и тут тебе — оп-па, а он чем-то занят, типа такого:

# sfdisk -R /dev/sdc                                                                                                                                                                            
BLKRRPART: Устройство или ресурс занято
sfdisk: Этот диск сейчас используется.

Но как, чем?!

Он же только подключен.

lsof на блочное устройство конечно ни о чем не сообщает, что за х..?

Тут надо понимать, что может существовать какой-то демон, обращающийся к этому диску, который и «занимает» его, но вычислить его не так-то просто.

Если диск не новый, затираем его через dd на всякий случай и вытаскиваем программно с помощью команд отправляемых scsi драйверу:

echo 1 >/sys/class/scsi_device/2\:0\:0\:0/device/delete

Предварительно надо с помощью lsscsi выяснить номер корзины, в которой стоит требуемый диск.

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

# WARNING: Your hard drive is failing
Device: /dev/sdc [SAT], unable to open device

Так-так, кажется кто-то проявил себя.

Идем в системный лог, и ищем все сообщения связанные с этим диском.

В моем случае было такое сообщение:

smartd[1095]: Device: /dev/sdc [SAT], open() failed: No such device

И все сразу стало ясно.

Ищем этот процесс, убиваем/рестартуем или что еще вы там делаете обычно с залипшими процессами.

И для инициирования рескана от scsi, выполняем:

# echo '- - -' > /sys/class/scsi_host/host2/scan

Опять же, порядковый номер host* соответствует позиции диска в корзине, считая с нуля!

После рескана диск появляется, и можно смело его размечать и добавлять в ваш многострадальный рейд.