
Мой диск отформатирован в hfs+ и он не чистый.
Например, когда я пытаюсь смонтировать диск mount -f -o rw
, dmesg
отображается ошибка:
hfs: Filesystem was not cleanly unmounted, running fsck.hfsplus is recommended.
mounting read-only.
Итак, когда я пытаюсь восстановить его через fsck.hfsplus
(часть hfsprogs
), он говорит:
$ fsck -dyf /media/sdd2
** /dev/sdd2
Using cacheBlockSize=32K cacheTotalBlock=1024 cacheSize=32768K.
** Checking HFS Plus volume.
** Detected a case-sensitive catalog.
** Checking Extents Overflow file.
** Checking Catalog file.
Invalid map node linkage
(4, 0)
** Volume check failed.
volume check failed with error 7
volume type is pure HFS+
primary MDB is at block 0 0x00
alternate MDB is at block 0 0x00
primary VHB is at block 2 0x02
alternate VHB is at block 3906291630 0xe8d547ae
sector size = 512 0x200
VolumeObject flags = 0x07
total sectors for volume = 3906291632 0xe8d547b0
total sectors for embedded volume = 0 0x00
Несмотря на использование -y
или -f
, привод не ремонтируется.
Вот объяснение этой ошибки согласно этомублог:
После проверки B*-дерева fsck переходит к проверке карты распределения. fsck проверяет узел заголовка, как описано выше. Затем он проверяет каждый узел, убеждаясь, что он идентифицирует себя как узел карты и имеет правильное количество записей. Если узел не проходит эти проверки, fsck возвращает «Недопустимый узел карты». Затем fsck проверяет, чтобы убедиться, что высота узла не равна 0 («Недопустимая высота узла»). Наконец, если он добрался до конца дерева и mapSize (который хранит общее количество записей в дереве и уменьшается каждый раз при обработке узла) не равен 0,fsck знает, что есть потерянные узлы, и возвращает сообщение «Недопустимая связь узлов карты».
Однако я не знаю, как исправить эту ошибку, так как она не исправляется автоматически, и я не могу смонтировать раздел для записи. Есть идеи, как исправить эту ошибку?
У PS Disk Utility похожая проблема.
решение1
Вам следует попробовать перестроить файл каталога (B-дерево) в указанной файловой системе (котораяХФС+) указав -r
опцию для fsck
, например:
$ fsck.hfsplus -fryd /dev/sdd2
В настоящее время эта опция будет работать только в том случае, если в указанной файловой системе достаточно непрерывного пространства для нового файла каталога и если нет повреждений конечных узлов в существующем файле каталога (другими словами, fsck может успешно обойти каждый из узлов в запрошенном btree).
Конечно, перед выполнением любых операций с диском сделайте резервную копию (дамп всего образа диска), если вы не хотите рисковать еще большим повреждением данных.
Узнайте больше, запустив man fsck.hfsplus
.
Если это не поможет, попробуйте использовать другие инструменты для восстановления диска, например:
- ТестДискот CGSecurity | Mac, Windows, Linux (
apt-get install testdisk
) - DiskWarriorот Alsoft (коммерческая) - загрузочный диск или приложение для Mac