Repare o pacote esparso do Time Machine que não será mais montado

24

Eu estraguei meu backup do Time Machine de alguma maneira. Não consigo mais montar o arquivo sparsebundle, pois recebo um erro informando que não há sistemas de arquivos montáveis.

Eu usei o comando hdiutil para anexar o arquivo sparsebundle:

hdiutil attach -nomount -readwrite flattop.sparsebundle

que resultou nos seguintes / dev / devices:

/dev/disk2              Apple_partition_scheme
/dev/disk2s1            Apple_partition_map
/dev/disk2s2            Apple_HFSX

Depois, executei o comando fsch_hfs para verificar o volume principal (/ dev / disk2s2):

fsck_hfs -drf /dev/disk2s2

Isso resultou em um aviso de que o volume dos Time Machine Backups está corrompido e precisava ser reparado:

Unable to open block device /dev/disk2s2: Permission deniedjournal_replay(/dev/disk2s2) returned 13
** /dev/rdisk2s2 (NO WRITE)
    Using cacheBlockSize=32K cacheTotalBlock=32768 cacheSize=1048576K.
   Executing fsck_hfs (version diskdev_cmds-540.1~34).
Non-empty journal:  start = 66310144, end = 94912512
   Journal need to be replayed but volume is read-only
** Checking Journaled HFS Plus volume.
** Detected a case-sensitive volume.
   The volume name is Time Machine Backups
** Checking extents overflow file.
   Unused node is not erased (node = 3568)
   Unused node is not erased (node = 3574)
   Unused node is not erased (node = 3575)
** Checking catalog file.
** The volume Time Machine Backups was found corrupt and needs to be repaired.
    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 2865568974 0xaacd1cce 
    sector size = 512 0x200 
    VolumeObject flags = 0x07 
    total sectors for volume = 2865568976 0xaacd1cd0 
    total sectors for embedded volume = 0 0x00 

Como você pode ver, também há um erro dizendo "Não é possível abrir o dispositivo de bloco / dev / disk2s2: permissão deniedjournal_replay (/ dev / disk2s2) retornada 13".

Eu pensei que isso poderia ser devido a não executar o comando fsck_hfs como um su, então tentei com o sudo, mas isso teve o mesmo resultado.

