Como corrigir uma ligação de nó de mapa inválida?

4

Minha unidade é formatada para hfs + e não está limpa.

No exemplo, ao tentar montar a unidade por mount -f -o rw , dmesg exibe o erro:

hfs: Filesystem was not cleanly unmounted, running fsck.hfsplus is recommended.
mounting read-only.

Então, quando estou tentando consertá-lo via fsck.hfsplus (parte de hfsprogs ) ele diz:

$ 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 

Apesar de usar -y ou -f , a unidade não está sendo reparada.

Aqui está a explicação desse erro de acordo com este blog :

Once the B*-Tree has been checked, fsck moves on to checking the Allocation Map. fsck checks the header node as described above. Then it checks through each node making sure it identifies itself as a map node and has the proper number of records. If the node fails these checks fsck returns “Invalid Map Node.” Then fsck checks to make sure the node height is not 0 (“Invalid Node height”). Finally, if it has made it to the bottom of the tree and the mapSize,(which stores the total number of records in the tree and is decremented each time a node is processed) is not 0, fsck knows there are nodes that are orphaned and returns “Invalid map node linkage.”

No entanto, não sei como corrigir esse erro, pois ele não está sendo corrigido automaticamente e não consigo montar a partição para ser gravável. Alguma idéia de como corrigir esse erro?

P.S. O Utilitário de Disco tem um problema semelhante.

    
por kenorb 08.10.2014 / 17:51

1 resposta

5

Você deve tentar reconstruir o arquivo de catálogo ( B-tree ) no sistema de arquivos especificado (que é HFS + ) especificando a opção -r para fsck , por exemplo:

$ fsck.hfsplus -fryd /dev/sdd2

Esta opção só funcionará se houver espaço contíguo suficiente no sistema de arquivos especificado para um novo arquivo de catálogo e se não houver danos aos nós folha no arquivo de catálogo existente (em outras palavras, o fsck é capaz de atravessar cada um dos nós na btree solicitada com sucesso).

Naturalmente, faça o backup (despejo de disco de toda a imagem) antes de executar qualquer operação de disco, se você não quiser correr o risco de corromper os dados ainda mais.

Veja mais executando man fsck.hfsplus .

Se isso não ajudar, tente usar outras ferramentas para reparar seu disco, por exemplo:

  • TestDisk por CGSecurity | Mac, Windows, Linux ( apt-get install testdisk )
  • DiskWarrior da Alsoft (comercial) - disco de boot ou aplicativo para Mac
por 08.10.2014 / 23:21

Tags