Làm thế nào để sửa lỗi phân vùng EFI bị hỏng?


24

Tôi có một iMac chạy OSX Lion. Tôi cũng đã cài đặt bootcamp và Windows 7. Trong quá trình cài đặt Windows 7, tôi đã không chú ý hoàn toàn và xóa và định dạng phân vùng EFI.

Tôi đã không thực sự nhận ra tầm quan trọng của việc này khi máy tiếp tục hoạt động tốt, khởi động cả vào Windows và OSX.

Tôi đã nhận thấy rằng các bản cập nhật firmware EFI không cài đặt được, nhưng không phải trả tiền.

Tuy nhiên bây giờ tôi muốn cài đặt Mountain Lion và có cả đống rắc rối. Mountain Lion sẽ không cài đặt mà không có phân vùng EFI hợp lệ.

Đây là bảng phân vùng của tôi.

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

Như bạn có thể thấy tôi đã từng sửa lỗi phân vùng EFI bằng lệnh sau:

newfs_hfs -v EFI / dev / đĩa0s1

Điều này dường như không tạo ra loại phân vùng chính xác, nó đã tạo ra một Apple_HFS thay vì EFI.

Câu hỏi của tôi là (không định dạng đĩa) làm cách nào để tạo phân vùng EFI?

Cảm ơn giàu


Xem thêm câu trả lời này để thay đổi loại phân vùng: apple.stackexchange.com/a/342139/14586
mivk

Câu trả lời:


31

Bạn có thể tạo lại Phân vùng hệ thống EFI (ESP) bằng gptcông cụ dòng lệnh . Nó sẽ bắt đầu ở khu vực 40, và nó phải dài 409600 ngành (chính xác là 200MiB). Loại của mục nhập GPT phải là C12A7328-F81F-11D2-BA4B-00A0C93EC93Bvà nếu bạn có MBR lai, loại đó sẽ có EE. Định dạng thực sự là một tập hợp con của FAT, không phải HFS +. Bạn có thể đọc GPT bằng lệnh sudo gpt -r show disk0trong cửa sổ Terminal, điều này tạo ra đầu ra trông giống như thế này:

      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

Bạn có thể thấy phân vùng EFI chính xác tại chỉ mục 1. Nếu dòng đó không khớp chính xác, cách dễ nhất là xóa phân vùng ở vị trí của nó và tạo lại nó.

Hãy chắc chắn rằng bạn biết những gì bạn đang làm trước khi tiếp tục từ đây - bạn có thể mất dữ liệu nếu bạn làm hỏng.

Bạn không thể chỉnh sửa bảng phân vùng bằng cách sử dụng gpttrong khi các phân vùng trên ổ đĩa được gắn kết, vì vậy bạn sẽ cần khởi động từ một ổ đĩa khác (ví dụ: thẻ USB với trình cài đặt OSX) hoặc chạy mac ở chế độ đĩa đích và thực hiện phân vùng từ mac khác. Bạn có thể cần ngắt kết nối bất kỳ khối lượng được gắn tự động bằng cách sử dụng diskutil unmountDisk disk0trước khi tiếp tục và ở giữa các lệnh .

Để xóa phân vùng EFI "xấu" của bạn, hãy chạy lệnh này:

sudo gpt remove -i 1 disk0

Hãy chắc chắn rằng đĩa0 thực sự là đĩa bạn muốn thay đổi - các số có thể thay đổi giữa các lần khởi động lại. Ngoài ra, điều này sẽ chỉ hoạt động nếu bạn đã có phân vùng không phải là ESP ở vị trí của ESP - nếu không, việc xóa phân vùng 1 có thể là thảm họa! Trong trường hợp này, bạn sẽ cần di chuyển các chỉ số theo, vì tôi nghĩ rằng ESP phải có chỉ số 1. Theo âm thanh của nó, điều này sẽ không cần thiết trong trường hợp của bạn.

Sau khi xóa, thêm lại phân vùng với bố cục và loại chính xác:

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