Meu arquivo sparsebundle está em um NAS Synology DS408 e está em execução sem problemas há cerca de 2 anos :(

Alguém tem uma idéia de como levar isso adiante?

Atenciosamente, Niels R.

ATUALIZAÇÃO: Como eu suspeitava ao escrever esta pergunta, provavelmente tenho um problema com permissões de leitura / gravação. Agora vejo o volume aparecendo no Utilitário de Disco e, quando clico em "Verificar", obtenho a seguinte saída:

Verifying volume “Time Machine Backups”
Checking file systemJournal need to be replayed but volume is read-only
Checking Journaled HFS Plus volume.
Detected a case-sensitive volume.
Checking extents overflow file.
Unused node is not erased (node = 3568)
Checking catalog file.
Keys out of order
The volume Time Machine Backups was found corrupt and needs to be repaired.
Error: This disk needs to be repaired. Click Repair Disk.

Posso simplesmente chmod o arquivo sparsebundle para definir as permissões corretas?

Niels R.
fonte

Respostas:

26

Eu escrevi sobre como tentar reparar erros esparsos de pacotes baseados em NAS no meu blog . Em suma:

  1. hdiutil attach -nomount -noverify -noautofsck /Volumes/{name of your disk}/{name of}.sparsebundle

    Você verá algo como

    /dev/diskx Apple_partition_scheme
    /dev/diskxs1 Apple_partition_map
    /dev/diskxs2 Apple_HFSX
    

    Onde x é a identificação do disco externo. x pode ser 2, 3, 4 ou superior. Você está interessado no rotulado Apple_HFSX ou Apple_HFS.

  2. fsck_hfs -drfy /dev/diskxs2 usando qualquer dispositivo relevante localizado na Etapa 1.

    Espero que você acabe vendo

    O volume foi reparado com sucesso

  3. hdiutil detach /dev/diskxs2


No entanto, desde o OS X 10.6.3, o Time Machine se recusará a gravar em um volume de destino que falhe na verificação. Mesmo que o processo acima consiga recuperar o backup, você ainda precisará remover as marcas pretas que o Time Machine escreveu quando falhou na verificação.

  1. Desbloqueie o pacote esparso

    chflags -R nouchg /Volumes/{name of your disk}/{name of}.sparsebundle
    
  2. Mova-o de volta para o local original

    mv /Volumes/{name of your disk}/{name of}_YYYY-MM-DD.sparsebundle /Volumes/{name of your disk}/{name of}.sparsebundle
    
  3. No diretório de nível superior do pacote esparso, edite o arquivo com.apple.TimeMachine.MachineID.plist.

    • Remover

      <key>RecoveryBackupDeclinedDate</key>
      <date>{whatever-the-date}</date>
      
    • mudança

      <key>VerificationState</key>
      <integer>2</integer>
      

      para

      <key>VerificationState</key>
      <integer>0</integer>
      
Garth Gillespie
fonte
3
A chamada para fsck_hfsretorna: Não foi possível abrir o dispositivo de bloco / dev / disk7s2: O recurso busyjournal_replay (/ dev / disk7s2) retornou 16
Stefan Müller
3
fsck_hfs -drfy / dev / disk2s2 Não é possível abrir o dispositivo de bloco / dev / disk2s2: permissão deniedjournal_replay (/ dev / disk2s2) retornou 13 ** / dev / rdisk2s2 (NO WRITE)
malhal
Essas instruções não funcionaram para mim, mas o link de Christian L fez o truque.
malhal
Isso resolveu o problema para mim, obrigado! Aqui está o resultado da execução dos comandos (para torná-lo mais pesquisável) gist.github.com/oleander/d3d37a46940d0ac4b538da62e0745601 Dica profissional: não execute os comandos acima por Wi-Fi (802.11n, 200Gb). Tentei primeiro e tive que abortar após 30h +. Acabou usando um cabo Ethernet, que "apenas" levou 2h.
Linus Oleander
11
Se fsck_hfs diz não pode reparar tentar diskutil repairVolume / dev / disk2s2
malhal
6

Atributos estendidos no sparsebundle podem estar impedindo gravações no arquivo:

Corre

chflags -R nouchg flattop.sparsebundle

Mas tenha cuidado, o pacote esparso pode ter sido protegido porque está genuinamente quebrado.

James
fonte
Se ele realmente está quebrado, há algo a perder? Entendo que a única outra opção é limpá-lo e iniciar um novo backup.
Matt
4

Não é tão simples quanto o chmod. Primeiro, parece que 10.5 / 10.6 / 10.7 todos têm pequenas diferenças em como um pacote esparso é tratado. Segundo, os sinalizadores e o status sujo / ruim de um pacote esparso são armazenados em outro local. Terceiro, pode ser necessário atacar o próprio pacote esparso - não o sistema de arquivos contido nele.

Sua melhor aposta é permitir que o Disk Utility repare na reparação da imagem antes de olhar para o sistema de arquivos incorporado. Ele funciona tanto no pacote quanto no sistema de arquivos - além de saber como a Apple armazenou as coisas.

Os detalhes do pacote são proprietários ou difíceis de discernir nos documentos do desenvolvedor - e certamente não é algo que outros utilitários de terceiros desejam corrigir nesse momento. Contanto que você esteja usando uma versão igual ou mais recente do Utilitário de Disco do que o mac que fez os backups, você deverá ficar bem. Depois de desistir do Utilitário de Disco - você pode tentar algo como o Drive Genius ou o Disk Warrior - mas eu ficaria com a ferramenta da Apple se você pretender reutilizar este pacote.

A natureza dos pacotes esparsos - especificamente os links físicos e o conceito de que ele não é compactado quando os arquivos são excluídos - há muito trabalho a ser feito . Eu tenho o DiskUtility em execução por duas semanas e ainda não concluí uma passagem de reparo em um arquivo de tamanho de 800 MB.

Na prática, é melhor reverter para uma versão anterior do seu NAS se ele tiver capturas instantâneas ou se o backup for feito por si. No final - se houver erros que o fsck / Disk Utility não consiga corrigir, seu pacote esparso será marcado como ruim e bloqueado. Você pode ler as coisas, mas nunca as escreva novamente. Veja se você pode conectar uma máquina ao armazenamento e consertar coisas (o DAS ou as conexões de alta velocidade são melhores - como é uma máquina que pode ter tempo para consertar as coisas e não ser reinicializada é o ideal)

Boa sorte - isso pode não ser recuperável a partir dos detalhes que você forneceu.

bmike
fonte
1

A resposta de @ Garth não funcionou para mim. Eu tive que adicionar a -readwriteopção hdiutilpara fazê-lo funcionar na minha imagem criptografada. Sem essa opção, hdiutilnão pede a senha.

Na etapa fsck, encontrei a Disk full error. Para corrigir isso, usei a resizeopção de aumentar o tamanho da imagem antes de executar o fsck.

Aqui estão os comandos que eu usei para corrigi-lo:

# chflags -R nouchg MyImage.sparsebundle

# hdiutil attach -nomount -noverify -readwrite -noautofsck MyImage.sparsebundle
Enter the password to access „MyImage.sparsebundle“: 
/dev/disk2              GUID_partition_scheme           
/dev/disk2s1            EFI                             
/dev/disk2s2            Apple_HFS                       

# hdiutil resize -size 1.5t MyImage.sparsebundle
Enter the password to access „MyImage.sparsebundle“: 

# fsck_hfs -drf /dev/disk2s2
** Checking Journaled HFS Plus volume.
** Detected a case-sensitive volume.
   The volume name is Time Machine-Backups
** Checking extents overflow file.
** Checking catalog file.
** Rebuilding catalog B-tree.
…

# hdiutil detach /dev/disk2s2

Conforme explicado nas outras respostas, o caminho do dispositivo pode variar, portanto, em vez de disk2s2você precisar usar o disco impresso pelo hdiutil attachcomando. Além disso, você só precisará da resizeetapa se tiver obtido Disk full erroro fsck_hfscomando ao executar o comando. Além disso, em vez do meu, 1.5tvocê deve inserir um novo tamanho razoável que seja ligeiramente maior que o tamanho da imagem atual (verifique com du -hs MyImage.sparsebundle).

Ortwin Gentz
fonte
Ótimo, mas tive que desconectar antes de redimensionar, caso contrário, hdiutil: resize: falhou. O recurso está temporariamente indisponível (35)
malhal 22/10
0

Eu tenho um Syology NAS e estava recebendo o erro NO-WRITE ao tentar executar a correção, mas me deparei com esta versão aprimorada que salvou meu bacon.

http://tonylawrence.com/blog/2012/08/11/fixing-corrupted-time-machine-backups/

Christian L.
fonte
2
Bem-vindo ao perguntar diferente! Embora esse link possa responder à pergunta, é melhor incluir aqui as partes essenciais da resposta e fornecer o link para referência. As respostas somente para links podem se tornar inválidas se a página vinculada for alterada.
grg
Eu também estava ficando sem gravação, essas foram as únicas instruções que funcionaram para mim e tentei todas as outras.
malhal
0

Se você fizer backup de uma imagem de disco de pacote esparso em uma máquina e tentar abri-la em outra, poderá receber a mensagem de erro "nenhum sistema de arquivos montável", especialmente se os nomes de usuário dos proprietários diferirem entre as duas máquinas.

Minha solução foi copiar o pacote para o meu disco local e executar

sudo chown -R MyUserName nonmounting.sparsebundle

nele.

Depois disso, abriu bem e tudo estava bem com o mundo.

Punho Rítmico
fonte
0

Eu fiz todas as etapas acima, mas depois de um tempo a imagem não pôde ser reparada usando fsck_hfs ou hdutil, muitos erros relacionados a threads ou nós foram corrompidos.

O que funcionou para mim foi:

  1. (Opcional) Conecte uma unidade externa USB 1TB formatada em HFS Jornaled.
  2. (Opcional) No Airport Utility, vá para Time Capsule Disks -> Archive Disk na unidade conectada ao Time Capsule por USB. Levei 12 horas para 600 GB.

  3. anexo hdiutil -nomount -noverify -noautofsck /Volumes/DISK/MyFile.sparsebundle

  4. Em seguida, o disco ficou visível usando o DiskWarrior . Na guia Diretório, clique em Reconstruir . Demorou cerca de 1 hora.

Uma vez corrigido, finalmente consegui montar e fazer backup dos meus arquivos.

Clique em Reconstruir

Javier Giovannini
fonte
Entendi: "O DiskWarrior criou com êxito um novo diretório para o disco chamado" Time Machine Backups ". O novo diretório não pode substituir o diretório original porque o disco está bloqueado". você sabe como desbloquear?
maxisme
0

Isso funcionou para mim:

  • Clique com o botão direito do mouse na imagem do disco, altere "Todos" para ler e escrever.
  • Terminal aberto
  • chmod -R 777 {disk image path}

Aparentemente, era um problema de permissões.

OBSERVAÇÃO: ISSO fará com que seu backup seja acessível a qualquer pessoa que tenha acesso físico a ele

Kyle
fonte
0

Espero que isso ajude alguém.

Fiquei bloqueado na minha conta do cofre de arquivos herdada após uma atualização de segurança do El Capitan com um erro 'sem sistema de arquivos montável'.

O que funcionou no meu caso foi abrir o arquivo sparsebundle usando 'show package contents' no menu suspenso e alterar manualmente o acesso de 'todos' de 'sem acesso' a 'leitura e gravação' para cada um dos itens incluídos. Para o diretório 'bands', usei o comando 'aplicar a itens fechados' no menu suspenso.

p_a
fonte
0

Eu tive um problema semelhante com um pacote esparso hospedado em uma máquina Windows. Eu tentei de tudo nesse e em outros threads, resultando sempre em um erro sem sistemas de arquivos montáveis (mostrando também um erro 112).

O problema foi o Windows Defender, que detectou um dos arquivos no pacote esparso como um Trojan (Trojan: Script / Foretype.A! Ml). Outras pessoas relataram algo em falso-positivos semelhantes, como cache do Spotify ou arquivos compilados pelo Rust .

Para resolver o problema, exclua o arquivo da quarentena do Windows Defender e monte o pacote esparso novamente. Demorou muito, então você pode obter uma saída usando este comando:

hdiutil attach -verbose -debug -mountpoint /mount/path /path/to.sparsebundle
David Martínez
fonte
-1

Eu só tive o mesmo problema

** /dev/rdisk2s2 (NO WRITE)

ao tentar corrigir um pacote esparso de TM interrompido em um QNAP 419II.

"Ejetei" a montagem da TM usando o Finder e executei

hdiutil attach -nomount -noverify -noautofsck ...

(encontrado aqui Corrigir erros de backup baseados em NAS do Time Machine Sparsebundle ) novamente, que (ao contrário da primeira execução com a qual imprimiu "/ dev / disk2s2 Apple_HFSX") desta vez, deu

/dev/disk1s2            Apple_HFSX  

Verificando o sys-log com

tail -f /var/log/fsck_hfs.log

Não mostrou

/dev/rdisk1s2: fsck_hfs run at Sun Feb 17 17:53:20 2013
/dev/rdisk1s2: ** /dev/rdisk1s2
/dev/rdisk1s2:    Executing fsck_hfs (version diskdev_cmds-540.1~34).
** Checking Journaled HFS Plus volume.
** Detected a case-sensitive volume.
... LOTS-OF-OUTPUT ...
QUICKCHECK ONLY; FILESYSTEM CLEAN

Mesmo assim, a reativação da TM ainda resultou em mensagem de backup corrigida :(

Boa sorte!

dergab
fonte