Manajemen Disk Windows telah menimpa tabel partisi GUID dengan tabel partisi MBR. Ini biasanya hanya mempengaruhi tabel partisi tetapi bukan isi disk Anda (meskipun tampaknya sudah hilang)! Untuk mengembalikan tabel partisi GUID yang tepat, MBR harus dihapus dan tabel partisi GUID yang tepat harus dikembalikan.
Kendala khusus di sini adalah: OP tidak memiliki thumb drive atau Mac kedua atau drive eksternal.
Jawabannya di bawah ini TIDAK ditujukan untuk pengguna DENGAN thumb drive atau disk eksternal! Jika Anda memiliki salah satu perangkat tersebut, solusi yang lebih mudah ada.
Persiapan:
Mulai kembali ke Mode Pemulihan Internet dengan menekan alt cmd Rsaat startup.
Prasyarat adalah pembaruan firmware terbaru yang diinstal, baik ethernet atau WLAN (WPA / WPA2) dan router dengan DHCP diaktifkan.
Pada jalur 50 Mbps, dibutuhkan sekitar 4 menit (menyajikan globe animasi kecil) untuk boot ke image netboot pemulihan yang biasanya dimuat dari server Apple / Akamai.
Saya merekomendasikan ethernet karena lebih dapat diandalkan. Jika Anda dibatasi untuk WIFI dan proses booting gagal, cukup restart Mac Anda sampai Anda berhasil booting.
Sebagai alternatif, Anda dapat mulai dari thumb drive installer yang dapat di-boot (lebih disukai Yosemite atau El Capitan) atau thumb drive yang berisi sistem penuh (lebih disukai Yosemite atau El Capitan). Jika Anda boot ke sistem lengkap dan masuk sebagai admin, Anda harus sudo
menjalankan beberapa perintah seperti gpt ...
atau newfs_hfs ...
!
Hapus MBR dan ubah tabel partisi GUID
Masukkan diskutil list
dan gpt -r show /dev/diskX
(dengan diskX: pengenal disk disk internal Anda (mungkin disk0) untuk mendapatkan gambaran umum. Dalam perintah di bawah ini saya menganggap pengidentifikasi disk adalah disk0.
Anda harus mendapatkan output berikut (jenisnya mungkin berbeda dalam daftar diskutil Anda:
-bash-3.2# diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *500.0 GB disk0
1: NTFS 253.5 GB disk0s1
2: NTFS 122.4 GB disk0s2
3: NTFS 124.1 GB disk0s3
/dev/disk1...~/dev/disk12 belong to the recovery system
-bash-3.2# gpt -r show /dev/disk0
start size index contents
0 1 MBR
1 488493055 1 MBR part 66
488493056 248700928 2 MBR part 66
737193984 239577136 3 MBR part 66
976771120 2048
Sekarang ganti MBR dengan tabel partisi GUID:
diskutil umountDisk /dev/disk0
dd if=/dev/random of=/dev/disk0 count=1 bs=512
gpt create /dev/disk0
Tambahkan partisi EFI di tabel partisi:
gpt add -b 40 -i 1 -s 409600 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B /dev/disk0
Sekarang Anda dapat menebak konten lama dari tabel partisi GUID atau Anda dapat menginstal OS X ke partisi baru - tanpa menimpa partisi OS X lama Anda - dan mencoba mendeteksi ukuran partisi lama dengan alat yang sesuai (seperti Test Disk / wxHexEditor).
Menginstal OS X baru
Ini akan menghancurkan konten partisi Windows.
Tambahkan partisi baru di bagian OS X (lama) dari disk Anda untuk melindunginya.
gpt add -b 409640 -i 2 -s 488083416 -t FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF /dev/disk0
Ini mungkin berlebihan.
Tambahkan partisi baru di bagian Windows (lama) dari disk Anda. Yang pertama adalah partisi sistem baru, yang kedua adalah partisi pemulihan:
gpt add -b 800000000 -i 4 -s 100000000 -t 48465300-0000-11AA-AA11-00306543ECAC /dev/disk0
gpt add -b 900000000 -i 5 -s 1269536 -t 426F6F74-0000-11AA-AA11-00306543ECAC /dev/disk0
Sekarang Anda harus memformat partisi baru:
diskutil list
newfs_hfs -v "TempSystem" -J /dev/disk0s4 #use the proper partition found in diskutil list. It should have a size of ~50 GB
newfs_hfs -v "Recovery HD" -J /dev/disk0s5
diskutil mount /dev/disk0s4
- Keluar dari Terminal dengan memasukkan
exit
dan keluar.
- Buka Restore OS X dan instal OS X ke partisi TempSystem
- Konfigurasikan sistem baru dan aktifkan akses internet. Jangan menginisialisasi volume "tidak dikenal" jika ditanya.
- Aktifkan pengguna root
- Log-out sebagai admin dan log-in sebagai root
- Unduh dan instal wxHexEditor
Deteksi blok awal dan jenis volume OS X lama Anda dan blok awal HD Pemulihan lama Anda dengan wxHexEditor:
Pendekatannya sama seperti dalam jawaban saya di sini: HFS + jumlah blok alokasi tidak valid
Karena blok awal partisi utama dan ukuran partisi pemulihan memiliki ukuran / batas tetap, Anda biasanya dapat menghitung entri partisi GUID yang tepat dari partisi lama Anda.
Petunjuk: Saat bekerja dengan wxHexEditor jangan gunakan salin dan tempel. Masukkan semuanya secara manual! Anda mungkin secara tidak sengaja menulis langsung ke disk Anda.
JHFS + atau partisi CoreStorage?
Pertama, Anda harus menentukan, apakah Anda memiliki partisi JHFS + atau CoreStorage di nomor indeks 2.
Buka Kalkulator. Buka wxHexEditor. Periksa apakah Anda bekerja dalam mode hanya baca ("Opsi" -> "Mode file" -> "Hanya baca"). Di menu men masuk ke "Perangkat" -> "Buka perangkat disk" -> pilih diskNumber yang sesuai. Mungkin disk0. Disk harus memiliki partisi lebih lanjut (disk0s1 - disk0s5). Cobalah mengatur jendela wxHexEditor seperti pada contoh di bawah ini dengan garis merah lurus.
Kemudian tekan tombol "Go to offset" -tanda (ditandai dengan lingkaran hijau) dan masukkan 409640 persis seperti pada gambar di bawah ini. Kadang-kadang Anda harus melakukannya dua kali untuk melompat ke sektor yang benar. Periksa kembali sektor yang benar dengan memasukkan offset (ditandai merah) dalam Kalkulator dan bagilah melalui 512.
3 sektor pertama dari partisi CoreStorage terlihat seperti ini:
3 sektor pertama dari partisi JHFS + terlihat seperti ini:
Jika Anda mendapatkan gambar yang berbeda secara fundamental, berhentilah di sini.
Di mana partisi Pemulihan HD dimulai?
Itu mungkin bagian yang paling sulit karena Anda harus menemukan string yang tidak terlalu spesifik. Melompat hampir ke akhir partisi kedua lama Anda (dalam kasus Anda ~ 1000 MB / 1953125 sektor kurang dari 488493056 = 486539931)
Lalu masukkan "HFSJ" seperti pada gambar di bawah, cari string ini dua kali dan buat dibaca! catatan tulisan tangan dari offset yang berbeda. Untuk memulihkan OS X lama Anda, Anda harus boot ke Mode Pemulihan Internet nanti dan semua temuan di layar dalam OS X sementara saat ini akan hilang!
Alasan untuk mencari string "HFSJ" adalah bahwa semua volume HFSJ + berisi string ini di sektor ketiga dari partisi. String juga dapat terjadi nanti dan di akhir!
Anda mungkin memiliki dua hasil yang sangat berbeda tergantung pada jenis partisi:
Hitung nomor sektor dari temuan pertama. Dalam contoh saya (lihat gambar di atas) itu 68069452800/512 = 132948150. Lanjutkan mencari dan menghitung sektor dari temuan kedua. Dalam kasus saya itu 68069454848/512 = 132948154 (tidak ada gambar). Perbedaan antara dua temuan adalah 4 blok (= 2 KB).
Ini khas untuk batas antara partisi JHFS + dan Pemulihan HD. HD Pemulihan dimulai kemudian pada sektor temuan kedua - 2 (dalam contoh saya 132948154-2 = 132948152).
Hitung nomor sektor dari temuan pertama. Dalam contoh saya itu 67733904384/512 = 132292782 (tidak ada gambar). Lanjutkan mencari dan menghitung sektor dari temuan kedua. Dalam kasus saya itu 68069454848/512 = 132948154 (tidak ada gambar). Perbedaan antara dua temuan adalah 655372 (~ 336 MB)
Ini khas untuk batas antara partisi CoreStorage dan Recovery HD. HD Pemulihan dimulai kemudian pada sektor temuan kedua - 2 (dalam contoh saya 132948154-2 = 132948152).
Dengan hasil ini, Anda harus dapat memulihkan GPT Anda dengan benar. Keluar dari wxHexEditor. Jika Anda diminta untuk menyimpan perubahan jangan simpan!
- Boot kembali ke Mode Pemulihan Internet dan buka Terminal
- Masukkan
diskutil list
dangpt -r show /dev/disk0
Hapus partisi kedua (pelindung tipe FFFFFFFFFF-FFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFFF):
diskutil umountDisk /dev/disk0
gpt remove -i 2 /dev/disk0
Karena EFI dan Recovery HD biasanya memiliki ukuran tetap, Anda dapat menghitung blok awal dan akhir volume utama Anda.
Hitung ukuran volume utama: blok awal adalah 409640. Blok akhir telah ditemukan di bagian "Di mana partisi HD Pemulihan dimulai?": 1 kurang dari blok awal dari Pemulihan HD. Ukurannya kemudian StartBlockOfRecoveryHD-409640.
Jika Anda telah menemukan JHFS + klasik sebelumnya, perintah berikut ini harus memperbaiki partisi 2:
diskutil umountDisk /dev/disk0
gpt add -b 409640 -i 2 -s StartBlockOfRecoveryHD-409640 -t 48465300-0000-11AA-AA11-00306543ECAC disk0
Jika Anda telah menemukan partisi CoreStorage sebelumnya, perintah berikut ini harus memperbaiki partisi 2:
diskutil umountDisk /dev/disk0
gpt add -b 409640 -i 2 -s StartBlockOfRecoveryHD-409640 -t 53746F72-6167-11AA-AA11-00306543ECAC disk0
Untuk membangun kembali masukkan HD Pemulihan:
diskutil umountDisk /dev/disk0
gpt add -b StartBlockOfRecoveryHD -i 3 -s 1269536 -t 426F6F74-0000-11AA-AA11-00306543ECAC disk0
Sekarang Anda dapat mencoba memasang dan memverifikasi volume OS X lama Anda:
diskutil mount /dev/disk0s2
diskutil verifyVolume /dev/disk0s2
Jika Anda mendapatkan kesalahan saat memasang atau memverifikasi volume, batasnya mungkin salah. Berhenti di sini dan konsultasikan padaku.
- Jika verifikasi berhasil, Anda dapat mem-boot ke volume OS X lama Anda dan memeriksa apakah itu berfungsi dan menghapus TempSystem dan HD Pemulihan baru nanti atau menghapus keduanya segera. Kelemahan dari boot ke volume OS X lama Anda terlebih dahulu adalah Anda harus boot ke Internet Recovery Mode sekali lagi untuk menghapus TempSystem dan Recovery HD baru.
Untuk menghapus kedua partisi yang dapat disingkirkan yang di-boot ke Mode Pemulihan Internet, masukkan:
diskutil list
gpt -r show /dev/disk0
diskutil umountDisk /dev/disk0
gpt remove -i 4 /dev/disk0 # remove the partition starting at block 800000000
diskutil umountDisk /dev/disk0 # remove the partition starting at block 900000000
gpt remove -i 5 /dev/disk0
- Bergantung pada tipe partisi (HFSJ + atau CoreStorage) Anda dapat menggunakan
diskutil resizeVolume ...
atau diskutil cs resizeStack ...
untuk memperluas volume OS X Anda yang dipulihkan.
Memperkirakan (menebak) entri tabel partisi GUID yang tepat
Menebak partisi sering berhasil karena instalasi OS X " satu-volume-terlihat " standar memiliki blok awal dan ukuran yang sangat khas dari semua partisi:
Peta partisi klasik pemasangan Yosemite tanpa partisi Boot Camp mungkin akan terlihat seperti ini di Mac Anda:
sudo gpt -r show disk0
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 975093952 2 GPT part - 48465300-0000-11AA-AA11-00306543ECAC
975503592 1269536 3 GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
976773128 7
976773135 32 Sec GPT table
976773167 1 Sec GPT header
Semua blok awal dan ukuran partisi diselaraskan dengan blok 4096 bytes - semuanya dapat dibagi melalui 8 (mis. 975093952: 8 = 121886744)!
Setelah menginstal Windows dengan Boot Camp Assistant, partisi OS X utama menyusut dan Recovery HD dipindahkan:
sudo gpt -r show disk0
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 486813880 2 GPT part - 48465300-0000-11AA-AA11-00306543ECAC
487223520 1269536 3 GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
488493056 488280072 4 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
976773128 7
976773135 32 Sec GPT table
976773167 1 Sec GPT header
Partisi keempat adalah partisi NTFS. Beberapa instalasi Windows menambahkan partisi EFI kedua:
488493056 488280072 4 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
->
488493056 204800 4 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
488697856 488075272 5 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
Setelah mempartisi partisi Windows dari dalam Windows peta partisi ditimpa dan diganti dengan peta partisi MBR:
gpt -r show /dev/disk0
start size index contents
0 1 MBR
1 488493055 1 MBR part 66
488493056 248700928 2 MBR part 66
737193984 239577136 3 MBR part 66
976771120 2048
Sekarang orang dapat berasumsi bahwa 488493056 blok pertama (blok 0 - blok 488493055) tidak tersentuh (kecuali MBT tentu saja) dan masih mewakili bagian OS X sebelumnya. Karena Anda sudah mengganti MBR dengan tabel partisi GUID dan memulihkan partisi EFI pada langkah sebelumnya, Anda hanya perlu mengembalikan partisi OS X utama dan Recovery HD.
Di sini asumsinya adalah: blok terakhir dari partisi MBR pertama adalah blok terakhir dari HD Pemulihan. Dengan menghitung mundur, Anda sekarang dapat mengembalikan Recovery HD dan volume OS X lama:
Ukuran tetap dari Recovery HD: 1269536
Blok awal partisi kedua: 488493056 - 1269536 = 487223520 (blok awal partisi Recovery)
Blok terakhir yang diperbaiki dari partisi EFI dan blok awal dari partisi Recovery menentukan blok awal dan ukuran volume OS X:
Ukuran: 487223520 - 409640 = 486813880
Blok start tetap: 409640
Sekarang dapatkan perintah yang tepat untuk mengembalikan tabel partisi GUID:
gpt add -b 487223520 -i 3 -s 1269536 -t 426F6F74-0000-11AA-AA11-00306543ECAC disk0 # add the recovery partition
gpt add -b 409640 -i 2 -s 486813880 -t 48465300-0000-11AA-AA11-00306543ECAC disk0 # add the main OS X partition
Verifikasi volume utama dengan:
diskutil verifyVolume /dev/disk0s2
Pendekatan ini mungkin gagal karena kadang-kadang ruang disk tidak terisi (biasanya 2048, 102400 atau 204800 blok) ditambahkan oleh alat partisi disk. Ruang disk yang tidak terisi dapat ditambahkan di akhir partisi MBR
Setelah mengakses remote Mac dan memeriksa disk, solusi terakhir yang mungkin - mengikuti bagian wxHexEditor dari jawabannya - tampaknya:
gpt add -b 487222344 -i 3 -s 1269536 -t 426F6F74-0000-11AA-AA11-00306543ECAC /dev/disk0
gpt add -b 409640 -i 2 -s 486812704 -t 48465300-0000-11AA-AA11-00306543ECAC /dev/disk0
Karena beberapa volume yang terpasang ada pada disk0 dan partisi pelindung (i = 2) harus dihapus sebelum partisi lama asli dapat dipulihkan, antrian perintah lengkap terlihat seperti ini:
diskutil umountDisk /dev/disk0
gpt remove -i 2 /dev/disk0
diskutil umountDisk /dev/disk0
gpt add -b 487222344 -i 3 -s 1269536 -t 426F6F74-0000-11AA-AA11-00306543ECAC /dev/disk0
diskutil umountDisk /dev/disk0
gpt add -b 409640 -i 2 -s 486812704 -t 48465300-0000-11AA-AA11-00306543ECAC /dev/disk0