จะแก้ไขพาร์ติชัน EFI ที่เสียหายได้อย่างไร


24

ฉันมี iMac ที่ใช้ OSX Lion ฉันติดตั้ง bootcamp และ Windows 7 ในระหว่างการติดตั้ง Windows 7 ฉันไม่ได้ใส่ใจอย่างเต็มที่และลบและฟอร์แมตพาร์ติชัน EFI

ฉันไม่ได้ตระหนักถึงความสำคัญของเรื่องนี้เพราะเครื่องยังทำงานได้ดีการบูตทั้งใน Windows และ OSX

ฉันสังเกตเห็นว่าการอัพเดตเฟิร์มแวร์ของ EFI ล้มเหลวในการติดตั้ง แต่ไม่ต้องเสียค่าใช้จ่าย

อย่างไรก็ตามตอนนี้ฉันต้องการติดตั้ง Mountain Lion และมีปัญหามากมาย Mountain Lion จะไม่ติดตั้งหากไม่มีพาร์ติชัน EFI ที่ถูกต้อง

นี่คือตารางพาร์ทิชันของฉัน

   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                  Apple_HFS EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            799.0 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
   4:       Microsoft Basic Data BOOTCAMP                200.3 GB   disk0s4

อย่างที่คุณเห็นฉันมีปัญหากับการแก้ไขพาร์ติชัน EFI ด้วยคำสั่งต่อไปนี้:

newfs_hfs -v EFI / dev / disk0s1

ดูเหมือนว่าจะไม่สร้างพาร์ติชันประเภทที่ถูกต้อง แต่ก็สร้าง Apple_HFS แทน EFI

คำถามของฉันคือ (โดยไม่ต้องฟอร์แมตดิสก์) ฉันจะสร้างพาร์ติชัน EFI ได้อย่างไร

ขอบคุณมาก


ดูคำตอบนี้เพื่อเปลี่ยนประเภทพาร์ติชัน: apple.stackexchange.com/a/342139/14586
mivk

คำตอบ:


31

คุณสามารถสร้าง EFI System Partition (ESP) ใหม่ได้โดยใช้gptเครื่องมือบรรทัดคำสั่ง ควรเริ่มที่ภาค 40 และควรยาว 409600 ส่วน (200MiB) ประเภทรายการ GPT ควรC12A7328-F81F-11D2-BA4B-00A0C93EC93Bและถ้าคุณมี MBR EEไฮบริดชนิดควรจะมี รูปแบบนี้เป็นชุดย่อยของ FAT ไม่ใช่ HFS + คุณสามารถอ่าน GPT โดยใช้คำสั่งsudo gpt -r show disk0ในหน้าต่าง Terminal ซึ่งจะสร้างผลลัพธ์ที่มีลักษณะดังนี้:

      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  447801712      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  448211352    1269536      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
  449480888   40753831         
  490234719         32         Sec GPT table
  490234751          1         Sec GPT header

คุณสามารถดูพาร์ติชัน EFI ที่ถูกต้องได้ที่ดัชนี 1 หากบรรทัดนั้นไม่ตรงกันวิธีที่ง่ายที่สุดคือการลบพาร์ติชันในตำแหน่งนั้นและสร้างใหม่

ตรวจสอบให้แน่ใจว่าคุณรู้ว่าคุณกำลังทำอะไรอยู่ก่อนที่จะดำเนินการต่อจากที่นี่ - คุณอาจสูญเสียข้อมูลหากคุณทำผิด

คุณไม่สามารถแก้ไขตารางพาร์ทิชันที่ใช้gptในขณะที่พาร์ทิชันบนไดรฟ์ติดตั้งดังนั้นคุณจะต้องบูตจากไดรฟ์อื่น (เช่น USB stick ที่ติดตั้ง OSX) หรือเรียกใช้ mac ในโหมดดิสก์เป้าหมายและทำการแบ่งพาร์ติชันจาก แม็คอื่น คุณอาจจำเป็นต้องยกเลิกการเชื่อมต่อใด ๆ ที่ติดตั้งโดยอัตโนมัติปริมาณการใช้diskutil unmountDisk disk0ก่อนดำเนินการต่อและในระหว่างคำสั่ง

หากต้องการลบพาร์ติชัน EFI "ไม่ดี" ให้รันคำสั่งนี้:

sudo gpt remove -i 1 disk0

