Làm thế nào để sửa lỗi GPT, GUID bị hỏng và không thể đếm được, không có khối lượng loại?


10

Tôi có Macbook Pro với võng mạc, Yosemite và ổ cứng 500 GB. Tôi đã cố gắng cài đặt Windows bằng Bootcamp và vô tình xóa một phân vùng, bây giờ máy Mac của tôi không thể khởi động được nữa. Đây là đầu ra từsudo gpt -r show disk0

  gpt show: 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  776617328      2  GPT part - FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF
777026968    1269760      3  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
778296728        616         
778297344  198807552      4  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
977104896        131         
977105027         32         Sec GPT table
977105059          1         Sec GPT header

Tôi chỉ cần tạo phân vùng thứ hai tại chỉ mục 2 và gõ FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFFđể có thể khởi động lại. Phân vùng này đã kích hoạt FileVault 2.

Nhưng ngay bây giờ, tôi không biết phải làm gì.

P / S: Tôi đã làm theo hướng dẫn từ @klanomath Khởi động từ ổ cứng ngoài với hệ thống Yosemite đầy đủ nhưng ở lệnh cuối cùng để thay đổi loại phân vùng

sudo gpt add -b 409640 -s 776617328 -i 2 -t 53746F72-6167-11AA-AA11-00306543ECAC /dev/disk0

Nó đã nhận được lỗi này:

gpt add: /dev/disk0: Suspicious MBR at sector 0
gpt add: /dev/disk0: error: no space available on device

Đây là đầu ra từ 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  776617328      2  MBR part 218
 777026968    1269760      3  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
 778296728        616         
 778297344  198807552      4  MBR part 175
 977104896        131         
 977105027         32         Sec GPT table
 977105059          1         Sec GPT header

Phát triển:

Tôi đã thực hiện lệnh sudo gpt destroy /dev/disk0

Nhưng khi tôi cố gắng thêm phân vùng đầu tiên trở lại bằng lệnh này sudo gpt add -b 40 -s 409600 -i 1 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B /dev/disk0

Tôi đã nhận được lỗi này ngay lập tức

gpt add: /dev/disk0: Suspicious MBR at sector 0
gpt add: /dev/disk0: error: no primary GPT header; run create or recover

Bây giờ lệnh sudo gpt -r show /dev/disk0cho tôi cái này

   gpt show: /dev/disk0: Suspicious MBR at sector 0
     start       size  index  contents
         0          1         MBR
         1     409639         
    409640  776617328      2  MBR part 218
 777026968    1269760      3  MBR part 175
 778296728        616         
 778297344  198807552      4  MBR part 175
 977104896        164

Tiến trình 2:

Tôi đã thực hiện sudo gpt create /dev/disk0 và nhận được lỗi này:

gpt create: /dev/disk0: Suspicious MBR at sector 0
gpt create: /dev/disk0: error: device contains a MBR

và tôi đã thực thi lệnh này sudo fdisk -i -a hfs /dev/disk0để viết MBR mới và thực hiện sudo gpt create /dev/disk0lại nhưng gặp lỗi tương tựgpt create: /dev/disk0: error: device contains a MBR

Bây giờ sudo gpt -r show /dev/disk0đưa tôi cái này

      start       size  index  contents
      0          1         MBR
      1         62         
     63  977104997      1  MBR part 175

Tiến trình 3 và cuối cùng: D

Đầu tiên là một lời cảm ơn lớn đến @klanomath, nếu không có sự giúp đỡ, tôi không thể đi xa đến thế này.

Tôi đã thực hiện lệnh này sudo gpt create -fp /dev/disk0

Và lệnh này sudo gpt recover /dev/disk0để có được tiêu đề GPT thứ cấp

Sau đó, tôi thực thi sudo gdisk /dev/disk0và đĩa được gắn kết và hoạt động đúng

Câu trả lời:


11

Loại nội dung của phân vùng thứ hai là sai. Thay vì FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFFnó phải được 53746F72-6167-11AA-AA11-00306543ECAC.

Để chỉnh sửa loại nội dung, bạn phải khởi động vào Chế độ khôi phục Internet và sử dụng gpt. Ngoài ra, phân vùng thứ tư sẽ bị xóa (có thể là phân vùng "đã xóa"). Vui lòng kiểm tra xem nó không chứa bất kỳ dữ liệu nào!

