ฉันจะแก้ไขตารางพาร์ติชันของฉันได้อย่างไร


1

ฉันคิดว่าฉันทำลายตารางพาร์ทิชันของฉันอย่างรุนแรง

ฉันมีพาร์ติชัน BOOTCAMP พาร์ติชัน macOS APFS และ exFAT พาร์ติชัน ฉันเชื่อว่าฉันมีพื้นที่ 17GB ที่ไม่ได้ปันส่วน

ฉันพยายามลดขนาดพาร์ติชัน BOOTCAMP และฉันคิดว่ามันทำลายตารางพาร์ติชัน พาร์ติชัน BOOTCAMP มีข้อผิดพลาดเมื่อเริ่มต้นและไม่พบพาร์ติชัน macOS จากการกู้คืนอินเทอร์เน็ตฉันได้ติดตั้ง El Capitan ใหม่จากไดรฟ์ USB ไปยังอีกพาร์ติชันในขณะที่ลบพาร์ติชัน BOOTCAMP (ฉันมีการสำรองข้อมูลค่อนข้างล่าสุด) ปัจจุบันฉันใช้สิ่งนั้นอัปเดตเป็น High Sierra มันยังไม่เห็นพาร์ติชัน macOS รุ่นเก่าหรือพื้นที่ที่ไม่ได้ปันส่วน ~ 50GB (แม้ว่าฉันจะรู้สึกว่าส่วนใหญ่นั้นอาจเป็นพาร์ติชัน macOS ที่หายไป)

นอกจากนี้รายการ Windows ยังคงแสดงเมื่อกด alt / ตัวเลือกในการบูตแม้ว่ามันจะมีข้อผิดพลาดเหมือนก่อน จะไม่แสดงในดิสก์เริ่มต้นระบบหรือที่อื่น

ฉันคิดว่าพาร์ติชัน BOOTCAMP ของฉันไม่สามารถกู้คืนได้ซึ่งส่วนใหญ่ฉันใช้ได้ อย่างไรก็ตามถ้าเป็นไปได้ฉันจะกู้คืนพาร์ติชั่น macOS รุ่นเก่าได้อย่างไร?

และส่วนใหญ่ฉันจะแก้ไขตารางพาร์ทิชันได้อย่างไร Esp พาร์ติชัน Windows / BOOTCAMP ที่ควรมี (แม้ว่าฉันจะไม่แน่ใจ) และที่ขาดหายไป ~ 50GB

นี่คือสิ่งที่ Disk Utility บอกว่าฉันมีตอนนี้ Extra และ Common เป็นเพียงพาร์ติชั่นว่างเปล่าสำหรับตอนนี้

https://ibb.co/khN7pc

sudo gpt -r show disk0ด้านล่างเป็นผลลัพธ์จากคำสั่งที่

https://image.ibb.co/cyYxpc/Screen_Shot_2018_03_14_at_8_51_09_AM_1.png


เกือบคำถามใด ๆ ที่เกี่ยวข้องกับตารางพาร์ทิชันต้องเพิ่มตารางพาร์ทิชันในคำถาม: ใน Terminal.app ป้อนsudo gpt -r show disk0และ (ถ้าเกี่ยวข้องกับ BOOTCAMP) sudo fdisk /dev/disk0และเพิ่มผลลัพธ์ให้กับคำถามของคุณ ในบางสถานการณ์ (ที่บูทถึง High Sierra) SIP จะต้องปิดการใช้งานเพื่อให้ได้ผลลัพธ์!
klanomath

น่าเสียดายที่เครื่องมือพาร์ติชัน Windows ทำงานได้อย่างถูกต้องเมื่อบูตไปที่โหมดการกู้คืนหรือสื่อการติดตั้ง ลำดับเหตุการณ์ที่คุณโพสต์ทำให้ฉันสับสน คุณระบุว่าคุณมีพาร์ติชัน APFS เมื่อคุณติดตั้ง El Capitan ใหม่ แต่ APFS ยังไม่ออกจนกว่า High Sierra ถัดไปคุณระบุว่าคุณอัปเดตเป็น High Sierra ดังนั้นคุณมีพาร์ติชัน APFS เมื่อคุณพยายามย่อขนาดพาร์ติชัน BOOTCAMP หรือไม่
David Anderson

@DavidAnderson ฉันติดตั้ง El Capitan จาก USB ที่มีอยู่แล้วเพื่อให้คอมพิวเตอร์ใช้งานได้อย่างรวดเร็ว ใช่ฉันมีพาร์ติชัน APFS เมื่อฉันพยายามลดขนาดพาร์ติชัน BOOTCAMP ของฉัน
PiAhoy

@ klanomath ฉันไม่ต้องปิดการใช้งาน SIP เพื่อรับผลลัพธ์ แต่นี่คือสิ่งที่ฉันได้รับibb.co/ncFA9c
PiAhoy