ตรวจสอบให้แน่ใจว่า disk0 เป็นดิสก์ที่คุณต้องการเปลี่ยนจริง ๆ - ตัวเลขสามารถเปลี่ยนได้ระหว่างการรีบูต นอกจากนี้สิ่งนี้จะใช้ได้ก็ต่อเมื่อคุณมีพาร์ติชันที่ไม่ใช่ ESP อยู่ในตำแหน่งของ ESP - หากไม่ได้การลบพาร์ติชัน 1 อาจทำให้เกิดความเสียหายได้! ในกรณีนี้คุณจะต้องย้ายดัชนีไปพร้อม ๆ กันเพราะฉันคิดว่า ESP ต้องมีดัชนี 1 ด้วยเสียงของมันสิ่งนี้ไม่จำเป็นสำหรับคุณ

เมื่อลบแล้วให้เพิ่มพาร์ติชันอีกครั้งด้วยรูปแบบและประเภทที่ถูกต้อง:

sudo gpt add -b 40 -i 1 -s 409600 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B disk0

สิ่งนี้ควรสังคายนาพาร์ติชันเอง แต่เมื่อคุณสร้างพาร์ติชัน HFS แทนคุณต้องแก้ไขรูปแบบด้วย

รูปแบบของพาร์ติชัน EFI ระบบได้รับการบันทึกโดยแอปเปิ้ลที่นี่ อย่างที่คุณเห็นพวกเขาแนะนำให้คุณโคลน ESP ที่มีอยู่แทนที่จะสร้างระบบไฟล์newfs_msdosขึ้นใหม่ หากคุณมีไดรฟ์ภายนอกที่มีตารางพาร์ติชัน GPT (ควรติดตั้ง OSX ด้วย) คุณสามารถโคลนได้

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

หาก disk1 เป็นไดรฟ์ภายนอกของคุณและมันมี ESP เป็นพาร์ติชันแรก (disk1s1) และ disk0 เป็นไดรฟ์ที่มี ESP (disk0s1) ที่คุณต้องการแก้ไขให้เรียกใช้คำสั่งนี้:

sudo dd if=/dev/disk1s1 of=/dev/disk0s1

สิ่งนี้จะคัดลอกทุก ๆ บล็อคของ ESP ของ disk1 และเขียนทับบล็อกที่เกี่ยวข้องใน ESP ของ disk0 ด้วย

newfs_msdosอีกวิธีหนึ่งคือใช้เล่นการพนันด้วย


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

วิธีนี้ใช้งานได้ดีสำหรับฉันในวันที่ 10.6 หลังจาก GParted ทำการโคลน ESP เพื่อบล็อก 2048 บน SSD การบูตดิสก์สำหรับติดตั้งและทำตามขั้นตอนด้านบนฉันใช้ddจัดเก็บ cloned ESP ในไฟล์ก่อนที่จะทำการลบสร้างใหม่อีกครั้งและเขียนมันกลับมา ขอบคุณ!
Nick Westgate

ทำงานได้ดีบน mbp ของฉันด้วยไดรฟ์ลูกผสม ssd EFI ถูกเขียนทับด้วยการติดตั้งด้วงและวิธีนี้ทำงานอย่างสมบูรณ์แบบเพื่อนำมันกลับมา
sean_m

ขอบคุณสำหรับการแบ่งปัน. หากต้องการบันทึกการพิมพ์คุณสามารถระบุ EFI เป็นประเภทพาร์ติชันแทน GUID: sudo gpt add -b 40 -i 1 -s 409600 -t EFI disk0

1
ฉันจะเปลี่ยนดัชนีของพาร์ติชันเพื่อให้ ESP สามารถอยู่ที่ดัชนี 1 ได้อย่างไร
addison

3

ลองสิ่งนี้:

  1. สำรองข้อมูลไดรฟ์ตรงเวลาเครื่อง
  2. รีสตาร์ทเริ่มต้นใหม่บนดิสก์การติดตั้ง Lion
  3. ไปที่ Disk Utility
  4. ลบพาร์ติชัน
  5. ลบ HD
  6. ลบพาร์ติชันอีกครั้งคราวนี้ตั้งชื่อ
  7. คลิกที่ HD
  8. ยืนยัน HD เพื่อยืนยันข้อความแสดงข้อผิดพลาด EFI ไม่ปรากฏขึ้นอีก
  9. กลับไปที่หน้าจอติดตั้ง
  10. เลือกคืนค่าจากการสำรองข้อมูล

2

พบวิธีแก้ปัญหาที่ง่ายขึ้นที่นี่: /unix//a/174522/182014

สามารถสร้างพาร์ติชัน EFI ผ่าน GParted Live CD / USB :

  • สร้างไดรฟ์ 200MB (พื้นที่ว่างของฉันทั้งหมดในตอนเริ่มต้น):
    • ประเภท: fat32
    • ฉลาก: EFI
  • จัดรูปแบบมัน
  • ตั้งค่าสถานะการเริ่มระบบ (ตัวเลือกพร้อมใช้งานหลังจากจัดรูปแบบ) "boot, esp"

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

