Bagaimana saya bisa membuat partisi Mac saya dapat di-boot kembali?

2

Saya menjalankan macOS High Sierra pada iMac 2011. Saya juga menjalankan Windows 10 melalui BootCamp. Untuk mempersiapkan OS ke-3, saya menginstal ReFind dan mengubah ukuran partisi BootCamp untuk membuat ruang.

Sayangnya, ini membuat partisi Windows tidak dapat boot, saya mendapat pesan "Sistem Operasi Hilang" di layar hitam.

Alih-alih menerima keterbatasan saya dan tetap menggunakan Mac OS, saya memutuskan untuk menghapus partisi BootCamp, dan melanjutkan dengan menginstal ulang Windows ke ruang kosong. Awalnya ini tidak berfungsi dalam mode lawas, jadi saya (bodohnya) memutuskan untuk menggunakan EFI sebagai gantinya. Saya telah berhasil menginstal ulang Windows tetapi partisi Mac sekarang tidak muncul pada menu "ALT", ReFind telah menghilang dan mesin sekarang hanya boot ke Windows.

Jika saya mem-boot Mac OS dari USB, partisi mac tidak ditampilkan dan ditampilkan sebagai "Unallocated Space" ketika saya menggunakan Aomei di Windows 10.

Sayangnya, ada foto keluarga penting yang belum dicadangkan, dll di partisi Mac. Salahku!

Saya tidak percaya bahwa partisi mac telah dihapus, Windows berada di partisi BootCamp yang benar.

Pertanyaan saya adalah bagaimana cara mem-boot partisi Mac lagi jika memungkinkan, atau setidaknya mengeluarkan data. Saya tidak peduli tentang kehilangan Windows karena ini adalah instalasi baru.

Banyak terima kasih sebelumnya atas sarannya. Jelas saran terbaik adalah lebih berhati-hati dan menghindari situasi ini!

Berikut ini adalah hasil dari informasi yang diminta berdasarkan Bacaan ini :

gpt -r show disk0
     start       size index contents             
         0          1       PMBR                 
         i          1       Pri GPT header       
         2         32       Pri GPT table        
        34          6                            
        40     409600     1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
    409640 2542739416                             
2543149056      32768     2 GPT part - E3C9E316-0B5C-ADB8-817D-F92DF00215AE 
2543181824  636884926     3 GPT part - EBD0A0A2-B9E5-4A33-87C0-68B6B72699C7 
3180066750  726962385                            
3907029135         32       Sec GPT table        
3907029167          1       Sec GPT header  
Simon Baldwin
sumber
1
Saran terbaik adalah memiliki cadangan (Mesin Waktu) saat ini! Silakan tambahkan output gpt -r show disk0(di-boot ke Internet Recovery Mode (alt-cmd-R) atau ke macOS (USB) - tergantung pada jenis sistem pada USB - Anda harus menambahkan sudo ...dan / atau menonaktifkan SIP) untuk pertanyaan Anda.
klanomath
Terima kasih, saya telah menambahkan bacaan ke bagian bawah pertanyaan saya.
Simon Baldwin
Jika nanti Anda ingin membantu menginstal macOS, Windows dan Linux dalam tiga boot, beri tahu saya. Saat ini saya menggunakan iMac 2011 yang disiapkan untuk multi-boot menggunakan Startup Manager bawaan dari rEFInd.
David Anderson
@ Davidvidderson Saya mungkin akan meminta saran ketika saya mencoba untuk menambahkan partisi Linux ...
Simon Baldwin

Jawaban:

1

IMac Anda berisi disk non-4k 2 TB (saya kira itu adalah HDD) dan macOS High Sierra diinstal.

2542739416 blok disk Anda mulai dari blok 409640 tidak dialokasikan untuk partisi.

Partisi Anda yang hilang dapat diharapkan ditemukan & dipulihkan di ruang disk yang tidak terisi.

Tata letak partisi Apple default untuk HDD adalah 1. EFI 2. sistem utama dan 3. Recovery HD (dan 4. partisi tambahan yang dibuat oleh pengguna misalnya Boot Camp). EFI dan Recovery HD memiliki ukuran standar pada 512-disk:

  • EFI: 409600 blok (512)
  • HD Pemulihan: 1269536 blok (512)

