
Это не то же самое, что импорт пула из рухнувшей системы, поскольку система не рухнула. ОС в порядке (на другом пуле/наборе дисков/шине sata).
Я хотел бы скопировать некоторые ключевые файлы перед перезагрузкой (и не убедиться, что она не будет чистой, поскольку поблизости нет умных рук в недостаточно обслуживаемом удаленном центре обработки данных клиента).
В этом случае USB-накопитель отключился, а затем снова подключился (сбой питания/сбой), но zfs считает, что пул остается смонтированным, но все операции ввода-вывода к нему блокируются — sdd и sde теперь стали sdf и sdg.
Пул был смонтирован с помощью /dev/disk/by-id, но, конечно, эти идентификаторы те же самые (и в /dev теперь указывают на sd[fg]), а старый пул не был экспортирован.
Каждая команда zpool застревает, поскольку, как я предполагаю, она затрагивает /dev/sdd и sde, что затем подвешивает всю оболочку (сейчас это моя 10-я оболочка bash в окнах Screen...).
Однако массив работает -- dd if=/dev/sdf1 of=/dev/null
работает отлично, и iostat показывает мне IO на этом диске (то же самое для sdg). Так что диск читается без заклинивания.
Но любая команда zpool, даже если она zpool import -Nd /dev/sdf1 poolname newpoolname
затрагивает что-то где-то в мире sd[de], вклинивается.
Какую команду импорта zpool мне запустить, чтобы она абсолютно не пыталась затрагивать какой-либо другой диск? zpool import -d /dev/sdf1 -N newname
(или «oldname newname») просто заклинивает.
Последним средством может стать копирование всего диска на другую систему в виде необработанного образа, а затем работа с zpool там (через циклические устройства), но отправка 4 ТБ займет целую вечность.