ไม่สามารถบูตเข้าสู่โหมดการกู้คืน OS X


0

ฉันต้องการติดตั้ง Debian Linux บน Macbook เมื่อเร็ว ๆ นี้ซึ่งต้องการการแบ่งพาร์ติชั่นฮาร์ดไดรฟ์ใหม่

ตอนนี้ฉันไม่สามารถบูตเข้าสู่โหมดการกู้คืนได้ กด Command + R ค้างไว้ขณะบูตเครื่องจะเปิดโหมดการกู้คืนอินเทอร์เน็ต ตัวเลือกการถือครองขณะบู๊ตจะแสดงตัวจัดการการเริ่มต้นขึ้นซึ่งจะแสดงรายการ Recovery HD แต่ถ้าฉันเลือกจะเป็นการบู๊ต OS X ปกติ

ฉันใช้ Retina MacBook Pro ช่วงต้นปี 2015 13 "บน OS X 10.11.4

$ sudo 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  843043264      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
843452904    1269536      3  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
844722440  123046872      4  GPT part - 0FC63DAF-8483-4772-8E79-3D69D8477DE4
967769312     262144         
968031456    8811424      5  GPT part - 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
976842880     262147         
977105027         32         Sec GPT table
977105059          1         Sec GPT header

$ sudo fdisk /dev/disk0
Disk: /dev/disk0    geometry: 60821/255/63 [977105060 sectors]
Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: EE    0   0   1 - 1023 254  63 [         1 -     409639] <Unknown ID>
*2: AF 1023 254  63 - 1023 254  63 [    409640 -  843043264] HFS+        
 3: AF 1023 254  63 - 1023 254  63 [ 843452904 -    1269536] HFS+        
 4: 83 1023 254  63 - 1023 254  63 [ 844722440 -  123046872] Linux files*

 $ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            431.6 GB   disk0s2
   3:                  Apple_HFS Recovery HD             650.0 MB   disk0s3
   4:           Linux Filesystem                         63.0 GB    disk0s4
   5:                 Linux Swap                         4.5 GB     disk0s5

$ diskutil cs list
No CoreStorage logical volume groups found

คุณสามารถป้อนคำสั่งต่อไปนี้ในหน้าต่างแอปพลิเคชันเทอร์มินัลและโพสต์ผลลัพธ์ลงในคำถามของคุณได้หรือไม่ คำสั่งจะไม่เปลี่ยนคอมพิวเตอร์ของคุณและอาจต้องใช้รหัสผ่านการเข้าสู่ระบบของคุณ คำสั่งที่มีsudo gpt -r show /dev/disk0, fdisk /dev/disk0, และdiskutil list diskutuil cs listคุณสามารถตัดและวางผลลัพธ์ในคำถามของคุณ บางคนจะล้างข้อมูลผลลัพธ์ นอกจากนี้ให้เพิ่มรุ่น / ปีของ Mac ของคุณและเวอร์ชันของ OS X ที่คุณใช้
David Anderson

@DavidAnderson แน่นอน! เพิ่มไปยังคำถามของฉัน
Eric Andrew Lewis

คำตอบ:


1

จากผลลัพธ์ที่คุณโพสต์ฉันเห็น GUID สำหรับพาร์ติชันการกู้คืนไม่ถูกต้อง นี่คือหมายเลขพาร์ติชัน 3 ในตาราง ค่าที่ถูกต้องใน GPT จะเป็น 426F6F74-0000-11AA-AA11-00306543ECAC fdiskคำสั่งนอกจากนี้ยังแสดงค่าที่ไม่ถูกต้องในตาราง MBR ABนี่ค่าที่ถูกต้องควรจะเป็น หากคุณไม่สามารถบูตไปที่พาร์ติชันการกู้คืนของคุณหลังจากซ่อมแซมตารางเหล่านี้แล้วฉันจะถือว่าเนื้อหาของพาร์ทิชันเสียหาย

เท่าที่ฉันรู้ไม่มีประโยชน์ใน OS X สำหรับการซ่อมแซมประเภทนี้ (เทคนิคคุณสามารถใช้ddคำสั่ง แต่ไม่มีคนมีสติจะพยายามใช้ddการแก้ไขปัญหานี้.) ฉันอยากจะแนะนำให้ดาวน์โหลดและติดตั้งgdiskคำสั่งจากที่นี่ ในการติดตั้งคุณอาจต้องแก้ไขการตั้งค่าในบานหน้าต่าง "ความปลอดภัยและความเป็นส่วนตัว" ของ "การตั้งค่าระบบ"

ในการใช้gdiskคำสั่งคุณจะต้องปิดใช้งาน System Integrity Protection (SIP) โดยปกติสามารถทำได้ในขณะที่อยู่ในโหมดการกู้คืน เนื่องจากคุณไม่สามารถบูตเข้าสู่โหมดการกู้คืนได้คุณสามารถใช้ผลิตภัณฑ์ที่เรียกว่า "rEFInd" ผู้ใช้ Linux จำนวนมากติดตั้งผลิตภัณฑ์นี้บนคอมพิวเตอร์ Mac แล้ว หากคุณไม่ทำเช่นนั้นคุณสามารถสร้างรุ่น USB แฟลชไดรฟ์ซึ่งสามารถใช้เพื่อปิดใช้งาน / เปิดใช้งาน SIP คำแนะนำจะได้รับที่นี่