Điều này sẽ tự sắp xếp phân vùng, nhưng khi bạn đã tạo một phân vùng HFS ở vị trí của nó, bạn cũng cần sửa định dạng của nó.

Định dạng của Phân vùng hệ thống EFI được Apple ghi lại ở đây . Như bạn có thể thấy, họ khuyên bạn nên sao chép một bản ESP hiện có thay vì tạo lại hệ thống tệp newfs_msdos. Nếu bạn có một ổ đĩa ngoài với bảng phân vùng GPT (nên cài đặt OSX), bạn có thể sao chép nó.

Đảm bảo rằng bạn có số đĩa và số phân vùng đúng cách hoặc bạn có thể ghi đè lên dữ liệu:

Nếu đĩa1 là ổ đĩa ngoài của bạn và nó chứa một ESP là phân vùng đầu tiên (đĩa1s1) và đĩa0 là ổ đĩa có ESP (đĩa0s1) bạn muốn sửa, hãy chạy lệnh này:

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

Điều này sẽ sao chép từng khối ESP của đĩa1 và ghi đè lên khối tương ứng trong ESP của đĩa0 với nó.

Ngoài ra, hãy đánh bạc với newfs_msdos.


Cảm ơn đã trả lời rất chi tiết. Cuối cùng tôi đã xoay sở để khắc phục vấn đề của mình bằng iParition. Tuy nhiên, đọc qua phương pháp của bạn, dường như là phương pháp chính xác mà tôi đang tìm kiếm có iParition không tồn tại. Cảm ơn một lần nữa, tôi đánh dấu đây là câu trả lời đúng.
Giàu

Phương pháp này rất hiệu quả với tôi vào ngày 10.6 sau khi GParted nhân bản ESP để chặn 2048 trên ổ SSD. Khởi động một đĩa cài đặt và làm theo cách trên, tôi đã sử dụng ddđể lưu trữ bản sao nhân bản trong một tệp trước khi xóa, tạo lại và ghi lại. Cảm ơn!
Nick Westgate

Đã làm việc tuyệt vời trên mbp của tôi với ổ đĩa lai ssd. EFI đã bị ghi đè bởi cài đặt grub và phương pháp này hoạt động hoàn hảo để đưa nó trở lại.
sean_m

Cám ơn vì đã chia sẻ. Để lưu kiểu gõ, bạn thực sự có thể chỉ định EFI là loại phân vùng thay vì GUID: sudo gpt add -b 40 -i 1 -s 409600 -t EFI

1
Làm cách nào tôi có thể thay đổi các chỉ số của các phân vùng để ESP có thể ở chỉ số 1?
addison

3

Thử đi:

  1. Sao lưu ổ đĩa trên máy thời gian.
  2. Khởi động lại, khởi động lại trên đĩa cài đặt Lion.
  3. Chuyển đến Tiện ích đĩa.
  4. Xóa phân vùng.
  5. Xóa HD.
  6. Xóa lại phân vùng một lần nữa, lần này đặt tên cho nó.
  7. Bấm vào HD.
  8. Xác minh HD để xác nhận thông báo lỗi EFI không còn xuất hiện.
  9. Quay trở lại để cài đặt màn hình.
  10. Chọn khôi phục từ sao lưu.

2

Giải pháp đơn giản hơn đã được tìm thấy ở đây: /unix//a/174522/182014

Một phân vùng EFI có thể được tạo thông qua GParted Live CD / USB :

  • Tạo ổ đĩa 200 MB (tất cả dung lượng trống của tôi khi bắt đầu):
    • Kiểu: fat32
    • Nhãn: EFI
  • Định dạng nó
  • Đặt cờ khởi động (tùy chọn chỉ khả dụng sau khi định dạng) thành "boot, esp"

nhập mô tả hình ảnh ở đây

Sẳn sàng!


0

