Как исправить недействительную привязку узлов карты?

Как исправить недействительную привязку узлов карты?

Мой диск отформатирован в 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

Связанный контент