Jak utworzyć partycję systemową EFI?

34

TL; DR Jak utworzyć partycję systemową EFI od zera? Jak umieścić na nim oprogramowanie układowe EFI?

Długa wersja

Mam laptopa Toshiba T430. Otrzymałem go z zainstalowanym systemem Windows 7 (ale myślę, że pierwotnie był on dostarczany z systemem Windows 8). Zainstalowałem na nim Ubuntu, ale usunąłem niektóre partycje na dysku, więc ostatecznie wymazałem system Windows i miałem tylko Ubuntu. Wśród usuniętych partycji znalazła się partycja systemowa EFI. Odkryłem, że Ubuntu uruchamia się teraz w trybie Legacy (a nie UEFI). Staram się postępować zgodnie z tym przewodnikiem dotyczącym konwertowania mojej instalacji Ubuntu z Legacy na UEFI. Problem - ponieważ nie ma partycji EFI, ilekroć wybieram z BIOSu do rozruchu za pomocą UEFI, nie mogę uruchomić. Dotyczy to nie tylko dysku twardego, ale także USB i DVD. Myślę, że jest to logiczne - oczekuje partycji EFI, a ponieważ nie może jej znaleźć, nie może kontynuować rozruchu, czy to z dysku twardego czy DVD. Jak więc odtworzyć partycję EFI?

Powyższy przewodnik mówi:

Tworzenie partycji EFI

Jeśli ręcznie partycjonujesz dysk w instalatorze Ubuntu, musisz upewnić się, że masz skonfigurowaną partycję EFI.

  1. Jeśli Twój dysk zawiera już partycję EFI (np. Jeśli na komputerze jest już zainstalowany system Windows8), można go również użyć w systemie Ubuntu. Nie formatuj go. Zdecydowanie zaleca się posiadanie tylko 1 partycji EFI na dysk.

  2. Partycję EFI można utworzyć za pomocą najnowszej wersji GParted (wersja Gparted zawarta na dysku 12.04 jest w porządku) i musi mieć następujące atrybuty:

    1. Punkt montowania: / boot / efi (uwaga: nie trzeba ustawiać tego punktu montowania podczas korzystania z partycjonowania ręcznego, instalator Ubuntu wykryje go automatycznie)

    2. Rozmiar: minimum 100 Mb. Zalecane 200 MB.

    3. Wpisz: FAT32

    4. Inne: wymaga flagi „rozruchu”.

Miałem problem z utworzeniem tej partycji:

  • Uruchamiam z Live Ubuntu DVD, otwieram GParted, tworzę partycję 200 MB i formatuję na FAT32.
  • W GParted nie mogę ustawić punktu montowania, a zatem nie mogę ustawić flagi rozruchowej.
  • Nie ustawiłem punktu montowania, /etc/fstabponieważ jest to płyta CD na żywo, a fstab wyglądał zupełnie inaczej niż się spodziewałem w porównaniu do normalnego rozruchu. W każdym razie po prostu nie wiedziałem, jakie wartości ustawić.

Uruchomiłem ponownie za pośrednictwem Live DVD, a następnie zdecydowałem się zainstalować Ubuntu. Następnie utworzyłem partycję według wymienionych kryteriów - punkt instalacji, 200 MB, FAT32, flaga rozruchu.

Jednak nadal mam ten problem i przypuszczam, że jest tak, ponieważ na tej partycji nie ma oprogramowania układowego EFI, jest to po prostu pusta partycja, która jest odpowiednia dla oprogramowania układowego EFI.

Więc ponownie, jak utworzyć partycję EFI, która ma oprogramowanie EFI, aby laptop mógł ponownie uruchomić się w trybie UEFI?

ROZWIĄZANIE Dziękuję obojgu za odpowiedzi. To, co zrobiłem, to zainstalować system Windows 8.1 od podstaw, formatując cały dysk, a następnie instalując (tym razem poprawnie) Ubuntu obok niego. To są teraz moje partycje:

Partycje dysku