คำตอบ:


2

ตารางพาร์ทิชันของ Disk0 ไม่ได้เจ๊งเลย - เปลี่ยนแปลงทั้งหมดที่ทำค่อนข้างที่ไม่ได้ตั้งใจ

พาร์ติชันและไดรฟ์ทั้งหมด (EFI, Common, macOS และ Extra) ได้รับการทำเครื่องหมายอย่างถูกต้องและdiskutil verifyVolume disk0sYอาจจะออกโดยไม่มีข้อผิดพลาด

ตารางพาร์ติชันที่ถูกทำลายจะพลาดส่วนหัวและตารางพาร์ติชันรองหรือส่วนหัวและตารางหลักและรองนั้นแตกต่างกันหรือการตรวจสอบ CRC-32 ของรายการส่วนหัวและตารางพาร์ติชันนั้นไม่ถูกต้อง


ตารางพาร์ติชันของคุณมีลักษณะดังนี้:

    start      size index contents                                        
        0         1       PMBR                                            
        1         1       Pri GPT header                                  
        2        32       Pri GPT table                                   
       34         6                                                       
       40    409600     1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B 
   409640  91672536                                                       
 92082176 168686104     2 GPT part - 48465300-0000-11AA-AA11-00306543ECAC 
260768280    262144                                                       
261030424 177477424     3 GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC 
438507848  51464720     4 GPT part - 48465300-0000-11AA-AA11-00306543ECAC 
489972568    262151                                                       
490234719        32       Sec GPT table                                   
490234751         1       Sec GPT header  

พาร์ติชันแรกที่มีขนาด 209.7 MB - พาร์ติชัน EFI มาตรฐาน - ตามด้วยพื้นที่ว่างบนดิสก์ที่ไม่ได้ถูกจัดสรรด้วยขนาด 46.94 GB

พาร์ติชันที่สองคือพาร์ติชัน HFS + มาตรฐานที่มีขนาด 86.37 GB ตามด้วยพื้นที่ดิสก์ที่ไม่ได้ถูกจัดสรรด้วยขนาด (มาตรฐาน) 134.2 MB

ที่สามคือ APFS container partition ขนาด 90.87 GB พาร์ติชันที่สี่เป็นพาร์ติชัน HFS + มาตรฐานอื่นที่มีขนาด 26.35 GB


เค้าโครงพาร์ติชัน SSD เริ่มต้นอาจมีลักษณะเช่นนี้หลังจากติดตั้ง High Sierra (APFS) และพาร์ติชัน BOOTCAMP แม้ว่า:

     start      size index contents                                        
         0         1       PMBR                                            
         1         1       Pri GPT header                                  
         2        32       Pri GPT table                                   
        34         6                                                       
        40    409600     1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B 
    409640         X     2 GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC 
  X+409640    262144      
  X+671784         Y     3 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
X+Y+671784       ...     ...  

พื้นที่ดิสก์ที่ไม่ได้ถูกจัดสรรครั้งที่สอง (บล็อก 262144 บล็อก) อาจเล็กกว่าหรือใหญ่กว่า

ดังนั้นจึงขึ้นอยู่กับขนาดของพาร์ติชัน macOS เก่าของคุณหากบางส่วนถูกเขียนทับหรือไม่

  • หาก X เท่ากับหรือเล็กกว่า 91672536 (บล็อก) พาร์ติชัน macOS เก่าของคุณสามารถกู้คืนได้อย่างสมบูรณ์
  • หาก X ใหญ่กว่า 91672536 (บล็อก) และน้อยกว่า 260358640 (= 91672536 + 168686104) (บล็อก) ส่วนของ MacOS คอนเทนเนอร์พาร์ติชันเก่าของคุณถูกเขียนทับโดยสร้างโวลุ่มทั่วไป การสร้างโวลุ่มเปล่าใหม่มักต้องการประมาณ 120 MB - 500 MB เพื่อเขียนข้อมูลเมตาของระบบไฟล์ ขึ้นอยู่กับขนาดของระบบ APFS / ส่วน preboot / recovery โวลุ่มของพวกเขาอาจถูกเขียนทับ