Sự chuẩn bị:

  • Tháo bất kỳ ổ đĩa ngoài nào (đặc biệt là ổ đĩa sao lưu Time Machine bên ngoài của bạn)
  • Khởi động lại chế độ phục hồi Internet bằng cách nhấn alt cmd Rkhi khởi động.

    Điều kiện tiên quyết là bản cập nhật firmware mới nhất được cài đặt, ethernet hoặc WLAN (WPA / WPA2) và bộ định tuyến có DHCP được kích hoạt.
    Trên đường truyền 50 Mbps, mất khoảng 4 phút (hiển thị một quả cầu hoạt hình nhỏ) để khởi động vào hình ảnh netboot phục hồi thường được tải từ máy chủ Apple / Akamai.

    Tôi khuyên dùng ethernet vì nó đáng tin cậy hơn. Nếu bạn bị hạn chế với WIFI và quá trình khởi động thất bại, chỉ cần khởi động lại máy Mac cho đến khi bạn khởi động thành công.

    Ngoài ra, bạn có thể bắt đầu từ một ổ đĩa cài đặt có khả năng khởi động (tốt nhất là Yosemite hoặc El Capitan) hoặc ổ ngón tay cái có chứa một hệ thống đầy đủ (tốt nhất là Yosemite hoặc El Capitan). Nếu bạn khởi động hệ thống đầy đủ và đăng nhập với tư cách quản trị viên, bạn phải trả trước sudođể thực hiện các lệnh đặc biệt như gpt ...!

Xóa phân vùng thứ tư và thay đổi loại nội dung của phân vùng thứ hai

  • Đã khởi động vào Chế độ khôi phục Internet mở Tiện ích → Thiết bị đầu cuối trong thanh thực đơn và nhập: diskutil listđể nhận định danh đĩa. Dưới đây tôi giả sử rằng đĩa chính của bạn có định danh đĩa đĩa0.

  • Trước tiên, bạn phải xóa phân vùng thứ tư (chỉ làm điều đó nếu nó thực sự trống!):

    gpt -r show /dev/disk0 #to get an overview
    

    Để xóa một phân vùng với gptđĩa phải được bỏ qua:

    diskutil unmountDisk /dev/disk0
    gpt remove -i 4 /dev/disk0 #remove the fourth partition
    
  • Sau đó, bạn phải thay đổi loại nội dung của phân vùng thứ hai:

    diskutil unmountDisk /dev/disk0
    gpt remove -i 2 /dev/disk0 #remove the second partition
    gpt add -b StartBlock -s NumberOfBlocks -i 2 -t 53746F72-6167-11AA-AA11-00306543ECAC
    

    Trong trường hợp của bạn:

    gpt add -b 409640 -s 776617328 -i 2 -t 53746F72-6167-11AA-AA11-00306543ECAC /dev/disk0
    
  • Bây giờ bạn sẽ được yêu cầu mật khẩu FileVault. Nhập nó
  • Nhập exitvà thoát Terminal
  • Kiểm tra lỗi âm lượng chính Macintosh HD
  • Thoát khỏi Disk Utility và khởi động lại ổ đĩa chính của bạn

Phụ lục: Loại bỏ MBR cứng đầu