Podczas instalacji Win 8, gdy tylko usunąłem wszystkie istniejące partycje i pozwoliłem systemowi Windows sformatować dysk, automatycznie utworzyłem, oprócz głównej partycji instalacyjnej, trzy dodatkowe partycje, a mianowicie 1, 2, 3. Teraz, po tym, jak miałem odpowiedni ESP , Mogłem uruchomić zarówno z dysku twardego, jak i DVD w trybie UEFI.

Mówisz, że ESP domyślnie nie przechowuje żadnych informacji, ale myślę, że kiedy instaluje się system operacyjny, umieszcza tam jakieś informacje. Wydaje mi się, że mój przypadek był następujący: usunąłem go i mimo tego, że go odtworzyłem, nie był wypełniony żadnymi informacjami, ponieważ tworzenie ESP odbyło się po zainstalowaniu systemu operacyjnego. Straciłem instalację Ubuntu (nic wielkiego, to i tak była nowa instalacja), ale sądzę, że aby ją zapisać, powinienem był postępować zgodnie z radami grawity . Nie miałem jednak czasu, ale na szczęście wszystko jest już w porządku.

Alex Popov
źródło
1
ESP przechowuje programy ładujące. Tak więc, jeśli masz już instalację i usuniesz ESP, stracisz możliwość uruchomienia komputera. Tego rodzaju problem jest właściwie dość prosty do rozwiązania - JEŚLI wiesz jak!
Rod Smith,
Cóż, o to właśnie chodziło moje pytanie :)
Alex Popov,

Odpowiedzi:

37

Po pierwsze, nie ustawiasz punktu montowania w GParted; odbywa się to ręcznie (i tymczasowo) za pomocą mountpolecenia lub na stałe przez edycję /etc/fstab. W związku z tym Twoje obawy dotyczące tego problemu są niewłaściwe.

Po drugie, partycja systemowa EFI (ESP) to po prostu partycja FAT z określonym kodem typu (mianowicie C12A7328-F81F-11D2-BA4B-00A0C93EC93B na dyskach GPT). Zauważ, że punkt montowania w /etc/fstabnie jest częścią definicji ESP; w Linuksie jest to po prostu konwencjonalne (ale nie wymagane), aby uzyskać dostęp do ESP poprzez zamontowanie go /boot/efi, zazwyczaj poprzez /etc/fstabwpis. Sposób ustawiania kodu typu różni się w zależności od programu:

  • W gdiskustaw kod typu na EF00. ( gdiskwykorzystuje dwubajtowe kody typu, które rozszerzają się na rzeczywiste kody typu na dysku; „EF00” jest po prostu mnemonikiem dla „C12A7328-F81F-11D2-BA4B-00A0C93EC93B”.)
  • W GParted lub partedustawiasz „flagę rozruchową”. Należy jednak pamiętać, że działa to tylko na dyskach GPT; w tych programach nie można ustawić kodu typu ESP na dyskach MBR. (Zwykle nie jest to wielka sprawa, ponieważ komputery oparte na EFI zwykle uruchamiają się z dysków GPT.)
  • W instalatorze Ubuntu określasz partycję jako „partycję rozruchową EFI”. Następnie ustawia kod typu i/etc/fstab odpowiednio skonfiguruje .
  • W najnowszych wersjach systemu Linux fdisktyp partycji ustawia się według numeru (1 dla „Systemu EFI” na dyskach GPT lub 0xEF na dyskach MBR) lub poprzez wpisanie pełnego kodu typu na dyskach GPT.

Po trzecie, ESP nie przechowuje oprogramowania układowego - oprogramowanie układowe jest z definicji przechowywane w układach scalonych na płycie głównej. Tak więc, twój wysiłek instalacji oprogramowania EFI na ESP jest szalony. (Istnieją dwa wyjątki od tej reguły. Po pierwsze, możesz zapisać plik oprogramowania układowego w ESP, aby zaktualizować oprogramowanie układowe na komputerze. Jest to jednak tylko tymczasowy obszar przechowywania. Po drugie, moduł ładujący DUET lub Clover , EFI jest załadowany jako zwykły program, zazwyczaj z ESP narzędzia te są ładujące BIOS jednak, że tylko włączyć BIOS komputerów do bagażnika tak, jakby były maszyny EFI;. oni niezwykle używane na komputerach z oprogramowaniem układowym EFI, które, jak twierdzisz, ma Twój komputer. Technicznie, ani DUET, ani Clover nie są oprogramowaniem układowym; to programy ładujące BIOS, które wykonują tę samą pracę co EFI.)

