ซ่อม Time Machine sparsebundle ที่จะไม่ติดอีกต่อไป


24

ฉันทำข้อมูลสำรอง Time Machine ของฉันเสียหายในบางวิธี ฉันไม่สามารถเมานท์ไฟล์ sparsebundle อีกต่อไปเนื่องจากฉันพบข้อผิดพลาดที่ระบุว่าไม่มีระบบไฟล์ที่ mount ได้

ฉันใช้คำสั่ง 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 เสียหายและจำเป็นต้องได้รับการซ่อมแซม:

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"

ฉันคิดว่านี่อาจเป็นเพราะการไม่รันคำสั่ง fsck_hfs เป็น su ดังนั้นฉันจึงลองใช้ sudo แต่สิ่งนี้มีผลลัพธ์เหมือนกัน

ไฟล์ sparsebundle ของฉันอยู่ใน Synology DS408 NAS และทำงานได้โดยไม่มีปัญหาประมาณ 2 ปีแล้ว :(

ทุกคนมีความคิดวิธีนำสิ่งนี้ไปใช้อีกต่อไป?

ด้วยความเคารพ Niels R.

UPDATE: อย่างที่ฉันสงสัยในขณะที่เขียนคำถามนี้ฉันอาจมีปัญหากับการอ่าน / เขียนสิทธิ์ ตอนนี้ฉันเห็นไดรฟ์ข้อมูลที่ปรากฏใน Disk Utility และเมื่อฉันคลิกที่ "ยืนยัน" ฉันได้รับผลลัพธ์ต่อไปนี้:

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 เพื่อตั้งค่าการอนุญาตที่เหมาะสมได้หรือไม่?

คำตอบ:


26

ฉันมีการเขียนขึ้นเกี่ยวกับวิธีการที่จะลองและซ่อมแซม 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. ปลดล็อค sparsebundle

    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 Müller

3
fsck_hfs -drfy / dev / disk2s2 ไม่สามารถเปิดอุปกรณ์บล็อก / dev / disk2s2: การอนุญาตที่ถูกปฏิเสธjournal_replay (/ dev / disk2s2) ส่งคืน 13 ** / dev / rdisk2s2 (NO WRITE)
malhal

คำแนะนำเหล่านี้ใช้ไม่ได้สำหรับฉัน แต่การเชื่อมโยงของ Christian L ทำเคล็ดลับได้
2559

สิ่งนี้แก้ไขปัญหาให้ฉันได้แล้วขอบคุณ! นี่คือผลลัพธ์จากการเรียกใช้คำสั่ง (เพื่อให้สามารถค้นหาได้มากขึ้น) gist.github.com/oleander/d3d37a46940d0ac4b538da62e0745601เคล็ดลับ Pro: อย่าเรียกใช้คำสั่งด้านบนผ่าน Wi-Fi (802.11n, 200Gb) พยายามครั้งแรกและต้องยกเลิกหลังจาก 30h + จบลงด้วยการใช้สายเคเบิลอีเธอร์เน็ตซึ่ง "เพียง" ใช้เวลา 2 ชั่วโมง
Linus Oleander

1
หาก fsck_hfs บอกว่าไม่สามารถซ่อมลอง diskutil repairVolume / dev / disk2s2
malhal

6

แอ็ตทริบิวต์ส่วนขยายบน sparsebundle อาจป้องกันการเขียนบนไฟล์:

วิ่ง

chflags -R nouchg flattop.sparsebundle

แต่ระวัง sparsebundle อาจได้รับการคุ้มครองเพราะมันถูกทำลายอย่างแท้จริง


ถ้ามันถูกทำลายอย่างแท้จริงมีอะไรเสียหรือเปล่า? ฉันเข้าใจว่าตัวเลือกอื่น ๆ เท่านั้นคือการล้างข้อมูลและเริ่มการสำรองข้อมูลใหม่
Matt

4

มันไม่ง่ายอย่างนั้น chmod ครั้งแรกปรากฏว่า 10.5 / 10.6 / 10.7 ทั้งหมดมีความแตกต่างเล็กน้อยในวิธีการจัดการกลุ่มกระจัดกระจาย ประการที่สองธงและสถานะสกปรก / ไม่ดีของชุดมัดกระจัดกระจายจะถูกเก็บไว้ที่อื่น ประการที่สามคุณอาจต้องโจมตีชุดข้อมูลกระจัดกระจาย - ไม่ใช่ระบบไฟล์ที่อยู่ภายใน

ทางออกที่ดีที่สุดของคุณคือให้ Disk Utility ทำการซ่อมแซมภาพก่อนที่คุณจะดูระบบไฟล์ที่ฝังอยู่ภายใน มันทำงานได้ทั้งในบันเดิลและระบบไฟล์รวมถึงรู้วิธีที่แอปเปิ้ลมีการจัดเก็บสิ่งต่าง ๆ

รายละเอียดของบันเดิลนั้นเป็นกรรมสิทธิ์หรือยากที่จะแยกแยะได้จากเอกสารของนักพัฒนาและแน่นอนว่าไม่ใช่สิ่งที่ยูทิลิตี้ของบุคคลที่สามอื่น ๆ กระตือรือร้นที่จะแก้ไขในตอนนี้ ตราบใดที่คุณใช้ Disk Utility เวอร์ชันที่ใหม่กว่าแม็คที่สร้างแบ็คอัพคุณควรจะใช้ได้ เมื่อคุณเลิกใช้งาน Disk Utility แล้วคุณอาจลองใช้ Drive Genius หรือ Disk Warrior แต่ฉันจะใช้เครื่องมือของ Apple ถ้าคุณหวังที่จะใช้ชุดข้อมูลนี้ซ้ำ

ลักษณะของการรวมกลุ่มแบบกระจัดกระจาย - โดยเฉพาะการเชื่อมโยงฮาร์ดเช่นเดียวกับแนวคิดที่ไม่ได้กระชับเมื่อไฟล์ถูกลบมีงานที่ต้องทำมากมาย ฉันเคยใช้ DiskUtility มาสองสัปดาห์แล้วและยังไม่ผ่านการซ่อมแซมในไฟล์เก็บถาวรขนาด 800MB

ในทางปฏิบัติคุณอาจจะดีกว่าเพียงแค่คืนค่า NAS เวอร์ชันก่อนหน้าหากมีสแนปชอตหรือสำรองข้อมูล ในที่สุด - หากมีข้อผิดพลาดที่ fsck / Disk Utility ไม่สามารถแก้ไขได้ชุดของกระจัดกระจายของคุณจะถูกทำเครื่องหมายว่าไม่ดีและจะถูกล็อค จากนั้นคุณสามารถอ่านสิ่งต่าง ๆ แต่ไม่เคยเขียนมันอีกเลย ดูว่าคุณสามารถเชื่อมต่อเครื่องเข้ากับที่จัดเก็บและแก้ไขสิ่งต่าง ๆ ได้หรือไม่ (DAS หรือการเชื่อมต่อความเร็วสูงดีกว่า - เนื่องจากเป็นเครื่องที่มีเวลาในการแก้ไขสิ่งต่าง ๆ และไม่ได้รับการรีบูต)

ขอให้โชคดี - นี่อาจไม่สามารถกู้คืนได้จากรายละเอียดที่คุณให้ไว้


1

@ คำตอบของ Garth ไม่ได้ผลสำหรับฉัน ฉันต้องเพิ่ม-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: ปรับขนาด: ล้มเหลว ทรัพยากรไม่สามารถใช้งานได้ชั่วคราว (35)
malhal

0

ฉันมี Syology NAS และได้รับข้อผิดพลาด NO-WRITE เมื่อพยายามเรียกใช้การแก้ไข แต่ฉันเจอเวอร์ชัน tweaked นี้ที่บันทึกเบคอนของฉัน

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


2
ยินดีต้อนรับสู่ถามที่แตกต่างกัน! แม้ว่าลิงก์นี้อาจตอบคำถามได้ดีกว่าหากรวมส่วนสำคัญของคำตอบไว้ที่นี่และให้ลิงก์สำหรับการอ้างอิง คำตอบสำหรับลิงค์เท่านั้นอาจไม่ถูกต้องหากหน้าเว็บที่เชื่อมโยงนั้นเปลี่ยนแปลง
grg

ฉันยังไม่ได้เขียนอีกด้วยนี่เป็นคำแนะนำเดียวที่เหมาะกับฉันและฉันก็ลองใช้วิธีอื่นทั้งหมด
malhal

0

หากคุณสำรองข้อมูลดิสก์อิมเมจมัดกระจัดกระจายบนเครื่องหนึ่งและลองเปิดอีกเครื่องคุณอาจได้รับข้อความแสดงข้อผิดพลาด "ไม่มีระบบไฟล์ที่เมาท์ได้" โดยเฉพาะอย่างยิ่งหากชื่อผู้ใช้ของเจ้าของแตกต่างกันระหว่างสองเครื่อง

วิธีแก้ปัญหาของฉันคือการคัดลอกบันเดิลไปยังดิสก์ภายในเครื่องของฉันและทำงานอยู่

sudo chown -R MyUserName nonmounting.sparsebundle

บนมัน

หลังจากนั้นก็เปิดดีและทุกอย่างถูกต้องกับโลก


0

ฉันทำตามขั้นตอนทั้งหมดข้างต้น แต่หลังจากผ่านไประยะหนึ่งภาพไม่สามารถซ่อมแซมได้โดยใช้ fsck_hfs หรือ hdutil ข้อผิดพลาดมากมายที่เกี่ยวข้องกับเธรดหรือโหนดเสียหาย

สิ่งที่ทำงานให้ฉันคือ:

  1. (ไม่บังคับ) เชื่อมต่อไดรฟ์ USB 1TB ภายนอกที่มีรูปแบบ Horn Jornaled
  2. (ไม่บังคับ) ในยูทิลิตี้สนามบินให้ไปที่ Time Capsule Disk -> เก็บดิสก์ลงในไดรฟ์ที่เชื่อมต่อกับ Time Capsule ด้วย USB ใช้เวลา 12 ชั่วโมงกับ 600 GB

  3. hdiutil แนบ -nomount -noverify -noautofsck /Volumes/DISK/MyFile.sparsebundle

  4. จากนั้นดิสก์ถูกมองเห็นได้โดยใช้ DiskWarrior บนแท็บ Directory คลิกสร้าง ใช้เวลาประมาณ 1 ชั่วโมง

เมื่อแก้ไขแล้วในที่สุดฉันก็สามารถเมานต์และสำรองไฟล์ของฉันได้

คลิกที่สร้างใหม่


ฉันได้รับสิ่งนี้: "DiskWarrior สร้างไดเรกทอรีใหม่สำหรับดิสก์ที่ชื่อ" Time Machine Backups สำเร็จแล้ว "ไดเรกทอรีใหม่ไม่สามารถแทนที่ไดเรกทอรีเดิมได้เนื่องจากดิสก์ถูกล็อค" คุณรู้วิธีปลดล็อคได้อย่างไร?
maxisme

0

สิ่งนี้ใช้ได้กับฉัน:

  • คลิกขวาที่ภาพดิสก์เปลี่ยน "ทุกคน" เพื่ออ่านและเขียน
  • เปิดเทอร์มินัล
  • chmod -R 777 {disk image path}

เห็นได้ชัดว่ามันเป็นปัญหาสิทธิ์

หมายเหตุ: สิ่งนี้จะทำให้การสำรองข้อมูลของคุณเข้าถึงได้ทุกคนที่มีการเข้าถึงทางกายภาพกับมัน


0

ฉันหวังว่านี่อาจช่วยคนได้

ฉันถูกล็อคออกจากบัญชีห้องเก็บไฟล์มรดกของฉันหลังจากการอัพเดทความปลอดภัย El Capitan พร้อมข้อผิดพลาด 'no filesystem mountable'

สิ่งที่ได้ผลในกรณีของฉันคือการเปิดไฟล์ sparsebundle โดยใช้ 'แสดงเนื้อหาแพ็คเกจ' จากเมนูแบบเลื่อนลงและเปลี่ยนการเข้าถึง 'ทุกคน' จาก 'ไม่มีการเข้าถึง' เป็น 'อ่านและเขียน' สำหรับแต่ละรายการที่แนบมาด้วยตนเอง สำหรับไดเรกทอรี 'แบนด์' ฉันใช้คำสั่ง 'นำไปใช้กับรายการที่ปิดล้อม' จากเมนูแบบเลื่อนลง


0

ฉันมีปัญหาที่คล้ายกันกับ sparsebundle โฮสต์บนเครื่อง Windows ฉันลองทุกอย่างในกระทู้นี้และหัวข้ออื่น ๆ ส่งผลให้เกิดข้อผิดพลาดของระบบไฟล์ที่ติดตั้งไม่ได้เสมอ(แสดงข้อผิดพลาด 112 ด้วย)

ปัญหาคือ Windows Defender ที่ตรวจพบไฟล์ใดไฟล์หนึ่งใน sparsebundle ว่าเป็นโทรจัน (Trojan: Script / Foretype.A! ml) คนอื่นรายงานว่าสิ่งที่เป็นเท็จนั้นคล้ายกันเช่นSpotify cacheหรือไฟล์คอมไพล์Rust

ในการแก้ปัญหาเพียงแค่แยกไฟล์ออกจากการกักกัน Windows Defender และติดตั้ง sparsebundle อีกครั้ง ใช้เวลานานเกินไปดังนั้นคุณสามารถรับเอาต์พุตโดยใช้คำสั่งนี้:

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

-1

ฉันมีปัญหาเดียวกัน

** /dev/rdisk2s2 (NO WRITE)

เมื่อพยายามที่จะแก้ไข TM-sparsebundle ที่เสียหายใน QNAP 419II

ฉัน "กด" TM-mount โดยใช้ Finder และเรียกใช้

hdiutil attach -nomount -noverify -noautofsck ...

คำสั่ง (พบที่นี่แก้ไขข้อผิดพลาด Backup Time Machine Sparsebundle จาก NAS ) อีกครั้งซึ่ง (ตรงกันข้ามกับการรันครั้งแรกที่พิมพ์ "/ dev / disk2s2 Apple_HFSX") ในครั้งนี้

/dev/disk1s2            Apple_HFSX  

ตรวจสอบ sys-log ด้วย

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- :(

โชคดี!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.