W porządku, więc kilka dni temu chciałem zainstalować Ubuntu GNOME na zwykłym Ubuntu i to dało mi możliwość automatycznego nadpisania mojej instalacji Ubuntu (którą miałem na osobnej partycji z mojego OS X Yosemite). Jednak po zainstalowaniu GNOME w ten sposób okazało się, że instalator usunął również moją partycję OS X.
Od tego czasu próbowałem różnych rzeczy, aby odzyskać moją partycję Mac, użyłem TestDisk do znalezienia sektorów i gdisk do odtworzenia tablicy partycji (i partycji). Problem polega na tym, że nie mogę zamontować tych nowych partycji. Próbowałem naprawić fsck.hfsplus, ale daje mi następujący błąd (uruchomiony z wersji próbnej GNOME USB):
ubuntu-gnome@ubuntu-gnome:~$ sudo fsck.hfsplus /dev/sda2
** /dev/sda2
** Checking HFS Plus volume.
Invalid number of allocation blocks
(4294967295, 0)
** Volume check failed.
Oto moje wyniki testu:
Oto partycje, które zrobiłem w gdisk:
Number Start (sector) End (sector) Size Code Name
1 34 409633 200.0 MiB EF00 EFI System Partition
2 411648 1164570455 555.1 GiB AF00 Apple HFS/HFS+
3 1165256704 1166528119 620.8 MiB AF00 Apple HFS/HFS+
4 1166528512 1182543855 7.6 GiB 8200 Linux swap
5 1182543872 1465147391 134.8 GiB 8300 Linux filesystem
Oto różne wyjścia po uruchomieniu w trybie odzyskiwania Internetu:
diskutil list
:
-bash-3.2# diskutil list /dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *750.2 GB disk0
1: EFI 209.7 MB disk0s1
2: Apple_HFS 596.0 GB disk0s2
3: Apple_HFS 651.0 MB disk0s3
4: Linux Swap 8.2 GB disk0s4
5: 0FC63DAF-8483-4772-8E79-3D69D8477DE4 144.7 GB disk0s5
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: Apple_partition_scheme *1.2 GB disk1
1: Apple_partition_map 30.7 KB disk1s1
2: Apple_HFS Mac OS X Base System 1.2 GB disk1s2
/dev/disk2-disk12 are part of the recovery system and irrelevant here
diskutil cs list
:
No CoreStorage logical volume groups found
gpt -r -vv show /dev/disk0
:
-bash-3.2# gpt -r -vv show /dev/disk0
gpt show: /dev/disk0: mediasize=750156374016; sectorsize=512; blocks=1465149168
gpt show: /dev/disk0: PMBR at sector 0
gpt show: /dev/disk0: Pri GPT at sector 1
gpt show: /dev/disk0: Sec GPT at sector 1465149167
start size index contents
0 1 PMBR
1 1 Pri GPT header
2 32 Pri GPT table
34 409600 1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
409634 2014
411648 1164158808 2 GPT part - 48465300-0000-11AA-AA11-00306543ECAC
1164570456 686248
1165256704 1271416 3 GPT part - 48465300-0000-11AA-AA11-00306543ECAC
1166528120 392
1166528512 16015344 4 GPT part - 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
1182543856 16
1182543872 282603520 5 GPT part - 0FC63DAF-8483-4772-8E79-3D69D8477DE4
1465147392 1743
1465149135 32 Sec GPT table
1465149167 1 Sec GPT header
Odpowiedzi:
Moim zdaniem „TestDisk” dał ci GPT.
Proszę porównać wynik testu TestDisk z moimi dyskami. Dyski w moim przykładzie są jednakowej wielkości, disk0 zawiera partycję CoreStorage i dysk2 starszą partycję JHFS +. Używam dwóch oddzielnych dysków, ponieważ nie wiadomo (przynajmniej dla mnie), który typ formatowania (CS lub JHFS +) był pierwotnie używany.
PMBR / GPT i pierwsze trzy partycje (EFI / Macintosh HD / Recovery HD) powinny wyglądać następująco, jeśli wcześniej posiadałeś partycję CoreStorage:
lub w ten sposób, jeśli wcześniej miałeś klasyczny wolumin JHFS +:
(Proszę wziąć pod uwagę, że mediasize, bloki, sektor drugorzędnego GPT, rozmiar drugiego woluminu i blok startowy trzeciego woluminu są inne niż twoje, ponieważ używam tutaj mniejszych przykładowych dysków)
Twój problem powinien zostać rozwiązany przez ponowne przepisanie GPT jeszcze raz.
Przygotowanie:
Zainstaluj pełny system waniliowy (Mavericks lub Yosemite powinien działać) na pendrive (lub dysku zewnętrznym). System odzyskiwania nie działa. Uruchom na pendrive, pobierz i zainstaluj wxHexEditor . Włącz użytkownika root i zaloguj się jako root.
Podpowiedź: Podczas pracy z wxHexEditor nie używaj kopiowania i wklejania. Wprowadź wszystko ręcznie! Możesz przypadkowo napisać bezpośrednio na dysk.
Partycja JHFS + lub CoreStorage?
Najpierw musisz określić, czy masz partycję JHFS + lub CoreStorage o indeksie 2.
Otwórz kalkulator. Otwórz wxHexEditor. Sprawdź, czy pracujesz w trybie tylko do odczytu („Opcje” - & gt; „Tryb pliku” - & gt; „Tylko do odczytu”). W menu przejdź do „Urządzenia” - & gt; „Otwórz urządzenie dyskowe” - & gt; wybierz odpowiedni numer dysku. Prawdopodobnie jest to dysk0. Dysk powinien mieć kolejne partycje (disk0s1 - disk0s5). Spróbuj uporządkować okno wxHexEditor, jak w poniższych przykładach, prostymi czerwonymi liniami.
Następnie naciśnij przycisk „Idź do przesunięcia” (oznaczony zielonym kółkiem) i wprowadź 409640 dokładnie tak, jak na poniższym obrazku. Czasami robisz to dwukrotnie, aby przejść do właściwego sektora. Ponownie sprawdź poprawny sektor, wprowadzając offset (zaznaczony na czerwono) w kalkulatorze i dzieląc go przez 512.
Pierwsze 3 sektory partycji CoreStorage wyglądają tak:
Pierwsze 3 sektory JHFS + wyglądają tak:
Jeśli masz zupełnie inny obraz, zatrzymaj się tutaj.
Gdzie zaczyna się partycja EFI?
Naciśnij przycisk „Idź do przesunięcia” i wprowadź 40 dokładnie tak, jak na poniższym rysunku:
Jeśli widzisz te same wpisy, jak na powyższym obrazku (XEBSD 4.4 ... EFI ... FAT32), jest to sektor początkowy twojej partycji EFI. Jeśli są tylko zera, to również może być ważne.
Gdzie zaczyna się partycja Recovery HD?
To prawdopodobnie najtrudniejsza część, ponieważ musisz znaleźć ciąg, który nie jest zbyt specyficzny. Przeskocz prawie do końca drugiej partycji (w twoim przypadku ~ 400 MB / 781250 sektorów mniej niż 1164570456 = 1163789206)
Następnie wpisz „HFSJ” jak na obrazku poniżej, wyszukaj ten ciąg dwa razy i zanotuj różne przesunięcia:
Możesz mieć dwa naprawdę różne wyniki w zależności od typu partycji:
Oblicz numer sektora pierwszego znalezienia. W moim przykładzie (patrz obrazek powyżej) jest to 68069452800/512 = 132948150. Kontynuuj wyszukiwanie i oblicz sektor drugiego znalezienia. W moim przypadku było to 68069454848/512 = 132948154 (brak obrazu).
Różnica między dwoma znaleziskami wynosi 4 bloki (= 2 KB).
Jest to typowe dla granicy między partycją JHFS + a Recovery HD. Odzyskiwanie HD rozpoczyna się wtedy w sektorze drugiego wyszukiwania - 2 (w moim przykładzie 132948154-2 = 132948152).
Oblicz numer sektora pierwszego znalezienia. W moim przykładzie było to 67733904384/512 = 132292782 (brak obrazu). Kontynuuj wyszukiwanie i oblicz sektor drugiego znalezienia. W moim przypadku było to 68069454848/512 = 132948154 (brak obrazu). Różnica między tymi dwoma wynikami wynosi 655372 (~ 336 MB)
Jest to typowe dla granicy między partycją CoreStorage a Recovery HD. Odzyskiwanie HD rozpoczyna się wtedy w sektorze drugiego wyszukiwania - 2 (w moim przykładzie 132948154-2 = 132948152).
Dzięki tym wynikom powinieneś być w stanie prawidłowo przywrócić GPT. Zamknij wxHexEditor. Jeśli zostaniesz poproszony o zapisanie zmian nie zapisuj ich! .
Przebuduj odpowiedni GPT
Zakładam, że identyfikatorem twojego głównego dysku jest disk0. Najpierw musisz odmontować główny dysk:
Sprawdź układ partycji, a następnie usuń trzy pierwsze partycje:
Ponieważ EFI i Recovery HD mają zwykle stałe rozmiary, możemy obliczyć blok początkowy i końcowy głównego woluminu.
Najpierw przebudowujemy EFI za pomocą:
Następnie obliczamy wielkość głównego wolumenu: blok początkowy to 409640. Blok końcowy został znaleziony w sekcji „Gdzie zaczyna się partycja Recovery HD?”: 1 mniej niż blok startowy Recovery HD. Rozmiar to StartBlockOfRecoveryHD-409640.
Jeśli wcześniej znalazłeś klasyczny JHFS +, poniższe polecenie powinno naprawić partycję 2:
Jeśli wcześniej znalazłeś partycję CoreStorage, poniższe polecenie powinno naprawić partycję 2:
Aby odbudować Recovery HD wpisz:
Ponownie zainstaluj dysk0 za pomocą:
Zamknij Terminal, uruchom Narzędzie dyskowe i sprawdź swój główny wolumin (prawdopodobnie Macintosh HD) w poszukiwaniu błędów i spróbuj je naprawić, jeśli to konieczne.
Jeśli wcześniej znalazłeś partycję CoreStorage, przed naprawą woluminów za pomocą Narzędzia dyskowego może być konieczne ponowne uruchomienie komputera, ponieważ wolumin logiczny CoreStorage może nie zostać rozpoznany / poprawnie zainstalowany. W ustawieniach - 1 dysk główny i pamięć USB - wolumin logiczny powinien być dyskiem2.
Mam nadzieję, że to rozwiąże twoje problemy.
Jeśli napotkasz problemy (np. Nie możesz znaleźć właściwego sektora startowego odzyskiwania HD), masz natychmiast wątpliwości lub pytania i skontaktuj się ze mną z komentarzem @klanomath!
źródło