วิธีการกู้คืนพาร์ทิชัน NTFS ที่หายไป?


1

ฉันมี Macbook pro รุ่นกลางปี ​​13 "รุ่น A1278 (EMC 2554 *) ฉันใช้ MacOS Sierra 10.12 และ Windows 10 Build 10240 บนดิสก์ 750GB

โดยไม่ทำการวิจัยที่เหมาะสมฉันใช้ Disk Utility อย่างโง่เขลาเพื่อเพิ่มพาร์ติชัน 139GB ใหม่ลงในดิสก์เดียวกันที่มี MacOS และ Bootcamp และทำให้ระบบไฟล์เป็น ExFat เพราะฉันต้องการให้ทั้ง MacOS และ Windows สามารถอ่านและเขียนได้

แท้จริงและดูเถิด Boot Camp นั้นไม่ทำงานอีกต่อไป ขณะที่ MacOS ยังบู๊ตอยู่พาร์ติชั่น Boot Camp จะไม่ปรากฏในเมนูตัวเลือกการบูตเริ่มต้นอีกต่อไปแม้ว่าจะทำใน Disk Utlility และบนเดสก์ท็อป MacOS ความพยายามในการบูตทันทีจาก bootcamp แสดงข้อความต่อไปนี้: ไม่มีอุปกรณ์ที่สามารถบู๊ตได้ --- ใส่ดิสก์สำหรับบูตแล้วกดปุ่มใด ๆ

ดังนั้นฉันจึงปฏิบัติตามบทช่วยสอนนี้: http://nerdr.com/bootcamp-partition-lost-repairing-mac-partitions/

