7

Я использую ZFS на OSX и у меня есть Zpool, который активен и онлайн:

NAME      SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
WD_1TB    931G   280G   651G    30%  1.00x  ONLINE  -

но я не могу на самом деле смонтировать его.

$ sudo zfs mount WD_1TB
cannot open 'WD_1TB': pool I/O is currently suspended
cannot open 'WD_1TB': pool I/O is currently suspended

или размонтировать его:

$ sudo zfs unmount WD_1TB
cannot open 'WD_1TB': pool I/O is currently suspended
cannot open 'WD_1TB': pool I/O is currently suspended

или даже уничтожить

$ sudo zpool destroy -f WD_1TB
cannot open 'WD_1TB': pool I/O is currently suspended

При выполнении zpool export WD_1TB он просто зависает.

При очистке ошибок устройства в пуле также возникает ошибка:

$ sudo zpool clear WD_1TB
cannot clear errors for WD_1TB: I/O error

Выше происходило то, что диск подключен через USB или нет.

Что интересно, zpool status указывает zpool на /dev /disk1, а diskutil list указывает на /dev /disk3.

Я включил сообщения отладки через: sysctl -w zfs.vnops_osx_debug=1 и запустил sudo dmesg | tail который показывает что-то вроде:

0 [Level 3] [Facility com.apple.system.fs] [ErrType IO] [ErrNo 6] [IOType Read] [PBlkNum 0] [LBlkNum 0] 
0 [Level 3] [Facility com.apple.system.fs] [DevNode devfs] [MountPt /dev] [Path /dev/disk1s2] 
disk1s2: media is not present.
0 [Level 3] [Facility com.apple.system.fs] [ErrType IO] [ErrNo 6] [IOType Read] [PBlkNum 512] [LBlkNum 512] 
0 [Level 3] [Facility com.apple.system.fs] [DevNode devfs] [MountPt /dev] [Path /dev/disk1s2] 

zfs_vnop_write(vp 0xffffff804f6303c0, offset 0x12b00000 size 0x10000
zfs_vnop_write(vp 0xffffff804f6303c0, offset 0x12b10000 size 0x10000
zfs_vnop_write(vp 0xffffff804f6303c0, offset 0x12b20000 size 0x10000
zfs_vnop_write(vp 0xffffff804f6303c0, offset 0x12b30000 size 0x10000
zfs_vnop_write(vp 0xffffff8051b031e0, offset 0x1f0000 size 0x10000

Подключение или отключение жесткого диска не помогает.

Можно ли просто смонтировать жесткий диск на OSX в вышеуказанных обстоятельствах?

Связанные с:

1 ответ1

6

Если выполнение sudo zpool clear WD_1TB не сработает, попробуйте:

$ sudo zpool clear -nFX WD_1TB

где эти недокументированные параметры означают:

  • -F: (недокументировано для clear , аналогично import) Перемотка назад. Режим восстановления для не импортируемого пула. Попытайтесь вернуть пул в импортируемое состояние, отбросив последние несколько транзакций. Не все поврежденные пулы можно восстановить с помощью этой опции. В случае успеха данные из отброшенных транзакций безвозвратно утеряны. Эта опция игнорируется, если пул импортируется или уже импортирован.
  • -n: (недокументировано для clear , аналогично import) Используется с опцией -F recovery. Определяет, можно ли снова сделать не импортируемый пул импортируемым, но фактически не выполняет восстановление пула. Для получения дополнительной информации о режиме восстановления пула см. Параметр -F выше. и затем попробуйте повторно импортировать снова:
  • -X (недокументированное): крайняя перемотка. Эффект -X, по-видимому, заключается в том, что предпринимается какая-то чрезвычайно длительная операция, которая никогда не заканчивается. В некоторых случаях для завершения процесса была необходима перезагрузка.
  • -V (недокументированный): опция UTSLing, при использовании для import она делает импорт снова импортированным, но без попытки повторного переноса.

Источник: проблема с неисправным пулом ZFS и man zpool .

$ zpool import WD_1TB

Если это не поможет, попробуйте следующие команды, чтобы удалить недопустимый zpool:

$ zpool list -v
$ sudo zfs unmount WD_1TB
$ sudo zpool destroy -f WD_1TB
$ zpool detach WD_1TB disk1s2
$ zpool remove WD_1TB disk1s2
$ zpool remove WD_1TB /dev/disk1s2
$ zpool set cachefile=/etc/zfs/zpool.cache WD_1TB

Наконец, если ничего не помогает, удалите файл /etc/zfs/zpool.cache (опционально) и просто перезагрузите компьютер.


Связанные с:

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