Wreszcie mogę wymyślić kilka możliwych przyczyn twojego problemu, ale bez dalszych informacji musiałbym napisać pół książki, aby opisać je wszystkie. Zalecam uruchomienie skryptu informacyjnego rozruchu na komputerze. Spowoduje to utworzenie pliku o nazwie RESULTS.txt. Opublikuj go na stronie pastebin i wyślij ponownie z adresem URL do dokumentu. To da twarde dane na temat twojej konfiguracji, co znacznie zmniejszy zakres możliwych przyczyn twojego problemu.

Rod Smith
źródło
Jak użyć, gdiskaby „ustawić kod typu na EF00”?
B, 7
@BSeven t, 1, ef00.
hobbs
11

Partycja EFI nie przechowuje oprogramowania układowego (które jest przechowywane w układzie scalonym na płycie głównej); utrzymuje moduły ładujące dla zainstalowanych systemów operacyjnych. Jest to w zasadzie alternatywa EFI polegająca na umieszczeniu modułu ładującego w zerowym sektorze dysku, tak jak w przypadku komputerów z systemem BIOS.

Oznacza to, że po utworzeniu takiej partycji powinna ona zostać automatycznie zapełniona podczas instalacji systemu operacyjnego. (Jest jednak całkiem prawdopodobne, że sam dysk instalacyjny musi zostać uruchomiony w trybie EFI, w przeciwnym razie nie będzie przeszkadzał w konfiguracji rozruchu UEFI ... w rzeczywistości niektórych części instalacji nie można nawet wykonać w trybie BIOS).

Jeśli masz już zainstalowany system Ubuntu, musisz:

  1. Zainstaluj wersję GRUB UEFI; Myślę, że jest w grub-efi-amd64-signedpakiecie.

    grub-install --target=x86_64-efi-signed
    

    (W przypadku grub-efi-amd64wersji bez znaku x86_64-efi).

  2. Upewnij się, że GRUB zainstalował się tak, jak \EFI\Boot\bootx64.efina partycji systemowej EFI. (Korzystam ze składni ścieżki EFI tutaj; jeśli zainstalujesz partycję w /bootsystemie Linux, byłoby to możliwe /boot/EFI/Boot/bootx64.efi).

    Jeśli nie, skopiuj grubx64.efiręcznie do tej lokalizacji.

    Jest to konieczne, ponieważ grub-installnie można dodać się do menu rozruchu EFI, chyba że system uruchomił się już w trybie EFI. (Dostęp do „zmiennych EFI” jest niemożliwy w moor BIOS). Dlatego jedynym sposobem na uruchomienie GRUB-a jest umieszczenie go w „awaryjnym module ładującym”.

  3. Restart. Spróbuj wybrać jakiś tryb EFI w menu rozruchowym oprogramowania układowego (oprogramowanie układowe EFI ma własne menu rozruchowe, nawet przed GRUB).

  4. Sprawdź, czy dmesg | grep "efi:"coś pokazuje, aby potwierdzić, że jesteś w trybie EFI.