ฉันรู้แล้วว่าฉันทำผิดพลาดเพราะฉันใช้บทช่วยสอนนั้นและคำตอบจากกระทู้อื่น ๆ ในฟอรัม ( https://discussions.apple.com/message/19071422#19071422และฉันไม่สามารถบูตเป็น macOS ได้อีกต่อไปหลังจากปรับขนาด bootcamp ของฉัน พาร์ติชัน ) กวดวิชา nerdr ในลิงค์ด้านบนบอกว่าใช้ gptfdisk และฉันใช้เทอร์มินัลแอป gdisk ตามคำตอบในฟอรัม

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

Command (? for help): p
Disk /dev/disk0: 1465149168 sectors, 698.6 GiB
Sector size (logical): 512 bytes
Disk identifier (GUID): DC08A243-0BDF-4D84-870F-044744CBFD1A
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 1465149134
Partitions will be aligned on 8-sector boundaries
Total free space is 70891845 sectors (33.8 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1              40          409639   200.0 MiB   EF00  EFI System Partition
   2          409640      1100019007   524.3 GiB   AF00  
   3      1100019008      1101288543   619.9 MiB   AB00  
   4      1101288544      1392987759   139.1 GiB   0700  
   5      1392987760      1394257295   619.9 MiB   AB00  Recovery HD

ผลลัพธ์ของเทอร์มินัลเหล่านี้อาจช่วย:

diskutil list:

   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *750.2 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS 750GB HD                563.0 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
   4:       Microsoft Basic Data TD                      149.4 GB   disk0s4
   5:                 Apple_Boot                         650.0 MB   disk0s5

diskutil cs list:
No CoreStorage logical volume groups found

ฉันคิดว่าข้อมูลยังคงอยู่ที่นั่นตอนนี้มันหายไปในตารางพาร์ทิชัน อย่างที่คุณเห็นดิสก์ Recovery HD จะสิ้นสุดลงที่เซกเตอร์ 1394257295 และเซกเตอร์สุดท้ายที่มีคือ 1465149134 มันบอกว่ามีพื้นที่ว่าง 33.8gb และพาร์ติชัน bootcamp ของ Windows อยู่ที่ประมาณ 39gb ถ้าฉันจำได้อย่างถูกต้อง

ฉันไม่ได้สำรองข้อมูลใด ๆ หรือไม่มีไทม์เมอร์กำลังทำงาน

ฉันคิดว่าการกู้คืนพาร์ทิชันที่ฉันทำกลับไปที่พาร์ติชันดั้งเดิมอาจแก้ไขได้ ฉันไม่สามารถกู้คืนพาร์ติชัน ExFat กลับสู่ฮาร์ดไดรฟ์ 750GB ฉันได้รับข้อความ "การเรียกคืนกระบวนการล้มเหลว" และรายการคำสั่งต่อไปนี้: กำลังตรวจสอบเป้าหมาย ... กำลังตรวจสอบแหล่งที่มา ... การกำหนดอุปกรณ์เป้าหมายซ้ำ ... ปริมาณที่มาคืออ่าน - เขียนและไม่สามารถ unmount ดังนั้นจึงไม่สามารถบล็อกได้ คัดลอก การดำเนินการล้มเหลว…

ฉันได้รับข้อความข้างต้นซ้ำแล้วซ้ำอีกแม้หลังจากเลิกเมานท์แล้วก็ทำการฟอร์แมตระบบไฟล์ใหม่เมื่อ MacOS ทำการเจอร์นัลและอื่น ๆ สุดท้ายฉันไม่รู้ว่า bootcamp กำลังทำการบูทโดยใช้ MBR หรือ GPT หรือไม่ แต่ดิสก์มีโฟลเดอร์ windows อยู่ถ้ามันช่วยได้

ฉันจะกู้คืนพาร์ทิชัน NTFS ที่หายไปได้อย่างไร

แก้ไข: ผลลัพธ์สำหรับ David Anderson

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

ไม่มีเอาต์พุตสำหรับ "dd if = / dev / disk0 bs = 512 skip = 1394257296 จำนวน = 50000000 | fgrep -o -a -a" บีบอัด BOOTMGR ":


คำตอบสั้น ๆ คือใช่ถ้าไม่มีพาร์ติชัน BootCamp ใด ๆ ถูกเขียนทับ คุณมีคำถามมากกว่าหนึ่งคำถาม คุณอาจจะต้องถามคำถามแยกกันหลายคำถามแต่ละข้อหลังจากได้รับคำตอบแล้ว ตัวอย่างเช่นฉันขอแนะนำให้ถาม "วิธีการกู้คืนพาร์ทิชัน NTFS ที่หายไป" อาจถามต่อไป: วิธีการเพิ่มปริมาณที่ใช้ร่วมกันที่สามารถอ่าน / เขียนโดยทั้ง macOS และ Windows "นอกจากนี้คุณควรรวมรูปแบบ / ปีของ Mac ของคุณ
David Anderson

1. GPT fdisk == gdisk 2. คุณมีพาร์ติชันการกู้คืน hd สอง (3 & 5) IMHO ยังไม่ชัดเจนว่าคุณได้ทำอะไรมาก่อนเพื่อกู้คืนตารางพาร์ติชันของคุณ ฉันมักจะตอบสั้น ๆ ว่า "ไม่" เพราะบางส่วนของไดรฟ์ข้อมูล NTFS เดิมของคุณอาจถูกเขียนทับ
klanomath

@ klanomath ตามที่ฉันพูดในโพสต์ฉันทำตามกวดวิชา Nerdr เพื่อพยายามกู้คืนตารางพาร์ทิชันโดยใช้ gDisk
Mutant_Bunny

@DavidAnderson Ok อัพเดตแล้ว คุณช่วยฉันกู้พาร์ติชั่น NTFS ที่หายไปได้ไหม
Mutant_Bunny

@Mutant_Bunny บทช่วยสอน nerdr ไม่ได้พูดถึง Recovery HD ตัวที่สอง ดังนั้นจึงไม่ชัดเจนว่าจะถูกสร้างขึ้นเมื่อใดและอย่างไร
klanomath

คำตอบ:


1

หากคุณต้องการคำอธิบายที่ดีขึ้นเกี่ยวกับขั้นตอนที่ระบุด้านล่างโปรดโพสต์ความคิดเห็น

คำตอบที่ระบุด้านล่างจะถือว่ามีขนาดเซกเตอร์ 512 ไบต์ สำหรับขนาดเซกเตอร์ขนาดใหญ่คุณจะต้องทำการปรับเปลี่ยนที่เหมาะสม ด้านล่างนี้เป็นขั้นตอนพื้นฐานที่จำเป็นในการค้นหาและกู้คืนพาร์ติชัน Windows Boot Camp ที่สูญหาย ไม่มีขั้นตอนใดที่ต้องใช้ซอฟต์แวร์ของบุคคลที่สาม

  1. หากเป็นไปได้ให้ปิดการใช้งานการป้องกันความสมบูรณ์ของระบบ (SIP) /dev/disk0คุณจำเป็นต้องทำเช่นนี้ได้รับการเข้าถึง คุณต้องสามารถอ่านข้อมูลที่เก็บไว้ในดิสก์ที่คุณบูทได้

    คำสั่งเพื่อปิดการใช้งาน SIP ได้รับด้านล่าง คุณจะต้องบู๊ตเป็นหนึ่งในหลาย ๆโหมดการกู้คืน macOSหรือดิสก์เริ่มต้นระบบ Mac ภายนอกก่อนดำเนินการคำสั่งจากแอปพลิเคชัน Terminal

    csrutil  disable
    

    ที่จริงแล้ว SIP ไม่จำเป็นต้องปิดการใช้งานโดยสิ้นเชิง csrutilคำสั่งเวอร์ชันที่ไม่มีเอกสารต่อไปนี้สามารถใช้เพื่อปิดใช้งานการป้องกันระบบไฟล์ของ SIP เป็นอย่างน้อย

    csrutil  enable  --without  fs
    

    หมายเหตุ: ฉันได้ทดสอบคำสั่งด้านบนในขณะที่เรียกใช้ High Sierra (macOS 10.13.1) เท่านั้น

    หลังจากปิดใช้งาน SIP บางส่วนหรือทั้งหมดแล้วให้บูตกลับเป็น macOS (OS X)

    หมายเหตุ: rEFIndยังสามารถใช้เพื่อเลือกปิด / เปิดใช้งาน SIP

  2. เปิดแอปพลิเคชัน Terminal และป้อนคำสั่งที่ระบุด้านล่าง

    sudo  chmod  a+w  /dev/disk0
    

    นี้จะช่วยให้คุณอ่าน ( แต่ไม่เขียน) จากโดยไม่ต้องก่อนคำสั่งของคุณด้วย/dev/disk0sudo

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

  3. ถัดไปคุณต้องพิจารณาว่าส่วนใดที่อาจมีพาร์ติชั่น NTFS หายไป สามารถทำได้โดยการป้อนคำสั่งที่ระบุด้านล่าง

    gpt  -r  show  /dev/disk0
    

    ด้านล่างเป็นผลลัพธ์จากคอมพิวเตอร์ของฉัน เนื่องจากคอมพิวเตอร์ของฉันติดตั้งFedora (linux) และrEFIndผลลัพธ์ด้านล่างจะแตกต่างจากที่ใช้โดยทั่วไป อย่างไรก็ตามไดรฟ์ข้อมูล Windows NTFS ยังคงอยู่ในพาร์ติชัน 4 ตามที่คาดไว้สำหรับ 2011 iMac

    Marlin:~ davidanderson$ gpt -r show /dev/disk0
    gpt show: /dev/disk0: Suspicious MBR at sector 0
          start       size  index  contents
              0          1         MBR
              1          1         Pri GPT header
              2         32         Pri GPT table
             34          6         
             40     409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
         409640  585937496      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
      586347136    1269536      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
      587616672  193097312      4  GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
      780713984     409600      5  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
      781123584    1024000      6  GPT part - 0FC63DAF-8483-4772-8E79-3D69D8477DE4
      782147584  192528384      7  GPT part - E6D6D379-F507-44C2-A23C-238F2A3DF928
      974675968          8         
      974675976    1835008      8  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
      976510984     262144      9  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
      976773128          7         
      976773135         32         Sec GPT table
      976773167          1         Sec GPT header
    

    gdiskในกรณีของคุณคุณสามารถใช้แทนการส่งออกของคุณจาก สิ่งที่คุณต้องหาคือพื้นที่ว่างจำนวนมาก ๆ การส่งออกของคุณจะแสดงพื้นที่ว่างเริ่มต้นที่ภาคและสิ้นสุดภาค1394257296 1465149134นี่คือ70891839ส่วนที่มีพื้นที่ว่างประมาณ 36 GB

  4. ตอนนี้คุณพร้อมที่จะเริ่มค้นหาพาร์ติชัน NTFS ที่หายไป ในการถ่ายโอนข้อมูลเซกเตอร์แรกของพาร์ติชัน Boot Camp ของ Windows NTFS ของฉันฉันได้ป้อนคำสั่งที่ระบุด้านล่าง

    hexdump  -C  -v  -n  512  -s  587616672b  /dev/disk0
    

    หมายเหตุ: ในคำสั่งดังกล่าวข้างต้น587616672bจะตามด้วยตัวอักษร587616672 bมันเป็นไม่ได้ 5876166726

    ด้านล่างเป็นผลลัพธ์จากคำสั่งด้านบน

    Marlin:~ davidanderson$ hexdump -C -v -n 512 -s 587616672b /dev/disk0
    460ca34000  eb 52 90 4e 54 46 53 20  20 20 20 00 02 08 00 00  |.R.NTFS    .....|
    460ca34010  00 00 00 00 00 f8 00 00  3f 00 33 00 a0 51 06 23  |........?.3..Q.#|
    460ca34020  00 00 00 00 80 00 80 00  5f 6e 82 0b 00 00 00 00  |........_n......|
    460ca34030  00 00 0c 00 00 00 00 00  02 00 00 00 00 00 00 00  |................|
    460ca34040  f6 00 00 00 01 00 00 00  f8 1a 1d 9e f0 ed 53 24  |..............S$|
    460ca34050  00 00 00 00 fa 33 c0 8e  d0 bc 00 7c fb 68 c0 07  |.....3.....|.h..|
    460ca34060  1f 1e 68 66 00 cb 88 16  0e 00 66 81 3e 03 00 4e  |..hf......f.>..N|
    460ca34070  54 46 53 75 15 b4 41 bb  aa 55 cd 13 72 0c 81 fb  |TFSu..A..U..r...|
    460ca34080  55 aa 75 06 f7 c1 01 00  75 03 e9 dd 00 1e 83 ec  |U.u.....u.......|
    460ca34090  18 68 1a 00 b4 48 8a 16  0e 00 8b f4 16 1f cd 13  |.h...H..........|
    460ca340a0  9f 83 c4 18 9e 58 1f 72  e1 3b 06 0b 00 75 db a3  |.....X.r.;...u..|
    460ca340b0  0f 00 c1 2e 0f 00 04 1e  5a 33 db b9 00 20 2b c8  |........Z3... +.|
    460ca340c0  66 ff 06 11 00 03 16 0f  00 8e c2 ff 06 16 00 e8  |f...............|
    460ca340d0  4b 00 2b c8 77 ef b8 00  bb cd 1a 66 23 c0 75 2d  |K.+.w......f#.u-|
    460ca340e0  66 81 fb 54 43 50 41 75  24 81 f9 02 01 72 1e 16  |f..TCPAu$....r..|
    460ca340f0  68 07 bb 16 68 52 11 16  68 09 00 66 53 66 53 66  |h...hR..h..fSfSf|
    460ca34100  55 16 16 16 68 b8 01 66  61 0e 07 cd 1a 33 c0 bf  |U...h..fa....3..|
    460ca34110  0a 13 b9 f6 0c fc f3 aa  e9 fe 01 90 90 66 60 1e  |.............f`.|
    460ca34120  06 66 a1 11 00 66 03 06  1c 00 1e 66 68 00 00 00  |.f...f.....fh...|
    460ca34130  00 66 50 06 53 68 01 00  68 10 00 b4 42 8a 16 0e  |.fP.Sh..h...B...|
    460ca34140  00 16 1f 8b f4 cd 13 66  59 5b 5a 66 59 66 59 1f  |.......fY[ZfYfY.|
    460ca34150  0f 82 16 00 66 ff 06 11  00 03 16 0f 00 8e c2 ff  |....f...........|
    460ca34160  0e 16 00 75 bc 07 1f 66  61 c3 a1 f6 01 e8 09 00  |...u...fa.......|
    460ca34170  a1 fa 01 e8 03 00 f4 eb  fd 8b f0 ac 3c 00 74 09  |............<.t.|
    460ca34180  b4 0e bb 07 00 cd 10 eb  f2 c3 0d 0a 41 20 64 69  |............A di|
    460ca34190  73 6b 20 72 65 61 64 20  65 72 72 6f 72 20 6f 63  |sk read error oc|
    460ca341a0  63 75 72 72 65 64 00 0d  0a 42 4f 4f 54 4d 47 52  |curred...BOOTMGR|
    460ca341b0  20 69 73 20 63 6f 6d 70  72 65 73 73 65 64 00 0d  | is compressed..|
    460ca341c0  0a 50 72 65 73 73 20 43  74 72 6c 2b 41 6c 74 2b  |.Press Ctrl+Alt+|
    460ca341d0  44 65 6c 20 74 6f 20 72  65 73 74 61 72 74 0d 0a  |Del to restart..|
    460ca341e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
    460ca341f0  00 00 00 00 00 00 8a 01  a7 01 bf 01 00 00 55 aa  |..............U.|
    460ca34200
    

    รายละเอียดของการส่งออกดังกล่าวข้างต้นสามารถพบได้ที่ทั้งไมโครซอฟท์: NTFS โครงสร้างทางกายภาพหรือวิกิพีเดีย: NTFS Internals

    ฝังอยู่ในภาคนี้มีหลายสาย ในการค้นหาพาร์ติชัน NTFS ของคุณคุณจะต้องค้นหาหนึ่งในสตริงเหล่านี้ BOOTMGR is compressedฉันจะสุ่มเลือกสตริง เนื่องจากฉันรู้ว่าพาร์ทิชัน NTFS ของฉันอยู่ที่ไหนฉันสามารถป้อนคำสั่งด้านล่างเพื่อค้นหาสตริงนี้

    dd  if=/dev/disk0  bs=512  skip=587616672  count=50000000  |  fgrep  -o  -a  -b  "BOOTMGR is compressed"
    

    ที่ใหญ่ที่สุดคุ้มค่าคอมพิวเตอร์ของฉันจะช่วยให้เป็นเรื่องเกี่ยวกับcount 50000000ค่านี้อาจแตกต่างกันสำหรับคอมพิวเตอร์ของคุณ ดังนั้นถ้าฉันต้องการค้นหาพาร์ติชัน NTFS ทั้งหมดของฉันฉันจะต้องป้อนคำสั่งนี้ 4 ครั้ง เวลาอยู่กับแต่ละมูลค่าเพิ่มขึ้นskip 50000000แน่นอนว่าเราสามารถเขียนเชลล์สคริปต์ด้วยลูปเพื่อทำซ้ำคำสั่งเหล่านี้ แต่ฉันรู้สึกว่าการเพิ่มสคริปต์ดังกล่าวที่นี่จะเกินขอบเขตคำตอบนี้

    ผลลัพธ์จากการป้อนคำสั่งข้างต้นบนคอมพิวเตอร์ของฉันได้รับด้านล่าง

    Marlin:~ davidanderson$ dd if=/dev/disk0 bs=512 skip=587616672 count=50000000 | fgrep -o -a -b "BOOTMGR is compressed"
    425:BOOTMGR is compressed
    338433776:BOOTMGR is compressed
    790493856:BOOTMGR is compressed
    1095625536:BOOTMGR is compressed
    1405559232:BOOTMGR is compressed
    3533975792:BOOTMGR is compressed
    3534741744:BOOTMGR is compressed
    4601366880:BOOTMGR is compressed
    6145609496:BOOTMGR is compressed
    6146292528:BOOTMGR is compressed
    6146951928:BOOTMGR is compressed
    6951738816:BOOTMGR is compressed
    8739643840:BOOTMGR is compressed
    8846594496:BOOTMGR is compressed
    9138315712:BOOTMGR is compressed
    9241170368:BOOTMGR is compressed
    21212440040:BOOTMGR is compressed
    50000000+0 records in
    50000000+0 records out
    25600000000 bytes transferred in 874.399247 secs (29277244 bytes/sec)
    

    ตามที่คาดไว้สตริงถูกค้นพบในภาคแรกที่ค้นหา ส่วนที่เหลือของการแข่งขันสามารถถูกละเว้น

    หากกรณีของคุณคุณจะป้อนคำสั่งที่ระบุด้านล่างซึ่งฉันคิดว่าcountค่าของ50000000จะถูกต้อง

    dd  if=/dev/disk0  bs=512  skip=1394257296  count=50000000  |  fgrep  -o  -a  -b  "BOOTMGR is compressed"
    

    หมายเหตุ: คุณสามารถป้อน "control T" ในขณะที่ddคำสั่งดำเนินการอยู่ สิ่งนี้จะทำให้ddคำสั่งแสดงความคืบหน้า

    หากคำสั่งนี้ไม่ส่งคืนการจับคู่คุณสามารถสมมติว่าพาร์ติชัน NTFS ของคุณไม่สมบูรณ์

  5. ตรวจสอบว่าการแข่งขันนั้นอยู่ในเซกเมนต์บูตพาร์ติชันที่ถูกต้อง ค่าการจับคู่ที่กำหนดใด ๆ สามารถแปลงเป็นค่าเริ่มต้นของเซกเตอร์พาร์ติชันสำหรับเริ่มต้นด้วยการหารค่าการจับคู่ด้วยbsค่าก่อน ส่วนที่เหลือสามารถทิ้ง ถัดไปเพิ่มskipมูลค่าให้กับผลลัพธ์ 425นี้คือการคำนวณด้านล่างสำหรับค่าการแข่งขันครั้งแรกของฉัน

    425 / 512 + 587616672 = 587616672
    

    จากนั้นป้อนคำสั่งเพื่อถ่ายโอนข้อมูลภาคที่คำนวณ สำหรับคอมพิวเตอร์ของฉันคำสั่งและผลลัพธ์จะแสดงในขั้นตอนที่ 4 สำหรับ-sตัวเลือกคุณจะต้องแทนที่ค่าเซกเตอร์เริ่มต้นของคุณ อย่าลืมที่จะผนวกตัวอักษรbกับค่าของคุณ

    น้อยที่สุดภาคควรเริ่มต้นด้วยลำดับฐานสิบหกและจบด้วยลำดับฐานสิบหกeb 52 90 4e 54 46 53 20 20 20 20 00 55 aaค่าอื่น ๆ เพื่อตรวจสอบสามารถพบได้ในการอ้างอิงที่ได้รับในขั้นตอนที่ 4

  6. กำหนดค่าเริ่มต้นและขนาดพาร์ติชันของ NTFS ค่าเริ่มต้นของพาร์ติชันจะเหมือนกับค่าเริ่มต้นของ Partition Boot Sector ในการกำหนดขนาดคุณจะต้องรับค่าเลขฐานสิบหก 8 ค่าที่เก็บอยู่ในเซกเตอร์ Boot Partition โดยเริ่มต้นที่ค่าที่ 41 สำหรับ Sector Boot Partition ของฉันที่แสดงในขั้นตอนที่ 4 ค่าเหล่านี้จะแสดงอยู่ด้านล่าง

    5f 6e 82 0b 00 00 00 00
    

    ถัดไปคุณจะต้องแปลงจาก endian น้อยเป็นใหญ่ endian โดยการกลับคำสั่งของไบต์ดังที่แสดงด้านล่าง

    00 00 00 00 0b 82 6e 5f
    

    แปลงค่าเหล่านี้เป็นค่าเลขฐานสิบหกเดียวโดยการลบช่องว่างและเลขศูนย์หน้าก่อนหน้าจากนั้นเพิ่ม0xจุดเริ่มต้นของผลลัพธ์ ทำเช่นนั้นสำหรับค่าข้างต้นผลลัพธ์ในค่าเดียวที่แสดงด้านล่าง

    0xb826e5f
    

    กำหนดค่าเทียบเท่าทศนิยมโดยใช้คำสั่งที่แสดงด้านล่าง

    Marlin:~ davidanderson$ echo $((0xb826e5f))
    193097311
    

    สุดท้ายรอบขึ้นค่านี้เป็นเลขที่ใกล้ที่สุดหารด้วย 8. ในกรณีนี้193097311ไม่หารด้วย 8. 193097312ดังนั้นค่านี้จะต้องมีการปัดเศษขึ้นค่าเป็น

    สำหรับผู้ที่ไม่ทราบค่าจะหารด้วย 8 ถ้า 3 หลักสุดท้ายหารด้วย 8 ในกรณีนี้311/8=38.875และ312/8=39ดังนั้นจึง193097311ไม่หาร 8 ได้ แต่193097312เป็น

  7. เพิ่มพาร์ติชันที่พบในตารางพาร์ติชัน GUID (GPT) หากพาร์ติชันนี้ไม่มีอยู่ในคอมพิวเตอร์ของฉันฉันสามารถเพิ่มได้โดยป้อนคำสั่งที่แสดงด้านล่าง ในกรณีของคุณคุณจะใช้ตัวเลือกดัชนีในสถานที่ของ-i 6 -i 4นอกจากนี้ค่าเริ่มต้นเซกเตอร์-bและขนาด-sตัวเลือกของคุณจะแตกต่างกัน

    sudo  gpt  -f  add  -i  4  -b  587616672  -s  193097312  -t  windows  /dev/disk0
    

    คอมพิวเตอร์ของฉันใช้งาน MacOS 10.13.1 คำสั่งนี้อาจไม่ทำงานหากใช้ OS X หรือ macOS รุ่นก่อนหน้า ถ้าเป็นเช่นนั้นคุณจะต้องเริ่มต้นใหม่จากการกู้คืน macOS ผ่านอินเทอร์เน็ตหรือดิสก์เริ่มต้นระบบ Mac ภายนอกจากนั้นดำเนินการคำสั่งทางเลือกที่ระบุด้านล่างจากแอปพลิเคชัน Terminal อีกครั้งของคุณ-i, -bและ-sค่าตัวเลือกที่จะแตกต่างจากสิ่งที่แสดงด้านล่าง

    gpt  add  -i  4  -b  587616672  -s  193097312  -t  windows  /dev/disk0
    

    อีกทางเลือกหนึ่งคือการใช้gdiskเพื่อเพิ่มพาร์ติชันใน GPT

    หมายเหตุ: หลังจากแก้ไข GPT แล้วอาจจำเป็นต้องรีสตาร์ทคอมพิวเตอร์

  8. หากจำเป็นให้เปิดใช้งาน SIP ขั้นตอนนี้ต้องใช้ขั้นตอนเดียวกับขั้นตอนที่ 1 ยกเว้นคำสั่งเพื่อเปิดใช้งาน SIP แสดงอยู่ด้านล่าง

    csrutil  enable
    

@Mutant_Bunny: คำแนะนำของฉันขอให้คุณป้อนคำสั่ง:dd if=/dev/disk0 bs=512 skip=1394257296 count=50000000 | fgrep -o -a -b "BOOTMGR is compressed"
David Anderson

สวัสดี David Anderson ฉันเริ่มลองใช้คำแนะนำนี้ ฉันติดอยู่ที่ขั้นตอนที่ 5 ฉันไม่รู้วิธีดำเนินการต่อเพราะฉันไม่เข้าใจความหมายของตัวเลขหรือวิธีการคำนวณทางคณิตศาสตร์ที่คุณแสดงที่นั่น ฉันพยายามอ่านพาร์ติชัน Windows NTFS และหน้าวิกิพีเดียที่คุณเชื่อมโยง แต่ก็ยังไม่เข้าใจ โปรดดูโพสต์ดั้งเดิมของฉันสำหรับการแก้ไขด้วยผลลัพธ์ของฉันจากขั้นตอนก่อนหน้า ....
Mutant_Bunny

ไม่มีเอาต์พุตสำหรับ "dd if = / dev / disk0 bs = 512 skip = 1394257296 count = 50000000 | fgrep -o -a -a" บีบอัด BOOTMGR "
Mutant_Bunny

@Mutant_Bunny: ก็อย่างที่ฉันได้กล่าวไว้ในขั้นตอนที่ 4: หากคำสั่งนี้ไม่ส่งคืนการจับคู่คุณสามารถสันนิษฐานได้ว่าพาร์ติชัน NTFS ของคุณนั้นไม่สมบูรณ์เหมือนเดิม อย่างน้อยจุดเริ่มต้นของไดรฟ์ข้อมูล NTFS ได้ถูกเขียนทับ คุณไม่สามารถกู้คืนโวลุ่ม การกู้คืนไฟล์ใด ๆ จะเป็นเรื่องยากมาก
David Anderson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.