修理时间机器稀疏的束缚将不再安装


24

我以某种方式弄乱了Time Machine备份。我不再能够挂载sparsebundle文件,因为我收到一条错误消息,指出没有可挂载的文件系统。

我使用了hdiutil命令来附加sparsebundle文件:

hdiutil attach -nomount -readwrite flattop.sparsebundle

这导致了以下/ dev /设备:

/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 Backups卷已损坏,需要修复:

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:权限被拒绝journal_replay(/ dev / disk2s2)返回13”。

我认为这可能是由于未将sck_hfs命令作为su运行,所以我尝试了sudo进行此操作,但结果相同。

我的sparsebundle文件位于Synology DS408 NAS上,并且已经正常运行了大约2年了:(

任何人都知道如何将其进一步发展吗?

亲切的问候,Niels R.

更新:正如我在编写此问题时所怀疑的那样,我可能在读/写权限上存在问题。现在,我看到该卷出现在“磁盘工具”中,并且当我单击“验证”时,我得到以下输出:

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.

我可以简单地更改sparsebundle文件来设置正确的权限吗?

Answers:


26

我在Blog上写了有关如何尝试和修复基于NAS的sparsebundle错误的文章。综上所述:

  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是外部磁盘的磁盘ID。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_hfs返回:无法打开块设备/ dev / disk7s2:资源busyjournal_replay(的/ dev / disk7s2)返回16
的Stefan穆勒

3
fsck_hfs -drfy / dev / disk2s2无法打开块设备/ dev / disk2s2:权限被拒绝journal_replay(/ dev / disk2s2)返回13 ** / dev / rdisk2s2(未写入)
2016年

这些说明对我不起作用,但克里斯蒂安·L(​​Christian L)的链接可以解决问题。
malhal '16

这为我解决了问题,谢谢!这是运行命令(使其更易于搜索)的输出gist.github.com/oleander/d3d37a46940d0ac4b538da62e074​​5601专业提示:不要在Wi-Fi(802.11n,200Gb)上运行上述命令。首先尝试过,30小时后必须中止。最后使用以太网电缆,“仅”花费了2小时。
Linus Oleander

1
如果fsck_hfs说无法修复,请尝试diskutil repairVolume / dev / disk2s2
malhal

6

Sparsebundle上的扩展属性可能会阻止在文件上写入:

chflags -R nouchg flattop.sparsebundle

但是要小心,因为真正损坏了稀疏的刺,所以它可能已经受到保护。


如果真的损坏了,有什么损失吗?据我了解,唯一的其他选择是擦除它并开始新的备份。
马特

4

它不像chmod那样简单。首先,似乎 10.5 / 10.6 / 10.7在处理稀疏束的方式上都有细微的差别。其次,稀疏捆绑包的标志和脏/坏状态存储在其他位置。第三,您可能需要攻击稀疏包本身-而不是其中包含的文件系统。

最好的选择是让Disk Utility在查看嵌入其中的文件系统之前先修复映像。它既可以用于捆绑软件,也可以用于文件系统,并且可以知道Apple如何存储东西。

捆绑软件的详细信息要么是专有的,要么很难从开发人员文档中辨别出来-这当然不是其他第三方实用程序急于解决的问题。只要您使用的磁盘实用程序版本与进行备份的Mac相同或更高,就可以了。放弃“磁盘工具”后,您可以尝试使用Drive Genius或“磁盘勇士”之类的工具,但是如果您希望重复使用此捆绑软件,我会坚持使用Apple的工具。

稀疏捆绑包的性质-尤其是硬链接以及删除文件时不压缩的概念,还有很多工作要做。我已经将DiskUtility运行了两个星期,但是仍然没有完成800MB大小的存档的修复。

实际上,如果NAS具有快照或本身已备份,则最好恢复到NAS的先前版本。最后-如果出现fsck / Disk Utility无法修复的错误,则您的稀疏捆绑将被标记为错误,并且将被锁定。然后,您可以阅读内容,但是再也不会写了。请确定您是否可以将计算机连接到存储设备并修复问题(DAS或高速连接效果更好,因为可以花时间修复问题而不重启的计算机是理想的选择)

祝您好运-您提供的详细信息可能无法恢复。


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)
Malhal

0

我有一个Syology NAS,尝试运行此修复程序时出现NO-WRITE错误,但我遇到了这个经过调整的版本,它节省了我的培根。

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


2
欢迎询问不同!尽管此链接可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。如果链接的页面发生更改,仅链接的答案可能会失效。
grg

我也没写过,这是唯一对我有用的说明,我尝试了所有其他说明。
malhal '16

0

如果您在一台计算机上备份一个稀疏的捆绑磁盘映像,然后尝试在另一台计算机上打开它,则可能会收到“无法安装的文件系统”错误消息,尤其是如果所有者的用户名在两台计算机之间不同时。

我的解决方案是将捆绑软件复制到本地磁盘并运行

sudo chown -R MyUserName nonmounting.sparsebundle

在上面。

此后一切顺利,世界一切正常。


0

我执行了上述所有步骤,但过一会儿无法使用fsck_hfs或hdutil修复映像,许多与线程或节点相关的错误已损坏。

对我有用的是:

  1. (可选)连接HFS Jornaled格式的外部USB 1TB驱动器。
  2. (可选)在Airport Utility中,转到Time Capsule Disks-> Archive Disk到通过USB连接到Time Capsule的驱动器中。我花了12个小时花了600 GB。

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

  4. 然后,使用DiskWarrior可以看到该磁盘 。在目录选项卡上,单击重建。花了大约1个小时。

修复后,我终于可以挂载和备份文件了。

单击重建


我得到的是:“ DiskWarrior已成功为名为“ Time Machine Backups”的磁盘建立了一个新目录。新目录无法替换原始目录,因为该磁盘已锁定。你知道怎么解锁吗?
maxisme

0

这为我工作:

  • 右键单击磁盘映像,将“所有人”更改为读写状态。
  • 打开终端
  • chmod -R 777 {disk image path}

显然这是一个权限问题。

注意:这将使您对任何物理访问它的人都可以进行备份


0

我希望这可以帮助某人。

El Capitan安全更新后出现“无可挂载文件系统”错误,我被锁定在旧文件库帐户中。

在我的案例中,解决的方法是使用下拉菜单中的“显示包内容”打开sparsebundle文件,并手动将对每个人的访问权限从“无权访问”更改为“随身携带”。对于“乐队”目录,我使用了下拉菜单中的“应用于封闭物品”命令。


0

我在Windows机器上托管的sparsebundle也有类似的问题。我尝试了此线程和其他线程中的所有操作,导致始终出现无可挂载文件系统错误(也显示112错误)。

问题是Windows Defender,它检测到sparsebundle中的一个文件为木马(Trojan:Script / Foretype.A!ml)。其他人报告了类似的误报,例如Spotify缓存Rust编译文件。

要解决此问题,只需从Windows Defender隔离区中排除文件,然后再次安装sparsebundle。花了太长时间,因此您可以使用以下命令获得输出:

hdiutil attach -verbose -debug -mountpoint /mount/path /path/to.sparsebundle

-1

我只是有同样的问题

** /dev/rdisk2s2 (NO WRITE)

尝试在QNAP 419II上修复损坏的TM-sparsebundle时。

我使用Finder“弹出” TM支架并运行

hdiutil attach -nomount -noverify -noautofsck ...

再次给出该命令(与“ Fix Time Machine Sparsebundle基于NAS的备份错误”有关),这与它第一次打印“ / 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仍然会导致备份消息遗忘:(

祝好运!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.