หากบล็อกแรกของคอนเทนเนอร์ APFS ที่หายไปของคุณ (รวมถึงโวลุ่มระบบ MacOS APFS เก่าของคุณ) ไม่ได้ถูกเขียนทับคุณสามารถตรวจสอบขนาดเดิมได้:

  • บู๊ตไปยังไดรฟ์ภายนอกที่ติดตั้ง macOS
  • เปิด Terminal และรับรายละเอียดดิสก์ตามปกติ (ด้านล่างฉันถือว่า SSD ภายในมี disk identifier disk0):

    diskutil list
    sudo gpt -r show disk0
    
  • ถอนติดตั้ง SSD

    diskutil umountDisk disk0
    
  • dd / hexdump block 409640:

    sudo dd if=/dev/disk0 bs=512 skip=409640 count=1 | hexdump
    

    ซึ่งจะให้ผลเช่นนี้ (ตัวอย่างเท่านั้น!):

    1+0 records in
    1+0 records out
    512 bytes transferred in 0.001917 secs (267067 bytes/sec)
    0000000 b9 e9 ff cb a4 6d fc f3 01 00 00 00 00 00 00 00
    0000010 fc da 09 00 00 00 00 00 01 00 00 80 00 00 00 00
    0000020 4e 58 53 42 00 10 00 00 29 ea 22 01 00 00 00 00
    0000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0000040 02 00 00 00 00 00 00 00 d8 36 06 fb 2f 1f 42 7a
    0000050 b2 90 f5 cc 5c 85 9f 36 13 6f 08 00 00 00 00 00
    0000060 fd da 09 00 00 00 00 00 18 01 00 00 18 6c 00 00
    0000070 21 3c 06 00 00 00 00 00 28 c9 05 00 00 00 00 00
    0000080 70 00 00 00 18 0f 00 00 6e 00 00 00 02 00 00 00
    0000090 bc 0e 00 00 5c 00 00 00 af 6b 00 00 00 00 00 00
    00000a0 69 ad 04 00 00 00 00 00 01 04 00 00 00 00 00 00
    00000b0 00 00 00 00 64 00 00 00 03 04 00 00 00 00 00 00
    00000c0 a4 6b 00 00 00 00 00 00 a6 6b 00 00 00 00 00 00
    00000d0 a6 0d 01 00 00 00 00 00 00 00 00 00 00 00 00 00
    00000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    *
    0000200
    

    บรรทัดที่สามเป็นสิ่งสำคัญ:

    ...
    0000020 4e 58 53 42 00 10 00 00 29 ea 22 01 00 00 00 00
    ...
    
    • 4e 58 53 42: สตริงมายากลของคอนเทนเนอร์ APFS
    • 00 10 00 00: APFS block size: 4096
    • 29 ea 22 01 00 00 00 00 ขนาดคอนเทนเนอร์ APFS ในบล็อก APFS: 19065385 (= 152523080 512 บล็อก)

      อีกครั้งหลังจากที่จัดไบต์29 ea 22 01 00 00 00 00> 00 00 00 00 29 ea 22 01> 00 00 00 00 01 22 ea 29คุณจะได้รับค่าทศนิยมที่นี่ :

      ป้อนคำอธิบายรูปภาพที่นี่

    ขนาดของคอนเทนเนอร์ APFS เก่าใน 512 (บล็อก) คือขนาดบล็อก APFS แล้วขนาดคอนเทนเนอร์ APFS ในบล็อก APFS ในตัวอย่างนี่คือ 4096/512 * 19065385 = 152523080 บล็อก

  • ขึ้นอยู่กับขนาดเดิมลบพาร์ติชันที่ 2:

    diskutil umountDisk disk0
    sudo gpt remove -i 2 /dev/disk0
    
  • กู้คืนพาร์ติชันเก่า (ที่นี่พร้อมขนาดตัวอย่าง: 152523080 บล็อก (512) - อย่าใช้อันนี้โดยไม่ตั้งใจ! ):

    diskutil umountDisk disk0
    sudo gpt add -i 2 -b 409640 -s 152523080 -t 7C3457EF-0000-11AA-AA11-00306543ECAC /dev/disk0
    
  • ตรวจสอบคอนเทนเนอร์ APFS

    diskutil verifyVolume disk0s2
    
  • ตรวจสอบระดับเสียงของระบบ APFS

    diskutil list #get the device identifier of the APFS system volume and use it below (probably disk2s2)
    diskutil verifyVolume diskXsY
    

หากคุณมีปัญหาในการวิเคราะห์ hexdump หรือผลลัพธ์อื่น ๆ และข้อความแสดงข้อผิดพลาดโปรดแสดงความคิดเห็น!


ในที่สุดก็ลองทำเช่นนี้เทอร์มินัลการกู้คืนจะทำงานหรือฉันจะต้องติดตั้ง macOS จริงในไดรฟ์อื่นหรือไม่
PiAhoy

และฉันเชื่อว่า 46.94GB อาจเป็นพาร์ติชัน macOS เก่า แต่ฉันไม่แน่ใจ
PiAhoy

นอกจากนี้ถึงแม้ว่าฉันลบพาร์ทิชัน Windows ก็ยังคงแสดงขึ้น (และข้อผิดพลาด) เมื่อมีการกดตัวเลือก / Alt ในการบูต
PiAhoy

ฉันได้รับจนถึงที่นี่จนถึงตอนนี้ไม่แน่ใจว่าจะแปลงสิ่งนี้อย่างไร: image.ibb.co/btJZqd/Screen_Shot_2018_05_12_at_11_15_41_PM.png
PiAhoy

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