Bạn có thể sử dụng fdiskhoặc gptxóa MBR ở khối 0. Nếu bạn sử dụng người dùng quản trị viên sử sudodụng các gpt ....lệnh.

  • Trước tiên hãy có một cái nhìn tổng quan một lần nữa. Bước này rất quan trọng trước khi bạn phá hủy gpt, vì đó là nguồn để xây dựng lại từ đầu:

    gpt -r show /dev/disk0
    
  • Sau đó xóa gpt:

    diskutil unmountDisk /dev/disk0
    gpt destroy /dev/disk0
    
  • Tạo bảng phân vùng GUID mới:

    gpt create -f /dev/disk0
    
  • Cuối cùng thêm tất cả các phân vùng từng cái một:

    gpt add -b 40 -s 409600 -i 1 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B /dev/disk0
    gpt add -b 777026968 -s 1269760 -i 3 -t 426F6F74-0000-11AA-AA11-00306543ECAC /dev/disk0
    gpt add -b 409640 -s 776617328 -i 2 -t 53746F72-6167-11AA-AA11-00306543ECAC /dev/disk0
    

    Gợi ý : Bạn có thể thêm và xóa các phân vùng theo thứ tự tùy ý nếu bạn giữ đúng số chỉ mục. Trong các lệnh trên tôi đã thêm phân vùng thứ ba ( ... -i 3 ...) trước khi thêm phân vùng thứ hai ( ... -i 2 ...). Sau đó, bạn không phải ngắt kết nối đĩa0 vì các phân vùng i = 1 và i = 3 không chứa các khối được gắn tự động trong khi phân vùng thứ hai thì có.

    Tôi đã bỏ lỡ để phát hiện loại phân vùng sai của Recovery HD (phân vùng thứ ba có chỉ số số 3) trong phần đầu tiên của câu trả lời của tôi. Vì vậy, tôi đã sử dụng:

    gpt add -b 777026968 -s 1269760 -i 3 -t 426F6F74-0000-11AA-AA11-00306543ECAC /dev/disk0
    

    ở trên thay vì sai

    gpt add -b 777026968 -s 1269760 -i 3 -t 48465300-0000-11AA-AA11-00306543ECAC /dev/disk0 #wrong partition type of the Recovery HD
    

    để thêm lại nó.

    Nếu bạn vẫn gặp lỗi, hãy khắc phục MBR fdisk. Nếu bạn sử dụng người dùng quản trị viên, hãy sử sudodụng các fdisk ...lệnh:

    fdisk -i -a hfs /dev/disk0
    

    và thêm các mục gpt với gpt ...phác thảo ở trên.


Thay đổi kích thước ổ đĩa chính để lấp đầy toàn bộ đĩa

Cuối cùng, bạn có thể muốn thay đổi kích thước ổ đĩa chính để lấp đầy toàn bộ đĩa.

  • Nhận tổng quan với:

    diskutil cs list
    

    Bạn có thể có một số Nhóm khối lượng logic CoreStorage, nếu bạn khởi động từ ổ đĩa ngoài với hệ thống đầy đủ! Sử dụng đúng cách!

  • Thay đổi kích thước toàn bộ ngăn xếp:

    diskutil cs resizeStack lvUUID size #lvUUID is the UUID of the Logical Volume. Usually it's the last one listed.
    

    Đã khởi động vào Yosemite, bạn có thể sử dụng 0gkích thước để mở rộng nó. 0g là một kích thước "ma thuật" ở đây.

    diskutil cs resizeStack lvUUID 0g
    

    Đã khởi động để El Capitan bạn phải sử dụng một kích thước thật như thế nào 500g. Nếu bạn nhận được một lỗi sử dụng một kích thước hơi nhỏ hơn như 499ghay 499500m.

    diskutil cs resizeStack lvUUID 500g
    

1
Tôi vẫn bị mắc kẹt. Đầu tiên, sau khi thực hiện "gpt xóa -i 2 / dev / đĩa0", nó nói "gpt: unknown lệnh: xóa" vì vậy tôi giả sử rằng tôi cần thay đổi 'xóa' thành 'xóa'. Nhưng ở lệnh cuối cùng mà tôi cần thực thi, nó nói "gpt add: / dev / đĩa0: error: không có chỗ trống trên thiết bị"
LN

Tôi đã làm theo hướng dẫn của bạn và đăng kết quả trong câu hỏi, cảm ơn
LN

Tôi đã làm theo hướng dẫn thứ hai, không may là tôi lại bị mắc kẹt với lỗi "gpt add: / dev / đĩa0: error: không có tiêu đề GPT chính; chạy tạo hoặc khôi phục". Tôi đã thêm tiến trình
LN

không phải lo lắng, tôi chỉ cập nhật tiến độ của tôi. có vẻ như tôi không thể thoát khỏi MBR
LN

1
Chà điều đó thật hữu ích khi biết khi nào vấn đề chính xác tương tự xảy ra với tôi vài tháng trước ... klanomath không bao giờ làm tôi ngạc nhiên với việc anh ta biết nhiều về máy Mac. Tôi cuối cùng đã mất tất cả dữ liệu của tôi.
Flare Cat
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.