Partisi Mac tidak ada - sistem file tidak dikenal

1

Rupanya, saya menginstal Windows 7 melalui bootcamp dan membuat partisi baru di Windows (yang mungkin mempengaruhi tabel partisi).

Setelah restart, saya tidak bisa melihat Macintosh HD di disk startup (hanya menunjukkan Windows, yang bluescreens saat boot)

Jadi saya menjalankan cmd+ Runtuk mem-boot ke Internet Recovery Mode, pilih Disk Utility dan mencoba untuk memperbaiki disk, tetapi dikatakan 'Sistem file tidak dikenal' (saya lupa mengambil tangkapan layar) tetapi tampilannya seperti ini:

masukkan deskripsi gambar di sini

Dalam kasus saya, Macintosh HD menjadi disk0s2. Saya mencoba untuk memperbaiki disk tetapi gagal.

Coba jalankan diskutil cs listdari Terminal dan tidak menunjukkan disk apa pun.

Running gpt -r show /dev/disk0menghasilkan sebagai berikut:

-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

Apakah ada cara untuk memulihkan partisi Mac saya sehingga dapat di-boot?

Saya berpikir untuk melakukan pemulihan melalui internet (instal ulang) tetapi data saya tampaknya hilang setelah menginstal ulang.

JoshuaTang
sumber
Masalah Anda dimulai pada "buat partisi baru di windows". Anda tidak boleh membiarkan Windows menyentuh partisi, karena ia tidak mengerti bagaimana Boot Camp membodohinya dengan menganggapnya ada di partisi MBR.
Tetsujin
@klanomath: ini partisi pic imgur.com/afYeBTw yang diubah menjadi MBR, bisakah saya mendapatkannya kembali? :(
JoshuaTang
@lanomath: pada awalnya saya memisahkan 250GB untuk macintosh & 250GB dari windows (total HDD adalah 500GB), kemudian saya memisahkan 250GB di windows dengan 2. Sekarang, harus Mac (250GB) & windows (masing-masing 125GB). Saya tidak peduli tentang windows, hanya ingin memulihkan mac saya (data saya ada di dalamnya) :(
JoshuaTang
@klanomath: Tidak, saya berpikir untuk menggunakan instal ulang dari pemulihan internet, tetapi jika saya menggunakannya data saya akan hilang, kan?
JoshuaTang
@ JoshuaTang Ya, data Anda akan hilang. Tetapi Anda mungkin beruntung jika Anda tidak memformat partisi yang salah sebelumnya. Saya menulis jawaban dalam 30 menit ke depan. Pertama, saya harus menguji sesuatu.
klanomath

Jawaban:

2

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 sudomenjalankan beberapa perintah seperti gpt ...atau newfs_hfs ...!

Hapus MBR dan ubah tabel partisi GUID

  • Masukkan diskutil listdan 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 exitdan 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:

    cs

    3 sektor pertama dari partisi JHFS + terlihat seperti ini:

    jhfs +

    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!

    rhd

    Anda mungkin memiliki dua hasil yang sangat berbeda tergantung pada jenis partisi:

    1. 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).

    2. 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 listdangpt -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
klanomath
sumber
@JoshuaTang Apakah Anda sudah mencari awal dari HD Pemulihan?
klanomath
di sini postimg.org/image/n0htko5wl
JoshuaTang
Menemukannya postimg.org/image/gi9ebjsz1
JoshuaTang
Saya tidak dapat melakukan gpt add di index 3 (TempSystem inside) :( imgur.com/EXM86Hc
JoshuaTang
Ya, saya boot ke mode pemulihan internet. Apakah saya harus mengubah urutan? Maksud saya do gpt add -b 409640 -i 2 blablabla pertama lalu gpt add -b 487222344 -i 3 blablabla?
JoshuaTang