grawitacja
źródło
1
Nie chcę wychodzić ze starego wątku, ale próbuję znaleźć rozwiązanie mojego problemu i natknąłem się na ten wątek. Próbuję zaktualizować oprogramowanie układowe BIOS na moim komputerze Dell, a Dell udostępnia go jako plik EXE w formacie Windows lub jakiś plik, który należy umieścić na partycji w formacie EFI. tzn. jestem proszony o „Pobierz plik na partycję EFI na nośniku wymiennym”. Nie wiem, czy OP miał to na myśli, ale chciałem tylko zwrócić uwagę na to, co powiedziałeś w pierwszym akapicie.
Ray
@Ray: Pobierasz przyszłe oprogramowanie na tę partycję. Po włączeniu komputera nadal nie jest używane jako rzeczywiste oprogramowanie układowe; służy jedynie jako plik danych dla programu aktualizującego oprogramowanie, który będzie zapisywać / flashować go na płycie głównej. (Pamiętasz, kiedy takie instrukcje mówiły „pobierz plik na rozruchową dyskietkę MS-DOS” czy coś w tym rodzaju? Cóż, ten dysk również nie posiadał twojego głównego BIOS-u. Po prostu zawierał program do flashowania i dane, które powinien flashować , To samo tutaj.)
grawity
1
Tak, wiem. Wydaje mi się, że mówię tylko, że OP niekoniecznie było błędne, ale po prostu nieprecyzyjne. Podobnie masz rację, że oprogramowanie układowe jest przechowywane na chipie, a teraz jestem proszony o przechowywanie przyszłego oprogramowania układowego na partycji EFI. Ale ktoś mógłby powiedzieć, że oprogramowanie układowe jest przechowywane w EFI, jeśli nieostrożnie podchodzi do ich opisu. (tzn. nie do końca źle, ale w połowie źle)
Ray
2

Utwórz dwa pliki za pomocą notatnika i zapisz je na dysku instalacyjnym USB systemu Windows.
SaveAs: CreatePartitions-UEFI.txt

select disk 0  
clean  
convert gpt  
rem == 1. System Partition  =====================  
create partition efi size=210  
format fs=fat32 quick label=”SYSTEM”  
active  
rem == 2. Microsoft Reserved (MSR) partition  ======  
create partition msr size=16  
rem == 3.  Windows partition  ===================  
create partition primary size=xxxxxx   
format fs=ntfs quick label=”Windows”   
assign letter=”W”  
rem == 4. Recovery tools partition  ================  
create partition primary size=460  
format fs=ntfs quick label=”Recovery”  
assign letter=:R”  
list volume

Utwórz inny plik tekstowy za pomocą Notatnika:
SaveAs: diskpart-UEFI.txt

diskpart /s D:\CreatePartitions-UEFI.txt   

REM where D:/ is the usb drive. This command runs the text file to install the partitions.

Jeśli używasz MBR, polecenie będzie: przekonwertować mbr.

Aby uzyskać rozmiar partycji Windows, pomnóż rozmiar HD razy 1024, dysk twardy 100 gig razy 1024 równa się 102400 minus 210 (rozmiar efi) minus 16 (rozmiar msr) minus 460 (rozmiar zarezerwowany) jest równy rozmiarowi, który umieścisz rozmiar partycji Windows. (xxxxxx)

Możesz zmienić rozmiar partycji z terminala (Wiersz polecenia) cd / d D:> notatnik CreatePartitions-UEFI.txt

Gdy jesteś na dysku USB otwórz za pomocą notatnika diskpart-UEFI.txt i pozostaw otwarte lub zapisz polecenie, aby nie popełnić błędu. Po zmianie rozmiaru partycji według własnych preferencji zamknij go, a następnie cd / dx: / Sources, a następnie uruchom diskpart / s D: \ CreatePartitions-URFI.txt.
wyświetl wolumin jako ostatnie polecenie pokazujące partycje, jeśli jesteś szczęśliwy, wyjdź> wyłącz komputer> uruchom ponownie> zainstaluj

Dave Vian
źródło
-2

użyj gnome-disks, pakiet „gnome-disk-utility”, jest to bardzo przydatne.

dotbit
źródło
2
Witamy w Super User! Nie jestem DV-em, ale chociaż odpowiedzi w jednej linii mogą czasem zadziałać, ale jeśli edytujesz swoją odpowiedź w celu dołączenia wyjaśnienia, działałoby to lepiej :) Jak utworzyliby partycję systemową EFI w narzędziu gnome-disk-disk.
bertieb