Jenis partisi yang memenuhi syarat untuk HDD adalah standar HFS + atau CoreStorage (biasanya jika volume sistem utama dienkripsi atau Mac berisi Drive Fusion). APFS juga dimungkinkan tetapi tidak direkomendasikan oleh Apple. Memformat ulang HDD ke APFS akan dilakukan oleh pengguna.

Pada SSD, tipe partisi default adalah APFS tanpa partisi pemulihan.


Untuk mendeteksi boot jenis partisi sebelumnya ke Mode Pemulihan Internet:

  • Dapatkan detail partisi (di bawah ini saya asumsikan disk internal memiliki disk pengenal perangkat0):

    diskutil list
    gpt -r show disk0
    
  • Lepas disk0 dengan diskutil umountDisk disk0
  • vis 3 blok pertama dimulai dengan block409640 dari disk0:

    dd if=/dev/disk0 skip=409640 count=3 | vis -c
    

    Jika Anda memiliki partisi standar sebelumnya, 1024 Bytes pertama hanya berisi yang tidak dapat dicetak (nol): \0\0\0\0\0\0... Setelah ~ Byte 1030 Anda akan melihat urutan berikut: \ 0HFSJ \ 0

    Jika Anda memiliki partisi CoreStorage, beberapa non-nol di 512 Bytes pertama dan string CS ( ...\0CS\^A...) ditampilkan:

    \^U\^D\^A\M-s\M^?\M^?\M^?\M^?\^A\0\^P\0\0\0\M-W\^A\a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\^B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\M^Pu\M-\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0CS\^A\0\0\0\^D\0\0\^P\0\0\0\0@\0X\M-7}\^C\0\0\0\0X\M-;}\^C\0\0\0\0X\M-?}\^C\0\0\0\0X\M-C}\^C\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\^P\0\0\0\^B\0\0\0006j v\^R\M-+\^U\M^[\f\M^CdG\M-y\^]...
    

    Jika Anda memiliki partisi APFS, string NXSB ( ...\0NXSB\0\^P...) ditampilkan dalam beberapa byte pertama:

    ??[?\M^T\M^VD\^A\0\0\0\0\0\0\0\^X\f\0\0\0\0\0\0\^A\0\0\M^@\0\0\0\0NXSB\0\^P\0\0?7?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\^B\0\0\0\0\0\0\0\^Q?^@1\^PL ?GSf~\M^KBչ?\0\0\0\0\0\0\^Y\f\0\0\0\0\0\0\^X\^A\0\0\^Xl\0\0\^A\0\0\0\0\0\0\0\^Y\^A\0\0\0\0\0\0!\0\0\0\M^@Z\0\0\^_\0\0\0\^B\0\0\0zZ\0\0\^F\0\0\0\0\^D\0\0\0\0\0\0007?\^C\0\0\0\0\0\^A\^D\0\0\0\0\0\0\0\0\0\0d\0\0\0\^B\^D\0\0\0\0\0\0\^F\^D\0\0\0\0\0\0\b\^D\0\0\0\0\0\0f?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
    

Jika Anda memiliki drive boot macOS penuh kedua, Anda dapat menggunakan hexdump sebagai gantinya:

  • Lepas disk0 dengan diskutil umountDisk disk0
  • hexdump 3 blok pertama dimulai dengan block409640 dari disk0:

    sudo dd if=/dev/disk0 skip=409640 count=3 | hexdump
    

    Hasil berikut mengidentifikasinya sebagai partisi OS X normal:

    0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    *
    0000400 48 2b 00 04 80 00 21 00 48 46 53 4a 00 00 01 ff
    0000410 d3 8c 77 d3 d4 33 3c b0 00 00 00 00 d3 8c 5b b3
    0000420 00 00 02 a8 00 00 00 25 00 00 10 00 00 fe b7 f6
    0000430 00 fe 1e fa 00 ed 80 00 00 01 00 00 00 01 00 00
    0000440 00 00 10 f2 00 00 5a 9d 00 00 00 00 00 00 00 01
    0000450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0000460 00 00 00 00 00 00 00 00 7d 9d b0 3a 02 31 62 f0
    0000470 00 00 00 00 00 1f e0 00 00 1f e0 00 00 00 01 fe
    0000480 00 00 00 01 00 00 01 fe 00 00 00 00 00 00 00 00
    0000490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    *
    00004c0 00 00 00 00 00 60 00 00 00 60 00 00 00 00 06 00
    00004d0 00 00 0a 00 00 00 06 00 00 00 00 00 00 00 00 00
    00004e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    *
    0000510 00 00 00 00 03 10 00 00 03 10 00 00 00 00 31 00
    0000520 00 03 ac 00 00 00 31 00 00 00 00 00 00 00 00 00
    0000530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    *
    0000560 00 00 00 00 05 40 00 00 05 40 00 00 00 00 54 00
    0000570 00 00 10 00 00 00 54 00 00 00 00 00 00 00 00 00
    0000580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    *
    0000600
    

    Angka pertama adalah jumlah byte dalam hex: 0000000: 0; 0000600: 1536. Tanda * menunjukkan garis yang identik. Ini berarti: dua blok pertama (0x000-0x3ff) semuanya nol.

    Partisi CoreStorage menunjukkan beberapa non-nol di blok pertama (0x000-0x1ff):

    0000000 0c 73 a1 a9 ff ff ff ff 01 00 10 00 07 14 d7 01
    0000010 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0000030 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0000040 00 20 c1 cc 0f 00 00 00 00 00 00 00 00 00 00 00
    0000050 00 00 00 00 00 00 00 00 43 53 01 00 00 00 04 00
    0000060 00 10 00 00 00 00 40 00 11 bc fc 00 00 00 00 00
    0000070 11 c0 fc 00 00 00 00 00 11 c4 fc 00 00 00 00 00
    0000080 11 c8 fc 00 00 00 00 00 00 00 00 00 00 00 00 00
    0000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00000a0 00 00 00 00 00 00 00 00 10 00 00 00 02 00 00 00
    00000b0 62 02 98 59 ee a9 ab 51 9b 49 23 90 2e f8 8b 43
    00000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    *
    0000130 e4 6e f8 f2 63 99 45 c1 b2 13 86 28 a5 18 46 6d
    0000140 c4 51 c0 f6 32 f9 43 ab 8e 59 42 d2 1a ef f6 50
    0000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    *
    0000400 48 2b 00 04 80 00 21 00 48 46 53 4a 00 00 01 ff
    0000410 d1 98 a4 93 d4 33 8b d5 00 00 00 00 d1 98 88 73
    0000420 00 06 07 53 00 01 82 39 00 00 10 00 00 fb 6a 00
    0000430 00 c5 1c 55 00 25 73 c7 00 01 00 00 00 01 00 00
    0000440 00 0d e2 65 00 3e a2 fb 00 00 00 00 02 20 00 fb
    0000450 00 00 00 31 00 06 b9 ef 00 00 00 00 00 00 00 00
    0000460 00 00 00 00 00 00 00 31 fb 48 1e a0 6c 47 a2 9f
    0000470 00 00 00 00 00 1f e0 00 00 1f e0 00 00 00 01 fe
    0000480 00 00 00 01 00 00 01 fe 00 00 00 00 00 00 00 00
    0000490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    *
    00004c0 00 00 00 00 00 60 00 00 00 60 00 00 00 00 06 00
    00004d0 00 00 0a 00 00 00 06 00 00 00 00 00 00 00 00 00
    00004e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    *
    0000510 00 00 00 00 0e 40 00 00 01 30 00 00 00 00 e4 00
    0000520 00 00 10 00 00 00 e4 00 00 00 00 00 00 00 00 00
    0000530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    *
    0000560 00 00 00 00 11 d0 00 00 01 30 00 00 00 01 1d 00
    0000570 00 02 80 00 00 00 72 00 00 13 30 97 00 00 13 00
    0000580 00 15 c5 aa 00 00 13 00 00 18 2d 23 00 00 13 00
    0000590 00 19 d8 fb 00 00 13 00 00 1b 76 cb 00 00 13 00
    00005a0 00 1c 34 70 00 00 13 00 00 1d 0e 4d 00 00 13 00
    00005b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    *
    0000600
    

    Baris yang dimulai dengan byte 0x130 menunjukkan UUID Volume Fisik, baris yang dimulai dengan byte 0x140 menunjukkan UUID dari Grup Volume Logis.

    String 48 46 53 4a (= "HFSJ") dalam 16 byte pertama dari blok ketiga mengidentifikasi volume HFS + Jurnal pada kedua jenis partisi.

    Wadah APFS terlihat seperti ini:

    0000000 e7 ec ab 5b a2 94 96 44 01 00 00 00 00 00 00 00
    0000010 18 0c 00 00 00 00 00 00 01 00 00 80 00 00 00 00
    0000020 4e 58 53 42 00 10 00 00 f6 37 ff 00 00 00 00 00
    0000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0000040 02 00 00 00 00 00 00 00 11 f1 5e 40 31 10 4c 20
    0000050 bb 47 53 66 7e 8b 42 d5 b9 c4 00 00 00 00 00 00
    0000060 19 0c 00 00 00 00 00 00 18 01 00 00 18 6c 00 00
    0000070 01 00 00 00 00 00 00 00 19 01 00 00 00 00 00 00
    0000080 21 00 00 00 80 5a 00 00 1f 00 00 00 02 00 00 00
    0000090 7a 5a 00 00 06 00 00 00 00 04 00 00 00 00 00 00
    00000a0 37 fd 03 00 00 00 00 00 01 04 00 00 00 00 00 00
    00000b0 00 00 00 00 64 00 00 00 02 04 00 00 00 00 00 00
    00000c0 06 04 00 00 00 00 00 00 08 04 00 00 00 00 00 00
    00000d0 66 a4 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    *
    00003d0 00 00 00 00 00 00 00 00 16 21 06 00 00 00 00 00
    00003e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    *
    00004f0 00 00 00 00 00 00 00 00 91 3d 0f 00 00 00 00 00
    0000500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0000510 78 f4 09 00 00 00 00 00 01 00 00 00 00 00 00 00
    0000520 01 00 04 00 08 00 00 00 00 00 00 00 00 00 00 00
    0000530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    

    String 4e 58 53 42 (= "NXSB") dimulai dengan byte 0x020 di blok pertama adalah string ajaib dari superblock wadah APFS dan mengidentifikasinya sebagai wadah APFS. UUID wadah mulai dari 0x48 (di sini: 11 f1 5e 40 ...)


Jika Anda telah menemukan partisi standar (yang biasanya disertai dengan Recovery HD), Anda dapat menambahkannya dengan perintah berikut:

diskutil umountDisk disk0
gpt add -i 5 -b 2541879520 -s 1269536 -t 426F6F74-0000-11AA-AA11-00306543ECAC disk0
diskutil umountDisk disk0
gpt add -i 4 -b 409640 -s 2541469880 -t 48465300-0000-11AA-AA11-00306543ECAC disk0

Jika Anda telah menemukan partisi CoreStorage (yang biasanya disertai dengan Recovery HD), Anda dapat menambahkannya dengan perintah berikut:

diskutil umountDisk disk0
gpt add -i 5 -b 2541879520 -s 1269536 -t 426F6F74-0000-11AA-AA11-00306543ECAC disk0
diskutil umountDisk disk0
gpt add -i 4 -b 409640 -s 2541469880 -t 53746F72-6167-11AA-AA11-00306543ECAC disk0

Jika Anda telah menemukan partisi APFS ( tanpa Recovery HD - ini termasuk dalam wadah APFS!), Anda dapat menambahkannya dengan perintah berikut:

diskutil umountDisk disk0
gpt add -i 4 -b 409640 -s 2542739416 -t 7C3457EF-0000-11AA-AA11-00306543ECAC disk0

Di-boot ke sistem normal Anda harus menambahkan terlebih dahulu sudoke gpt ...perintah. Dalam keadaan tertentu Anda harus menonaktifkan SIP .


Akhirnya periksa partisi / volume:

diskutil verifyDisk disk0
diskutil verifyVolume disk0s2
diskutil verifyVolume disk0s3

Tata letak partisi Anda sebelumnya mungkin berisi celah antara "mantan" Recovery HD dan partisi Microsoft Reserved (ukuran: 32768 jenis blok: E3C9E316-0B5C-ADB8-817D-F92DF00215AE). Maka perintah memverifikasi Volume akan gagal dan senjata yang lebih besar harus dibawa. Jangan mencoba memperbaiki atau menginisialisasi apa pun jika diminta!


Jika Anda mengalami masalah yang tidak terduga, tambahkan komentar!

klanomath
sumber
Saya dapat mengkonfirmasi bahwa partisi Mac OS yang hilang adalah dari 409640 hingga 2542739416. Ruang kosong dari 3180066750 hingga 726962385 adalah ruang yang saya buat untuk menginstal Linux nanti. Saya tidak memformat ulang ke APFS jadi seharusnya masih HFS +. Saya akan coba nanti, terima kasih banyak!
Simon Baldwin
@SimonBaldwin Seperti yang disebutkan dalam tautan senjata yang lebih besar , metode serupa untuk mendeteksi akhir partisi HFS + ada - itu memerlukan beberapa pencarian di tingkat blok. Selain itu ukuran partisi HFS +, CS atau APFS disimpan di blok header - tetapi lebih rumit untuk mendapatkannya. Contoh (APFS): apple.stackexchange.com/a/312964/93229 . Jika metode yang diuraikan di atas gagal, saya akan menambahkan penjelasan.
klanomath
Saya menemukan partisi standar dan mengikuti instruksi untuk bagian itu. Saat menjalankan diskutil memverifikasi, disk0 disko, saya mendapat pesan "Masalah ditemukan dengan peta partisi yang mungkin mencegah booting Kesalahan -69846: Sistem file tidak dikenal". Kedua perintah verifikasi volume juga menyebabkan kesalahan.
Simon Baldwin
@SimonBaldwin Terkadang hexdump dari 3 blok pertama sudo dd if=/dev/disk0 skip=409640 count=3 | hexdumpatau sudo dd if=/dev/disk0 of=/Users/<username>/Desktop/3blocks.raw skip=409640 count=3cukup. Entah memposting hexdump di suatu tempat "sebagai teks" atau mengirim saya file: klanomath (at) googlemail.com
klanomath
Terima kasih, saya harus keluar sekarang tetapi mungkin akan melakukan ini pada hari Minggu. Kapan akan nyaman? Di zona waktu manakah Anda? Saya dapat mem-boot komputer ke windows atau saya memiliki partisi Snow Leopard bootable pada drive eksternal. Saya kira saya juga bisa melakukan hexdump ke drive eksternal dan mengirimkannya kepada Anda terlebih dahulu. Terima kasih lagi!
Simon Baldwin
0

Saya pikir satu-satunya pilihan Anda saat ini adalah mencoba memulihkan data menggunakan Penyelamatan Data. Tapi itu akan menjadi kekacauan besar. Pemulihan data semacam ini tidak memberi Anda pustaka foto bersih yang bagus dan rapi, pada dasarnya Anda akan mendapatkan setiap file yang mungkin dapat ditemukan semua tercampur menjadi beberapa folder raksasa. Saya akan segera berhenti menggunakan Mac. Anda mungkin telah memformat ulang partisi mac Anda dan menginstal windows di atasnya. Jika demikian, Anda masih akan mendapatkan BEBERAPA data yang dihapus dari itu, tetapi Anda akan mendapatkan semakin sedikit setiap menit Anda menjalankan windows.

l008com
sumber
Saya dapat melihat bahwa Windows berada di partisi Bootcamp yang benar, partisi mac sebelumnya terdaftar sebagai "Unallocated Space" jadi setidaknya tidak digunakan untuk saat ini.
Simon Baldwin
Hanya untuk bermain aman, jika data yang hilang benar-benar penting, saya tidak akan menggunakan komputer sama sekali sampai Anda selesai menjalankan pemulihan file yang dihapus Data Rescue. Mungkin juga Anda memiliki "partisi" ruang kosong yang ukurannya sama dengan partisi Mac lama Anda, tetapi sebenarnya bukan partisi itu. Berarti Anda masih bisa menimpa file Anda dengan menjalankan Windows. Saya tidak akan mengambil risiko.
l008com
0

Saya menggunakan solusi @ klanomath untuk membuat partisi Mac dapat di-boot kembali dan membuat cadangan Time Machine. Saya kemudian mencoba untuk memperbaiki kesalahan yang tersisa menggunakan Disk Utility. Seperti @klanomath memperingatkan, ini membuat disk tidak bisa di-boot lagi. Saya kemudian menghapus hard drive dan mencoba memulihkan dari cadangan Time Machine. Setelah 7 jam, pemulihan gagal sehingga saya menginstal ulang High Sierra dari pemulihan Internet kemudian mengimpor informasi dari Time Machine. Ini bekerja dan saya sekarang perlu (hati-hati) menginstal ulang Windows 10 (melalui Bootcamp) dan mungkin Ubuntu (jika saya merasa berani dan saya memiliki cadangan yang terbaru!)

Simon Baldwin
sumber