Hãy thử iPartition 3 trở lên. Đi đến xem menu và hiển thị các thiết bị hệ thống. Vì nó thiếu EFI 200mb, hãy thu nhỏ phân vùng đầu tiên trên đĩa với hy vọng 200mb. Tạo phân vùng mới, sau đó trong cửa sổ kiểm tra đĩa có các tab. Bạn có thể chọn nhiều loại hệ thống tập tin khác nhau. Chỉ cần chọn phân vùng hệ thống EFI.


0

Điều này đã khắc phục vấn đề cho tôi.

1) Sao lưu phân vùng Bootcamp bằng Winclone

2) Sao lưu ổ đĩa Mac OSX bằng Carbon Copy Clone sang ổ đĩa ngoài

3) Cài đặt Mountain Lion vào ổ đĩa flash hoặc ổ đĩa ngoài

4) Mua một bản sao của iPartition, tải xuống ổ đĩa flash hoặc ổ đĩa ngoài

5) Khởi động lại trong khi giữ phím Tùy chọn để nhận menu khởi động

6) Chọn đèn flash hoặc ổ đĩa ngoài để khởi động từ

7) Trích xuất iPartition và thực thi. Chọn Xem và Thanh tra từ menu thả xuống.

8) Chọn Phân vùng Bootcamp trong tab Phân vùng và chọn hai hộp trong danh sách (Hoạt động và Hiển thị trong Windows) sau đó đóng hộp.

9) Nút Go nên được chiếu sáng, nếu không thì hãy tăng phân vùng Bootcamp lên một chút. Của tôi là 2 TB OSX, 500 GB Windows trên ổ đĩa 2,5 TB.

10) Khi nhấn nút Go, nó sẽ bắt đầu xử lý; mặc dù bạn có thể phải giết bất kỳ quy trình nào để nó không chạy (Xong với Trình giám sát hoạt động)

11) Sau khi tắt xong và tháo thiết bị khởi động bên ngoài rồi bật lại máy Mac. Nó nên được sửa và khởi động bình thường - ít nhất là của tôi đã làm.

Tôi đang chạy iMac 27, Intel Core i3 3,2 GHz với RAM 16 GB và ổ cứng 2,5 TB. Hầu hết các mục được liệt kê mà tôi đã thực hiện trước khi cài đặt Mountain Lion ngoại trừ bản sao lưu hiện tại của ổ Bootcamp. Winclone đã hoạt động ngay cả khi Bootcamp không khởi động và quá trình khôi phục đã tạo ra lỗi khi viết MBR. Tôi chỉ bỏ qua lỗi và tiếp tục với phần còn lại của quá trình. Rõ ràng Mountain Lion đã nhầm lẫn với PMBR hoặc EFI và thậm chí rEFIt sẽ không sửa nó nhưng bất cứ điều gì iPartition đã làm; Bây giờ nó đã được sửa.

* TUYÊN BỐ TỪ CHỐI **

Trong khi quá trình này có thể đã làm việc tốt cho tôi, NÓ KHÔNG THỂ LÀM VIỆC CHO BẠN! NHƯ VẬY VỚI BẤT K PR QUY TRÌNH NÀO R ED RÀNG BẢNG BẢNG BẢNG VÀ BẢNG DỮ LIỆU, BẠN ĐÃ TIÊU CHUẨN DỮ LIỆU DỮ LIỆU. BACKUP DRIVE CỦA BẠN NẾU BẠN MUỐN KIẾM DỮ LIỆU CỦA BẠN.

Tôi đặc biệt khuyên dùng Bản sao sao chép để sao lưu phân vùng OSX vì nó có thể tạo bản sao có thể khởi động mà tôi chưa bao giờ thất bại.

Tôi chắc rằng những người khác đã thành công ở nơi khác trong việc giải quyết vấn đề này và đánh giá cao tất cả những người đã đăng những gì họ đã làm vì nó giúp tôi giải quyết vấn đề này trên iMac.

Cảm ơn tất cả mọi người và tôi hy vọng điều này sẽ giúp người khác. (Đăng trong Diễn đàn Apple) https://discussions.apple.com/message/19220149#19220149

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.