Ремонт машины времени, которая больше не будет монтироваться

24

Я каким-то образом испортил свою резервную копию Time Machine. Я больше не могу смонтировать файл sparsebundle, так как получаю сообщение об ошибке, утверждающее, что файловых систем не существует.

Я использовал команду hdiutil, чтобы прикрепить файл sparsebundle:

hdiutil attach -nomount -readwrite flattop.sparsebundle

что привело к следующему / dev / devices:

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

После этого я запустил команду fsch_hfs, чтобы проверить основной том (/ dev / disk2s2):

fsck_hfs -drf /dev/disk2s2

Это привело к уведомлению о том, что том резервных копий Time Machine поврежден и требует ремонта:

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 

Как вы можете видеть, есть также ошибка «Невозможно открыть блочное устройство / dev / disk2s2: разрешение deniedjournal_replay (/ dev / disk2s2) вернуло 13».

Я подумал, что это может быть связано с тем, что команда fsck_hfs не запускается как su, поэтому я попробовал ее с помощью sudo, но это дало тот же результат.

Мой файл sparsebundle находится на NAS-устройстве Synology DS408 и работает без проблем уже около 2 лет :(

У кого-нибудь есть идея, как продвинуться дальше?

С уважением, Нильс Р.

ОБНОВЛЕНИЕ: Как я и подозревал при написании этого вопроса, у меня, вероятно, есть проблема с разрешениями на чтение / запись. Теперь я вижу том, появляющийся в Дисковой утилите, и когда я нажимаю «Подтвердить», я получаю следующий вывод:

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.

Могу ли я просто chmod sparsebundle файл, чтобы установить правильные разрешения?

Нильс Р.
источник

Ответы:

26

У меня есть описание того, как попытаться исправить ошибки sparsebundle на базе NAS в моем блоге . В итоге:

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

    Затем вы увидите что-то вроде

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

    Где x - идентификатор диска для внешнего диска. х может быть 2, 3, 4 или выше. Вас интересует тот, который помечен как Apple_HFSX или Apple_HFS.

  2. fsck_hfs -drfy /dev/diskxs2 используя любое соответствующее устройство, находящееся на шаге 1.

    Надеюсь, вы в конечном итоге увидите

    Том был успешно отремонтирован

  3. hdiutil detach /dev/diskxs2


Однако, начиная с OS X 10.6.3, Time Machine откажется записывать в целевой том, который не проходит проверку. Даже если описанный выше процесс успешно восстанавливает резервную копию, вам все равно может понадобиться удалить черные метки, которые Time Machine написала, когда она не прошла проверку.

  1. Разблокировать разреженную расслоение

    chflags -R nouchg /Volumes/{name of your disk}/{name of}.sparsebundle
    
  2. Переместить его обратно в исходное местоположение

    mv /Volumes/{name of your disk}/{name of}_YYYY-MM-DD.sparsebundle /Volumes/{name of your disk}/{name of}.sparsebundle
    
  3. В каталоге верхнего уровня sparsebundle отредактируйте файл com.apple.TimeMachine.MachineID.plist.

    • удалять

      <key>RecoveryBackupDeclinedDate</key>
      <date>{whatever-the-date}</date>
      
    • + Изменить

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

      в

      <key>VerificationState</key>
      <integer>0</integer>
      
Гарт Гиллеспи
источник
3
Вызов fsck_hfsreturn: Невозможно открыть блочное устройство / dev / disk7s2: Ресурс busyjournal_replay (/ dev / disk7s2) возвращен 16
Стефан Мюллер
3
fsck_hfs -drfy / dev / disk2s2 Невозможно открыть блочное устройство / dev / disk2s2: разрешение доступа deniedjournal_replay (/ dev / disk2s2) возвращено 13 ** / dev / rdisk2s2 (NO WRITE)
malhal
Эти инструкции не сработали для меня, но ссылка Кристиана Л сделала свое дело.
Малхал
Это решило проблему для меня, спасибо! Вот результат выполнения команд (чтобы сделать его более доступным для поиска) gist.github.com/oleander/d3d37a46940d0ac4b538da62e0745601 Совет Pro: не запускайте вышеуказанные команды через Wi-Fi (802.11n, 200Gb). Сначала попробовал и пришлось прерывать через 30 часов +. Закончилось, используя кабель Ethernet, который "только" занял 2 часа.
Линус Олеандр
1
Если fsck_hfs говорит, что не может восстановить, попробуйте diskutil repairVolume / dev / disk2s2
malhal
6

Расширенные атрибуты в sparsebundle могут препятствовать записи в файл:

Бег

chflags -R nouchg flattop.sparsebundle

Но будьте осторожны, разбросанный пакет мог быть защищен, потому что он действительно сломан.

Джеймс
источник
Если он действительно сломан, есть что терять? Насколько я понимаю, единственный другой вариант - стереть его и начать новую резервную копию.
Мэтт
4

Это не так просто, как chmod. Во-первых, кажется, что 10.5 / 10.6 / 10.7 имеют незначительные различия в том, как обрабатывается разреженный пакет. Во-вторых, флаги и грязное / плохое состояние разреженного пакета хранятся в другом месте. В-третьих, вам может понадобиться атаковать сам разреженный комплект, а не файловую систему, которая содержится внутри.

Лучше всего, чтобы Дисковая утилита взялась за исправление образа, прежде чем вы посмотрите на встроенную файловую систему. Он работает как на связке, так и на файловых системах, а также знает, как Apple хранит вещи.

Детали пакета являются либо проприетарными, либо их трудно разглядеть в документации для разработчиков - и это, безусловно, не то, что другие сторонние утилиты стремятся исправить на этом этапе. Пока вы используете ту же или более новую версию Дисковой утилиты, чем у Mac, который сделал резервные копии, у вас все будет хорошо. После того, как вы отказались от Дисковой утилиты - вы можете попробовать что-то вроде Drive Genius или Disk Warrior - но я остановлюсь на инструменте Apple, если вы надеетесь использовать этот пакет повторно.

Природа разреженных пакетов - в частности, жесткие ссылки, а также концепция, что они не уплотняются при удалении файлов, предстоит проделать большую работу . У меня была DiskUtility, запущенная в течение двух недель, и я до сих пор не завершила процедуру восстановления архива размером 800 МБ.

На практике вам может быть лучше вернуться к предыдущей версии вашего NAS, если у него есть моментальные снимки или выполняется резервное копирование. В конце - если есть ошибки, которые fsck / Disk Utility не может исправить, ваш разреженный пакет будет помечен как плохой и будет заблокирован. Вы можете читать вещи, но никогда больше не писать. Убедитесь, что вы можете подключить машину к хранилищу и исправить вещи (лучше использовать DAS или высокоскоростные соединения - так как машина, у которой есть время, чтобы починить вещи и не перезагружаться, идеальна)

Желаем удачи - это невозможно исправить из предоставленных вами данных.

bmike
источник
1

@ Ответ Гарта не сработал для меня. Мне пришлось добавить -readwriteопцию hdiutil, чтобы заставить его работать для моего зашифрованного изображения. Без этой опции hdiutilне запрашивает пароль.

На шаге fsck я столкнулся с Disk full error. Чтобы это исправить, я использовал resizeопцию увеличения размера изображения перед запуском fsck.

Вот команды, которые я использовал, чтобы исправить это:

# 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

Как объясняется в других ответах, путь к устройству может отличаться, поэтому вместо disk2s2использования диска, который печатается командой , вместо этого hdiutil attach. Кроме того, вам нужен только resizeшаг, если вы получили Disk full errorпри выполнении fsck_hfsкоманды. Кроме того, вместо моего 1.5tвы должны ввести разумный новый размер, который немного больше, чем ваш текущий размер изображения (проверьте с du -hs MyImage.sparsebundle).

Ортвин Генц
источник
Отлично, но мне пришлось отсоединиться перед изменением размера, иначе hdiutil: resize: не удалось. Ресурс временно недоступен (35)
малхал
0

У меня есть Syology NAS, и я получаю сообщение об ошибке NO-WRITE при попытке запустить исправление, но я наткнулся на эту подправленную версию, которая спасла мой бекон.

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

Кристиан Л.
источник
2
Добро пожаловать, чтобы спросить другого! Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными в случае изменения связанной страницы.
grg
Я также получал не писать, это были единственные инструкции, которые работали для меня, и я попробовал все остальные.
Малхал
0

Если вы создаете резервную копию образа диска с разреженными пакетами на одном компьютере и пытаетесь открыть его на другом, вы можете получить сообщение об ошибке «нет подключаемых файловых систем», особенно если имена пользователей у разных компьютеров различаются.

Моим решением было скопировать пакет на мой локальный диск и запустить

sudo chown -R MyUserName nonmounting.sparsebundle

в теме.

После этого все открылось нормально и с миром все было в порядке.

Ритмичный Фистман
источник
0

Я сделал все шаги, описанные выше, но через некоторое время изображение не может быть восстановлено с использованием fsck_hfs или hdutil, много ошибок, связанных с повреждением потоков или узлов.

Что сработало для меня:

  1. (Необязательно) Подключите отформатированный внешний USB-накопитель HFS Jornaled объемом 1 ТБ.
  2. (Необязательно) В Airport Utility перейдите на Диски Time Capsule -> Архивировать диск на диск, подключенный к Time Capsule через USB. Это заняло у меня 12 часов за 600 ГБ.

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

  4. Затем диск был виден с помощью DiskWarrior . На вкладке «Каталог» нажмите « Перестроить» . Это заняло около 1 часа.

После исправления я смог наконец смонтировать и сделать резервную копию своих файлов.

Нажмите на перестроить

Хавьер Джованнини
источник
Я получаю следующее: «DiskWarrior успешно создал новый каталог для диска с именем« Резервное копирование Time Machine ». Новый каталог не может заменить исходный каталог, поскольку диск заблокирован». ты знаешь как разблокировать?
максимум
0

Это сработало для меня:

  • Щелкните правой кнопкой мыши по образу диска, измените «Все» для чтения и записи.
  • Открытый терминал
  • chmod -R 777 {disk image path}

Это было очевидно проблема с разрешениями.

ПРИМЕЧАНИЕ: ЭТО ДЕЛАЕТ ВАШУ РЕЗЕРВНУЮ ДОСТУП ДЛЯ ЛЮБОГО, У КОТОРОГО ЕСТЬ ФИЗИЧЕСКИЙ ДОСТУП К ЕГО

рукав моря
источник
0

Я надеюсь, что это может кому-то помочь.

Я был заблокирован из своей прежней учетной записи хранилища файлов после обновления безопасности El Capitan с ошибкой «нет монтируемой файловой системы».

В моем случае получилось открыть файл sparsebundle с помощью «Показать содержимое пакета» из выпадающего меню и вручную изменить доступ для «всех» с «Нет доступа» на «Чтение и запись» для каждого из вложенных элементов. Для каталога 'groups' я использовал команду «применить к вложенным элементам» из выпадающего меню.

P_A
источник
0

У меня была похожая проблема с sparsebundle, размещенным на компьютере с Windows. Я перепробовал все в этом и других потоках, что всегда приводило к ошибке не монтируемой файловой системы (также показывающей ошибку 112).

Проблема была в Защитнике Windows, который обнаружил один из файлов в sparsebundle как троян (Trojan: Script / Foretype.A! Ml). Другие люди сообщали о некоторых подобных ложных срабатываниях, таких как кэш Spotify или скомпилированные файлы Rust .

Чтобы решить эту проблему, просто исключите файл из карантина Защитника Windows и снова смонтируйте sparsebundle. Это заняло слишком много времени, поэтому вы можете получить вывод с помощью этой команды:

hdiutil attach -verbose -debug -mountpoint /mount/path /path/to.sparsebundle
Дэвид Мартинес
источник
-1

У меня просто была такая же проблема

** /dev/rdisk2s2 (NO WRITE)

при попытке исправить прерывистую TM-sparsebundle на QNAP 419II.

Я «выбросил» ТМ-монтирование с помощью Finder и запустил

hdiutil attach -nomount -noverify -noautofsck ...

Команда (найденная здесь Fix Time Machine Sparsebundle NAS Based Backup Error ) снова, которая (в отличие от первого запуска, с которым она напечатала «/ dev / disk2s2 Apple_HFSX») на этот раз она дала

/dev/disk1s2            Apple_HFSX  

Проверка системного журнала с

tail -f /var/log/fsck_hfs.log

Не показывал

/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

Тем не менее, повторная активация TM по-прежнему приводит к появлению currepted-backup-message :(

Удачи!

dergab
источник