หมายเหตุ: เนื่องจากคุณติดตั้ง Debian Linux ไว้แล้วคุณอาจสามารถเรียกใช้gdiskจากระบบปฏิบัติการนี้ได้ เนื่องจากฉันไม่ได้ติดตั้งระบบปฏิบัติการนี้ฉันจะไม่ดำเนินการนี้ต่อไป คุณสามารถรับข้อมูลเพิ่มเติมได้จากเว็บไซต์นี้ นอกจากนี้gdiskอาจมีให้โดยการบูตจากดิสก์ฉุกเฉินภายนอก หากพร้อมใช้งานภายใต้ Linux หรือจากดิสก์ฉุกเฉินคุณจะไม่ต้องปิดใช้งาน SIP

เมื่อgdiskติดตั้งแล้วและปิดใช้งาน SIP คุณจะต้องทำการเปลี่ยนแปลงสามครั้ง การเปลี่ยนแปลงเหล่านี้เกี่ยวข้องกับการปรับเปลี่ยนทั้งตารางพาร์ติชัน GUID Partition Table (GPT) และ Master Boot Record (MBR) การเปลี่ยนแปลงมีการระบุไว้ด้านล่าง

  1. เปลี่ยนประเภท GUID สำหรับพาร์ติชัน 3 ใน GPT จาก 48465300-0000-11AA-AA11-00306543ECAC เป็น 426F6F74-0000-11AA-AA11-00306543ECAC หมายเหตุ: gdiskใช้ค่าเป็น AB00เพื่อแสดงค่า 426F6F74-0000-11AA-AA11-00306543ECAC
  2. ตรวจสอบให้แน่ใจแอตทริบิวต์สำหรับพาร์ทิชัน 00020000000000003 0000000000000000ในตัวอย่างด้านล่างผมถือว่าค่าปัจจุบันสำหรับแอตทริบิวต์เป็น ถ้าไม่ทำแก้ไขให้ถูกต้อง
  3. เปลี่ยนรหัสสำหรับพาร์ทิชัน 3 ในตาราง MBR จากไปAFAB

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

Steelhead:~ davidanderson$ sudo gdisk /dev/disk1
GPT fdisk (gdisk) version 1.0.1

Warning: Devices opened with shared lock will not have their
partition table automatically reloaded!
Partition table scan:
  MBR: hybrid
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with hybrid MBR; using GPT.

Command (? for help): t
Partition number (1-5): 3
Current type is 'Apple HFS/HFS+'
Hex code or GUID (L to show codes, Enter = AF00): ab00
Changed type of partition to 'Recovery HD'

Command (? for help): x

Expert command (? for help): a
Partition number (1-5): 3
Known attributes are:
0: system partition
1: hide from EFI
2: legacy BIOS bootable
60: read-only
62: hidden
63: do not automount

Attribute value is 0000000000000000. Set fields are:
  No fields set

Toggle which attribute field (0-63, 64 or <Enter> to exit): 49
Have enabled the 'Undefined bit #49' attribute.
Attribute value is 0002000000000000. Set fields are:
49 (Undefined bit #49)

Toggle which attribute field (0-63, 64 or <Enter> to exit): 

Expert command (? for help): r

Recovery/transformation command (? for help): h

WARNING! Hybrid MBRs are flaky and dangerous! If you decide not to use one,
just hit the Enter key at the below prompt and your MBR partition table will
be untouched.

Type from one to three GPT partition numbers, separated by spaces, to be
added to the hybrid MBR, in sequence: 2 3 4
Place EFI GPT (0xEE) partition first in MBR (good for GRUB)? (Y/N): y

Creating entry for GPT partition #2 (MBR partition #2)
Enter an MBR hex code (default AF): af
Set the bootable flag? (Y/N): y

Creating entry for GPT partition #3 (MBR partition #3)
Enter an MBR hex code (default AB): ab
Set the bootable flag? (Y/N): n

Creating entry for GPT partition #4 (MBR partition #4)
Enter an MBR hex code (default 83): 83
Set the bootable flag? (Y/N): n

Recovery/transformation command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/disk1.
Warning: Devices opened with shared lock will not have their
partition table automatically reloaded!
Warning: The kernel may continue to use old or deleted partitions.
You should reboot or remove the drive.
The operation has completed successfully.
Steelhead:~ davidanderson$ 

ณ จุดนี้ฉันจะรีสตาร์ท Mac ของคุณ


แอตทริบิวต์ 'ไม่ได้กำหนดบิต # 49' มีวัตถุประสงค์อะไร
klanomath

@ klanomath: ฉันไม่ได้เบาะแสสิ่งที่บิตสำหรับ OS X วางไว้ใน GPT เมื่อสร้างพาร์ติชัน OS X Recovery ฉันแรกพบนี้เมื่อฉันเขียนโปรแกรมอรรถประโยชน์readgptของฉัน เท่าที่ผมรู้ว่าไม่diskutil, gptหรือคำสั่งใด ๆ โปรแกรมอื่น ๆ OS X เทอร์มิมีวิธีการที่จะปรับเปลี่ยนแอตทริบิวต์ GPT
David Anderson

ขอบคุณมากนี่เป็นเคล็ดลับ One note: ฉันทำการเปลี่ยนแปลง/dev/sdaมากกว่า/dev/disk0จากภายใน Debian
Eric Andrew Lewis
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.