Napraw rzadki pakiet Wehikułu Czasu, który nie będzie już montowany

24

W jakiś sposób zepsułem kopię zapasową Time Machine. Nie jestem już w stanie zamontować pliku sparsebundle, ponieważ pojawia się błąd informujący, że nie ma montowanych systemów plików.

Użyłem polecenia hdiutil, aby załączyć plik sparsebundle:

hdiutil attach -nomount -readwrite flattop.sparsebundle

co spowodowało następujące / dev / devices:

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

Następnie uruchomiłem polecenie fsch_hfs, aby sprawdzić główny wolumin (/ dev / disk2s2):

fsck_hfs -drf /dev/disk2s2

Spowodowało to powiadomienie, że wolumin Kopie zapasowe maszyny czasu jest uszkodzony i wymaga naprawy:

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 

Jak widać, pojawia się również błąd: „Nie można otworzyć urządzenia blokowego / dev / disk2s2: Uprawnienie odmowa dostępu_odpowiedzi (/ dev / disk2s2) zwróciła 13”.

Myślałem, że może to wynikać z nie uruchomienia komendy fsck_hfs jako su, więc wypróbowałem to z sudo, ale to miało ten sam rezultat.

Mój plik sparsebundle znajduje się na serwerze Synology DS408 NAS i działa bez problemu od około 2 lat :(

Czy ktoś ma pomysł, jak to zrobić dalej?

Z poważaniem, Niels R.

AKTUALIZACJA: Jak podejrzewałem podczas pisania tego pytania, prawdopodobnie mam problem z uprawnieniami do odczytu / zapisu. Teraz widzę wolumin pojawiający się w Narzędziu dyskowym, a kiedy klikam „Weryfikuj”, otrzymuję następujące dane wyjściowe:

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.

Czy mogę po prostu chmod plik sparsebundle, aby ustawić odpowiednie uprawnienia?

Niels R.
źródło

Odpowiedzi:

26

Na moim blogu napisałem, jak spróbować naprawić błędy sparsebundle oparte na serwerze NAS . W podsumowaniu:

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

    Zobaczysz wtedy coś takiego

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

    Gdzie x jest identyfikatorem dysku zewnętrznego. x może wynosić 2, 3, 4 lub więcej. Interesuje Cię ten o nazwie Apple_HFSX lub Apple_HFS.

  2. fsck_hfs -drfy /dev/diskxs2 za pomocą dowolnego odpowiedniego urządzenia znajdującego się w kroku 1.

    Mam nadzieję, że w końcu to zobaczysz

    Wolumin został pomyślnie naprawiony

  3. hdiutil detach /dev/diskxs2


Jednak od wersji OS X 10.6.3 Time Machine odmówi zapisu do woluminu docelowego, który nie przejdzie weryfikacji. Nawet jeśli powyższym procesowi uda się odzyskać kopię zapasową, może być konieczne usunięcie czarnych znaków napisanych przez Time Machine, gdy weryfikacja nie powiodła się.

  1. Odblokuj sparsebundle

    chflags -R nouchg /Volumes/{name of your disk}/{name of}.sparsebundle
    
  2. Przenieś go z powrotem do pierwotnej lokalizacji

    mv /Volumes/{name of your disk}/{name of}_YYYY-MM-DD.sparsebundle /Volumes/{name of your disk}/{name of}.sparsebundle
    
  3. W katalogu najwyższego poziomu pakietu sparsebundle dokonaj edycji pliku com.apple.TimeMachine.MachineID.plist.

    • Usunąć

      <key>RecoveryBackupDeclinedDate</key>
      <date>{whatever-the-date}</date>
      
    • Zmiana

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

      do

      <key>VerificationState</key>
      <integer>0</integer>
      
Garth Gillespie
źródło
3
Wezwanie do fsck_hfspowrotu: Nie można otworzyć urządzenia blokowego / dev / disk7s2: Zasób busyjournal_replay (/ dev / disk7s2) zwrócił 16
Stefan Müller
3
fsck_hfs -drfy / dev / disk2s2 Nie można otworzyć urządzenia blokowego / dev / disk2s2: zezwolenie deniedjournal_replay (/ dev / disk2s2) zwróciło 13 ** / dev / rdisk2s2 (NO WRITE)
malhal
Te instrukcje nie działały dla mnie, ale link Christiana L. załatwił sprawę.
malhal
To rozwiązało problem dla mnie, dzięki! Oto wynik działania poleceń (aby ułatwić wyszukiwanie) gist.github.com/oleander/d3d37a46940d0ac4b538da62e0745601 Pro wskazówka: nie uruchamiaj powyższych poleceń przez Wi-Fi (802.11n, 200 Gb). Najpierw spróbowałem i musiałem przerwać po 30 godzinach +. Skończyło się na użyciu kabla Ethernet, który „tylko” zajął 2 godziny.
Linus Oleander,
1
Jeśli fsck_hfs mówi nie może próbować naprawy diskutil repairVolume / dev / disk2s2
malhal
6

Rozszerzone atrybuty w pakiecie sparsebundle mogą uniemożliwiać zapisywanie w pliku:

Biegać

chflags -R nouchg flattop.sparsebundle

Ale bądź ostrożny, sparsebundle mógł być chroniony, ponieważ naprawdę jest zepsuty.

James
źródło
Jeśli naprawdę jest zepsuty, czy jest coś do stracenia? Rozumiem, że jedyną inną opcją jest wyczyszczenie go i rozpoczęcie nowej kopii zapasowej.
Matt
4

To nie jest takie proste jak chmod. Po pierwsze, wydaje się, że wszystkie 10.5 / 10.6 / 10.7 mają niewielkie różnice w sposobie obsługi rzadkiego pakietu. Po drugie, flagi i brudny / zły status rzadkiego pakietu są przechowywane gdzie indziej. Po trzecie, może być konieczne zaatakowanie samego rzadkiego pakietu - nie systemu plików, który jest w nim zawarty.

Najlepiej jest pozwolić Narzędziu dyskowemu złamać się przy naprawie obrazu, zanim spojrzysz na osadzony w nim system plików. Działa zarówno w pakiecie, jak i systemach plików - a także wie, jak Apple przechowywał różne rzeczy.

Szczegóły pakietu są zastrzeżone lub trudno je dostrzec na podstawie dokumentacji dla programistów - i na pewno nie jest to coś, co inne narzędzia innych firm są w tym momencie chętne do naprawienia. Tak długo, jak używasz równej lub nowszej wersji Narzędzia dyskowego niż komputer Mac, który utworzył kopie zapasowe, wszystko powinno być w porządku. Po rezygnacji z Narzędzia dyskowego - możesz spróbować czegoś takiego jak Drive Genius lub Disk Warrior - ale trzymałbym się narzędzia Apple, jeśli masz nadzieję ponownie użyć tego pakietu.

Charakter rzadkich pakietów - w szczególności twardych linków, a także koncepcja, że ​​nie są one kompaktowane po usunięciu plików, jest wiele do zrobienia . Uruchomiłem DiskUtility od dwóch tygodni i nadal nie kończę naprawy w archiwum o wielkości 800 MB.

W praktyce lepiej powrócić do poprzedniej wersji NASa, jeśli ma on migawki lub sam się utworzył kopię zapasową. W końcu - jeśli wystąpią błędy, których fsck / Disk Utility nie może naprawić, twój rzadki pakiet zostanie oznaczony jako zły i zostanie zablokowany. Następnie możesz czytać, ale nigdy więcej do tego nie pisać. Sprawdź, czy możesz podłączyć maszynę do pamięci i naprawić rzeczy (lepsze są połączenia DAS lub szybkie - podobnie jak maszyna, która może mieć czas na naprawę rzeczy i nie uruchamia się ponownie, jest idealna)

Powodzenia - może nie być to możliwe do odzyskania na podstawie podanych przez Ciebie szczegółów.

bmike
źródło
1

@ Odpowiedź Gartha nie zadziałała dla mnie. Musiałem dodać -readwriteopcję hdiutil, aby działała dla mojego zaszyfrowanego obrazu. Bez tej opcji hdiutilnie prosi o hasło.

W kroku fsck napotkałem Disk full error. Aby to naprawić, użyłem resizeopcji powiększenia rozmiaru obrazu przed uruchomieniem fsck.

Oto polecenia, których użyłem, aby to naprawić:

# 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

Jak wyjaśniono w innych odpowiedziach, ścieżka urządzenia może się różnić, dlatego zamiast disk2s2korzystać z dysku wydrukowanego przez hdiutil attachpolecenie. resizeKrok ten jest potrzebny tylko wtedy, Disk full errorgdy wykonano fsck_hfspolecenie. Ponadto zamiast mojego 1.5tnależy wprowadzić rozsądny nowy rozmiar, który jest tylko nieco większy niż obecny rozmiar obrazu (sprawdź za pomocą du -hs MyImage.sparsebundle).

Ortwin Gentz
źródło
Świetnie, ale musiałem się odłączyć, zanim zmieniłem rozmiar hdiutil: resize: failed. Czasowo niedostępny zasób (35)
malhal
0

Mam serwer Syology NAS i podczas próby uruchomienia poprawki pojawiał się błąd BRAK ZAPISU, ale natknąłem się na tę poprawioną wersję, która uratowała mój bekon.

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

Christian L.
źródło
2
Witamy, aby zapytać inaczej! Chociaż ten link może odpowiedzieć na pytanie, lepiej jest dołączyć tutaj istotne części odpowiedzi i podać link w celach informacyjnych. Odpowiedzi zawierające tylko łącze mogą stać się nieprawidłowe, jeśli połączona strona ulegnie zmianie.
grg
Ja również dostawałem zakaz pisania, to były jedyne instrukcje, które działały dla mnie i wypróbowałem wszystkie pozostałe.
malhal
0

Jeśli utworzysz kopię zapasową rzadkiego obrazu dysku pakietu na jednym komputerze i spróbujesz go otworzyć na innym, może pojawić się komunikat o błędzie „Brak możliwych do zamontowania systemów plików”, zwłaszcza jeśli nazwy użytkowników właścicieli różnią się między dwoma komputerami.

Moim rozwiązaniem było skopiowanie pakietu na mój dysk lokalny i uruchomienie

sudo chown -R MyUserName nonmounting.sparsebundle

na tym.

Potem wszystko poszło dobrze i wszystko było w porządku ze światem.

Rytmiczny Fistman
źródło
0

Zrobiłem wszystkie powyższe kroki, ale po pewnym czasie obrazu nie można naprawić za pomocą fsck_hfs lub hdutil, wiele błędów związanych z wątkami lub węzłami jest uszkodzonych.

Dla mnie zadziałało:

  1. (Opcjonalnie) Podłącz zewnętrzny dysk USB 1 TB sformatowany w systemie plików HFS Jornaled.
  2. (Opcjonalnie) W narzędziu Airport Utility przejdź do Time Capsule Disks -> Archiwizuj dysk do napędu podłączonego do Time Capsule przez USB. Zajęło mi to 12 godzin dla 600 GB.

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

  4. Następnie dysk był widoczny za pomocą DiskWarrior . Na karcie Katalog kliknij opcję Przebuduj . Zajęło to około 1 godziny.

Po naprawieniu mogłem w końcu zamontować i wykonać kopię zapasową plików.

Kliknij opcję Przebuduj

Javier Giovannini
źródło
Rozumiem: „DiskWarrior pomyślnie zbudował nowy katalog dla dysku o nazwie„ Kopie zapasowe wehikułu czasu ”. Nowy katalog nie może zastąpić oryginalnego katalogu, ponieważ dysk jest zablokowany.” czy wiesz jak odblokować?
maxisme
0

To działało dla mnie:

  • Kliknij obraz dysku prawym przyciskiem myszy, zmień „Wszyscy”, aby czytać i pisać.
  • Otwórz terminal
  • chmod -R 777 {disk image path}

Najwyraźniej był to problem z uprawnieniami.

UWAGA: UŻYTKOWNIK BĘDZIE DOSTĘPNY DLA KAŻDEGO, KTÓRY MA DOSTĘP FIZYCZNY

Kyle
źródło
0

Mam nadzieję, że to może komuś pomóc.

Zostałem zablokowany z mojego starego konta przechowalni plików po aktualizacji zabezpieczeń El Capitan z błędem „nie można zamontować systemu plików”.

W moim przypadku sprawdziło się otwarcie pliku sparsebundle przy użyciu opcji „pokaż zawartość pakietu” z menu rozwijanego i ręczna zmiana dostępu dla „wszystkich” z „brak dostępu” na „odczyt i zapis” dla każdego z załączonych elementów. Do katalogu „zespoły” użyłem polecenia „zastosuj do elementów zamkniętych” z menu rozwijanego.

rocznie
źródło
0

Miałem podobny problem z pakietem sparse hostowanym na komputerze z systemem Windows. Próbowałem wszystkiego w tym i innych wątkach, co zawsze skutkowało błędem niemożliwym do zamontowania systemu plików (pokazując również błąd 112).

Problemem był Windows Defender, który wykrył jeden z plików w pakiecie sparsebundle jako trojan (Trojan: Script / Foretype.A! Ml). Inne osoby zgłaszały coś podobnego fałszywie pozytywnego, na przykład pamięć podręczną Spotify lub pliki skompilowane przez Rust .

Aby rozwiązać problem, po prostu wyklucz plik z kwarantanny Windows Defender i ponownie zainstaluj pakiet sparsebundle. Trwało to zbyt długo, więc można uzyskać wynik za pomocą tego polecenia:

hdiutil attach -verbose -debug -mountpoint /mount/path /path/to.sparsebundle
David Martínez
źródło
-1

Właśnie miałem ten sam problem

** /dev/rdisk2s2 (NO WRITE)

podczas próby naprawy zepsutego pakietu TM na QNAP 419II.

„Wyrzuciłem” uchwyt TM za pomocą Findera i uruchomiłem

hdiutil attach -nomount -noverify -noautofsck ...

polecenie (znaleziono tutaj Naprawianie błędów tworzenia kopii zapasowych we współpracy z Time Machine Sparsebundle NAS ) ponownie, które (w przeciwieństwie do pierwszego uruchomienia, z którym wypisał „/ dev / disk2s2 Apple_HFSX”) tym razem dało

/dev/disk1s2            Apple_HFSX  

Sprawdzanie sys-log za pomocą

tail -f /var/log/fsck_hfs.log

Nie pokazano

/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

Niemniej jednak ponowna aktywacja TM wciąż skutkowała wyświetleniem wiadomości currepted-backup -( :(

Powodzenia!

dergab
źródło