พร้อม!


0

ลอง iPartition 3 ขึ้นไป ไปที่เมนูมุมมองและแสดงอุปกรณ์ระบบ เนื่องจากไม่มี EFI ขนาด 200mb ให้ลดขนาดพาร์ติชันแรกลงบนดิสก์หวังเป็น 200mb สร้างพาร์ติชันใหม่จากนั้นในหน้าต่างตัวตรวจสอบดิสก์จะมีแท็บ คุณสามารถเลือกระบบไฟล์ได้หลายประเภท เพียงเลือกพาร์ติชันระบบ EFI


0

ปัญหานี้ได้รับการแก้ไขสำหรับฉัน

1) สำรองข้อมูลพาร์ติชัน Bootcamp โดยใช้ Winclone

2) สำรองไดรฟ์ Mac OSX โดยใช้ Carbon Copy Clone ไปยังไดรฟ์ภายนอก

3) ติดตั้ง Mountain Lion ลงในแฟลชไดรฟ์หรือไดรฟ์ภายนอก

4) ซื้อสำเนา iPartition, ดาวน์โหลดไปยังแฟลชไดรฟ์หรือไดรฟ์ภายนอก

5) รีบูตในขณะที่กดปุ่ม Option ค้างไว้เพื่อรับเมนูการบู๊ต

6) เลือกแฟลชหรือไดรฟ์ภายนอกเพื่อบูตจาก

7) แยก iPartition และดำเนินการ เลือกดูและตรวจสอบจากเมนูแบบเลื่อนลง

8) เลือก Bootcamp Partition ภายใต้แท็บ Partition แล้วทำเครื่องหมายที่ช่องสองช่องในรายการ (Active และ Visible ใน Windows) จากนั้นปิดกล่อง

9) ปุ่ม Go ควรสว่างถ้าไม่ขยาย Bootcamp พาร์ติชั่นเล็กน้อย ของฉันคือ OS TB 2 TB, Windows 500 GB บนไดรฟ์ 2.5 TB

10) เมื่อกดปุ่ม Go ก็ควรเริ่มดำเนินการ; แม้ว่าคุณอาจจะต้องฆ่ากระบวนการใด ๆ ที่ทำให้ไม่สามารถทำงานได้ (เสร็จสิ้นด้วย Activity Monitor)

11) เมื่อเสร็จแล้วปิดและถอดอุปกรณ์บูตภายนอกแล้วเปิดเครื่อง Mac อีกครั้ง ควรได้รับการแก้ไขและบูตตามปกติ - อย่างน้อยฉันก็ทำ

ฉันใช้ iMac 27, 3.2 GHz Intel Core i3 ที่มี RAM 16 GB และฮาร์ดไดรฟ์ 2.5 TB รายการส่วนใหญ่ที่ฉันทำไปแล้วก่อนที่จะติดตั้ง Mountain Lion ยกเว้นการสำรองข้อมูลปัจจุบันของไดรฟ์ Bootcamp Winclone ทำงานแม้ว่า Bootcamp จะไม่สามารถบู๊ตได้และกระบวนการกู้คืนสร้างข้อผิดพลาดในการเขียน MBR ฉันเพิ่งละเว้นข้อผิดพลาดและดำเนินการต่อไปกับส่วนที่เหลือของกระบวนการ เห็นได้ชัดว่า Mountain Lion ยุ่งกับ PMBR หรือ EFI และแม้แต่ rEF มันไม่สามารถแก้ไขได้ แต่ iPartition ทำอะไรก็ได้ มันได้รับการแก้ไขแล้ว

* หมายเหตุ **

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

ฉันขอแนะนำ Carbon Copy Clone สำหรับการสำรองพาร์ติชั่น OSX เพราะมันสามารถสร้างโคลนที่สามารถบู๊ตได้ซึ่งฉันไม่เคยล้มเหลวมาก่อน

ฉันแน่ใจว่าคนอื่น ๆ ประสบความสำเร็จในที่อื่นในการแก้ไขปัญหานี้และขอขอบคุณทุกคนที่โพสต์สิ่งที่พวกเขาทำเพราะช่วยฉันแก้ไขปัญหานี้ใน iMac ของฉัน

ขอบคุณทุกคนและฉันหวังว่านี่จะช่วยคนอื่นได้ (โพสต์ในฟอรัมของ Apple) https://discussions.apple.com/message/19220149#19220149

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