Naprawa partycji systemowej EFI

3

Mam problem z wewnętrznym dyskiem SSD na jednym z komputerów Mac z systemem 10.10. Działało dobrze, kiedy pewnego dnia przeglądałem sieć, a potem nagle zamarło z wirującą piłką plażową; Nie mogłem wymusić wyjścia (było naprawdę zawieszone), więc wymusiłem ponowne uruchomienie, a teraz komputer w ogóle się nie uruchamia. Próbowałem następujących bezskutecznie:

  1. Uruchamianie partycji odzyskiwania i naprawa dysku za pomocą Narzędzia dyskowego.
  2. Uruchamianie zewnętrznego instalatora USB 10.10 i naprawa dysku za pomocą Narzędzia dyskowego.
  3. Uruchamianie w trybie dysku docelowego i naprawa dysku za pomocą Narzędzia dyskowego.
  4. Uruchamianie w trybie dysku docelowego i próbowanie wszystkiego, co mogę wymyślić diskutilw Terminalu.

W tym momencie dałem się na Disk Utility i zostały poszukuje odpowiedniej kombinacji diskutil, fscki gptaby to działa. Mam pewne dane, które zostaną utracone, więc ponowne formatowanie nie wchodzi w grę.

Oto niektóre z istotnych informacji:

$ diskutil list:

/dev/disk1 (external):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                         251.0 GB   disk1
   1:                        EFI EFI                     209.7 MB   disk1s1
   2:          Apple_CoreStorage Macintosh HD            250.1 GB   disk1s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk1s3

$ diskutil info disk1:

   Device Identifier:        disk1
   Device Node:              /dev/disk1
   Whole:                    Yes
   Part of Whole:            disk1
   Device / Media Name:      APPLE SSD SD256E

   Volume Name:              Not applicable (no file system)

   Mounted:                  Not applicable (no file system)

   File System:              None

   Content (IOContent):      GUID_partition_scheme
   OS Can Be Installed:      No
   Media Type:               Generic
   Protocol:                 Thunderbolt
   SMART Status:             Verified

   Total Size:               251.0 GB (251000193024 Bytes) (exactly 490234752 512-Byte-Units)
   Volume Free Space:        Not applicable (no file system)
   Device Block Size:        512 Bytes

   Read-Only Media:          Yes
   Read-Only Volume:         Not applicable (no file system)

   Device Location:          External
   Removable Media:          No

   OS 9 Drivers:             No
   Low Level Format:         Not supported

$ diskutil verifyDisk disk1:

Started partition map verification on disk1
Checking prerequisites
Checking the partition list
Checking the partition map size
Checking for an EFI system partition
Checking the EFI system partition's size
Checking the EFI system partition's file system
Problems were found with the partition map which might prevent booting
Error: -69766: The partition map needs to be repaired because there's a problem with the EFI system partition's file system
Underlying error: 8: POSIX reports: Exec format error

$ sudo diskutil repairDisk disk1:

Unable to repair this whole disk: A writable disk is required (-69772)

$ sudo gpt -r show /dev/disk1:

      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  488555536      2  GPT part - 53746F72-6167-11AA-AA11-00306543ECAC
  488965176    1269536      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
  490234712          7         
  490234719         32         Sec GPT table
  490234751          1         Sec GPT header

$ diskutil cs list:

CoreStorage logical volume groups (1 found)
|
+-- Logical Volume Group xxxxxxxx-xxxx-xxxx-xxxx-22CC7A9CEE24
    =========================================================
    Name:         Macintosh HD
    Status:       Offline
    Size:         250140434432 B (250.1 GB)
    Free Space:   249788108800 B (249.8 GB)
    |
    +-< Physical Volume xxxxxxxx-xxxx-xxxx-xxxx-907CB441E882
        ----------------------------------------------------
        Index:    0
        Disk:     disk1s2
        Status:   Online
        Size:     250140434432 B (250.1 GB)
sbooth
źródło
@klanomath Dodałem dodatkowe informacje. Podejrzewam, że mógł wystąpić problem z podstawową pamięcią masową / zaszyfrowaną partycją, ponieważ nie widzę żadnych woluminów logicznych, ale próbowałem zacząć od partycji EFI. Jednak tak naprawdę dbam tylko o dane w woluminie logicznym CS.
sbooth
Niestety tylko częściowa kopia zapasowa
sbooth
Jestem gotów spróbować wszystkiego. Jeśli masz jakieś wskazówki, byłoby to mile widziane! Widziałem przewodniki dotyczące usuwania i ponownego tworzenia partycji EFI, a także kopiowania istniejącej przy użyciu, ddale nie chciałem robić nic potencjalnie destrukcyjnego.
sbooth
Czy masz zapasowy dysk flash USB / pendrive i instalator Yosemite?
klanomath
Tak, zrobiłem instalator rozruchowy USB 10.10 na dysku flash. Użyłem go, aby spróbować pomóc, ale nie dotarłem zbyt daleko.
sbooth

Odpowiedzi:

1

EFI można łatwo odzyskać. Prawdziwym problemem jest brakująca rodzina woluminów logicznych i wolumin logiczny w grupie woluminów logicznych CoreStorage. LVF jest kontenerem dla faktycznie zaszyfrowanego woluminu logicznego.

Nie ma znanego narzędzia do przywracania usuniętego LVF / LV. Po prostu dodanie LV z diskutil cs createVolume lvgUUID filesystem sizezastąpi części poprzedniego LV.

Istnieje niewielka szansa na ręczne manipulowanie nadrzędnym kontenerem LVG i odzyskanie wolumenu FileVault. Jest to przedmiotem dalszych badań / dochodzeń.

Odzyskaj EFI:

Utwórz nowy EFI na dysku zewnętrznym, a ddwynik do uszkodzonego EFI. Wystarczy użyć dowolnego EFI innego dysku systemowego - nie wiem!

  • Utwórz bootowalny instalator napędu kciuka Yosemite
  • Podłącz pendrive i zapasowy zewnętrzny dysk twardy (16 GB) lub pusty drugi pendrive (co najmniej 16 GB) do „uszkodzonego” komputera Mac.
  • Zainstaluj Yosemite na zewnętrznym dysku / napędzie USB
  • Skonfiguruj Yosemite
  • Włącz FileVault (użyj tych samych haseł / haseł jak poprzednio w uszkodzonym systemie) i jeśli zostanie wyświetlony monit o ponowne uruchomienie.
  • Utwórz kopię zapasową bieżącego EFI SSD:

    dd if=/dev/disk0s1 of=~/Desktop/EFISSD.raw bs=1m
    
  • Uruchom ponownie jeden z dysków odzyskiwania HD, naciskając cmdR
  • Uruchomiony w trybie odzyskiwania Internetu otwórz Narzędzia → Terminal w pasku menu i wpisz:, diskutil listaby uzyskać identyfikatory dysku.
  • Teraz użyj, ddaby zastąpić uszkodzony EFI nowym EFI (zakładając, że dysk zewnętrzny ma identyfikator dysku disk2 - sprawdź rozmiary różnych dysków, aby określić poprawny):

    dd if=/dev/disk2s1 of=/dev/disk0s1 bs=1m
    

Prace w toku - jest przedmiotem dalszych badań / dochodzeń

Odzyskaj usuniętą / znikniętą rodzinę woluminów logicznych FileVault / wolumin logiczny

Jedną z możliwości może być następująca procedura:

  • Uruchom system zewnętrzny
  • dd odpowiednie części dysku SSD (zaszyfrowaną część można łatwo wykryć) do pliku na oddzielnym dysku:

    dd if=/dev/disk0 of=/Volumes/ExternalDisk/encrypted.raw skip=x count=y bs=512
    

    z x: liczba pierwszych bloków na dysku, które nie są zaszyfrowane (~ 420000) oraz y: liczba zaszyfrowanych bloków

  • dd partycja Recovery HD do pliku RecoverHD.raw, ponieważ zawiera co najmniej jeden ważny klucz.
  • Ponownie zainstaluj OS X na dysku SSD, używając tych samych nazw użytkowników i haseł, co poprzednio
  • włączanie FileVault
  • Uruchom komputer na zewnętrzny dysk
  • dd plik z powrotem i zastępując rzeczywistą zawartość rodziny woluminów logicznych / woluminów logicznych:

    dd if=/Volumes/ExternalDisk/encrypted.raw of=/dev/disk0 seek=z bs=512b
    

    z: liczba pierwszych bloków na dysku, które nie są zaszyfrowane

  • dd plik RecoveryHD.raw z powrotem i zastępując rzeczywistą zawartość nowego pliku Recovery HD.

Może się to nie udać z powodu różnych kluczy, różnych soli (jeśli sole są w ogóle używane) lub z innych powodów.

klanomath
źródło
Próbowałem pierwszej części tej odpowiedzi (odzyskanie ESP) i niestety nic się nie zmieniło. Udało mi się skopiować działającą partycję EFI z napędu dyskowego na uszkodzony dysk SSD, ale verifyDisknadal pokazuje, że mapa partycji wymaga naprawy i repairDiskmówi, że nie może utworzyć partycji EFI.
sbooth
1

Miałem podobny problem z komputerem MacBook pPo A 1278. Dysk twardy, ponieważ urządzenie wewnętrzne nie uruchamia się.

Podłączony jako zewnętrzny dysk USB -> rozruch HDD. Problem rozwiązany przez wymianę wewnętrznego kabla SATA za (obecnie) 16 USD.

Instrukcje dotyczące wymiany kabla SATA można znaleźć w ifixit com (tylko).

dau-d
źródło
0

Szczerze mówiąc, wydaje mi się, że bardziej prawdopodobne jest, że problem dotyczy mediów (SSD) niż oprogramowania.

Jeśli dane są ważne, sugeruję jak najszybsze skorzystanie z profesjonalnych usług odzyskiwania danych, ponieważ problem może się pogorszyć w przypadku awarii sprzętu. (Tak, byłem świadkiem, jak Mac z dyskiem SSD przechodził od wciąż rozruchu do dysku całkowicie niewykrywanego między kilkoma kolejnymi uruchomieniami, kiedy pracowałem w jednym z centrum serwisowego)

Woluminy Core Storage są zazwyczaj dość trwałe, ale prawie nigdy nie można ich odzyskać dzięki dołączonym narzędziom na wypadek, gdyby w końcu uległy awarii (szczególnie gdy są zaszyfrowane). Nie sądzę, aby jakakolwiek kombinacja fsck / gpt / diskutil działała… ale powodzenia.

Angelos
źródło
Dziękuję za odpowiedź. Jakie znasz usługi odzyskiwania danych znane z Core Storage?
sbooth
0

Mając podobny problem. Dysk twardy Mac przestał działać w środku, ale po podłączeniu przez USB działa idealnie dobrze. Mam nawet nowy dysk twardy, ale nadal mam problem z uruchamianiem z HD wewnątrz Maca. Maszyna widzi dysk. Zainstalowałem OS X na nowym dysku twardym za pośrednictwem połączenia USB, ale kiedy włożę hd do niego, nie uruchomi się. Szalony świat, nie mam pojęcia, co jest z nim nie tak. Ale jeśli chodzi o dane, spróbuj podłączyć je przez USB, a może się okazać, że Twoje dane są bezpieczne.

Duch
źródło