TL; DR Hoe maak ik een EFI systeempartitie vanaf nul? Hoe zet ik de EFI-firmware erop nadat deze is gemaakt?
Lange versie
Ik heb een Toshiba T430 laptop. Ik heb het ontvangen met Windows 7 geïnstalleerd (maar ik denk dat het oorspronkelijk is verzonden met Windows 8). Ik installeerde Ubuntu erop, maar verwijderde enkele partities op de schijf, zodat ik uiteindelijk Windows wegvaagde en alleen Ubuntu had. Onder de verwijderde partities was de EFI Systeem partitie. Ik ontdekte dat Ubuntu nu opstart in Legacy mode (en niet UEFI). Ik probeer deze gids over het converteren van mijn Ubuntu-installatie van Legacy naar UEFI te volgen. Het probleem - aangezien er geen EFI partitie is, kan ik telkens als ik in het BIOS kies om te booten met UEFI niet booten. Dat geldt niet alleen voor de harde schijf, maar ook voor usb en DVD. Ik denk dat dit logisch is - het verwacht een EFI partitie en omdat het die niet kan vinden, kan het niet verder booten, of het nu vanaf HDD of DVD is. Dus hoe maak ik de EFI partitie opnieuw?
De gids hierboven zegt:
Een EFI-partitie maken
Als u uw schijf handmatig partitioneert in het Ubuntu-installatieprogramma, moet u ervoor zorgen dat u een EFI partitie hebt ingesteld.
Als uw schijf al een EFI-partitie bevat (bijv. als uw computer Windows8 voorgeïnstalleerd was), kan deze ook voor Ubuntu gebruikt worden. Niet doen formatteren. Het is sterk aanbevolen om slechts 1 EFI-partitie per schijf.
Een EFI partitie kan worden gemaakt via een recente versie van GParted (de Gparted versie die bij de 12.04 disk zit is OK), en moet de volgende attributen hebben de volgende attributen hebben:
Mount punt: /boot/efi (opmerking: dit koppelpunt hoeft niet te worden ingesteld als als u de handmatige partitionering gebruikt, zal het Ubuntu-installatieprogramma het automatisch)
Grootte: minimum 100Mib. 200MiB aanbevolen.
Type: FAT32
Overig: heeft een "boot" vlag nodig.
Ik had wat problemen met het maken van deze partitie:
/etc/fstab
aangezien het een live CD is en fstab er heel anders uitzag dan wat ik verwachtte in vergelijking met een normale boot. Hoe dan ook, ik wist gewoon'niet welke waarden ik moest instellen.Ik bootte opnieuw via de live DVD en koos toen voor de installatie van Ubuntu. Ik heb toen een partitie aangemaakt met de genoemde criteria - mount point, 200MB, FAT32, boot flag.
Ik blijf echter dit probleem hebben en ik veronderstel dat het komt omdat er op die partitie geen EFI firmware staat, het is gewoon een lege partitie, die geschikt is om EFI firmware te hebben.
Dus nogmaals, hoe maak ik een EFI-partitie, die de EFI-software heeft, zodat de laptop weer in UEFI-modus kan opstarten?
Oplossing Ik dank u beiden voor de antwoorden. Wat ik heb gedaan is Windows 8.1 van de grond af aan installeren door de hele schijf te formatteren en daarna (dit keer goed) Ubuntu ernaast te installeren. Dit zijn nu mijn partities:
Tijdens de Win 8 setup, zodra ik alle bestaande partities verwijderde en Windows de schijf opnieuw liet formatteren, maakte het automatisch, naast de hoofd install partitie, drie extra partities aan, namelijk 1, 2, 3. Nu, nadat ik een goede ESP had, kon ik zowel van HDD als DVD in UEFI mode booten.
Je zegt dat de ESP standaard geen info opslaat, maar ik veronderstel dat wanneer een OS installeert, het daar wat info plaatst. Dus ik denk dat mijn geval het volgende was: Ik had het gewist en hoewel ik het opnieuw aanmaakte, was het niet gevuld met enige info, omdat het aanmaken van de ESP werd gedaan nadat een OS was geïnstalleerd. Ik verloor de Ubuntu installatie (geen probleem, het was toch een verse installatie), maar ik denk dat ik, om het te redden, het advies van grawity'had moeten opvolgen. Ik had er echter geen tijd voor, maar gelukkig is alles nu in orde.
Ten eerste, u stelt het koppelpunt niet in GParted in; dat wordt handmatig (en tijdelijk) gedaan via het mount
commando of permanent door /etc/fstab
te bewerken. Dus, uw bezorgdheid over dit probleem is misplaatst.
Ten tweede, een EFI Systeem Partitie (ESP) is gewoon een FAT partitie met een bepaalde type code (namelijk, C12A7328-F81F-11D2-BA4B-00A0C93EC93B op GPT schijven) ingesteld. Merk op dat het koppelpunt in /etc/fstab
geen deel uitmaakt van de definitie van de ESP's; het's gewoontegetrouw (maar niet verplicht) in Linux om toegang te krijgen tot de ESP door deze te koppelen aan /boot/efi
, meestal via een /etc/fstab
entry. Hoe je de typecode instelt, verschilt van programma tot programma:
gdisk
, stel je de typecode in op EF00. (gdisk
gebruikt twee-byte typecodes die zich uitbreiden naar de echte typecodes op de schijf; "EF00" is gewoon een geheugensteuntje voor "C12A7328-F81F-11D2-BA4B-00A0C93EC93B").parted
, stelt u de "boot flag." Merk echter op, dat dit alleen werkt op GPT schijven; u kunt de ESP type code niet instellen op MBR schijven met deze programma's. (Dit is normaal gesproken niet zo erg, omdat EFI-gebaseerde computers meestal opstarten vanaf GPT-schijven)./etc/fstab
overeenkomstig instellen.fdisk
, stelt u het partitietype in door het nummer (1 voor "EFI System" op GPT schijven of 0xEF op MBR schijven) of door de volledige typecode in te voeren op GPT schijven.Ten derde bevat de ESP geen firmware -- firmware is per definitie opgeslagen in chips op het moederbord. Uw poging om de EFI firmware op de ESP te installeren is dus een wilde ganzenjacht. (Er zijn twee uitzonderingen op deze regel. Ten eerste kunt u een firmwarebestand op de ESP opslaan om de firmware op uw computer bij te werken. Dit is echter slechts een tijdelijke opslagplaats. Ten tweede, de DUET of Clover boot loader, de EFI wordt geladen als een gewoon programma, meestal vanaf de ESP. Deze tools zijn echter BIOS boot loaders, die het mogelijk maken om BIOS-only computers te booten alsof het EFI machines zijn; ze worden niet normaal gebruikt op computers met EFI firmware, waarvan u beweert dat uw computer die heeft. Technisch gezien zijn DUET en Clover geen firmware; het zijn BIOS boot loaders die hetzelfde doen als EFI).
Tenslotte kan ik een aantal mogelijke oorzaken bedenken voor je probleem, maar zonder verdere informatie zou ik een half boek moeten schrijven om ze allemaal te behandelen. Ik raad u aan om het Boot Info Script op de computer uit te voeren. Dit zal een bestand produceren genaamd RESULTS.txt
. Post het naar een pastebin site en post terug met de URL naar uw document. Dat zal harde gegevens opleveren over uw configuratie, wat het aantal mogelijke oorzaken van uw probleem aanzienlijk zal verminderen.
De EFI-partitie bewaart geen firmware (die is opgeslagen in een chip op het moederbord); het bewaart de boot loaders voor geïnstalleerde besturingssystemen. Het is in feite het EFI-alternatief om de bootloader in de 0e sector van uw schijf te plaatsen, zoals het geval was met BIOS PC's.
Dit betekent dat als je eenmaal zo'n partitie hebt, deze automatisch gevuld zou moeten worden wanneer je het besturingssysteem installeert. (Waarschijnlijk moet de install disc zelf ook in EFI mode worden opgestart, anders doet hij geen moeite om UEFI boot op te zetten... in feite kunnen bepaalde delen van de setup niet eens vanuit BIOS mode worden gedaan).
Als je Ubuntu al geïnstalleerd hebt, moet je:
Installeer de UEFI versie van GRUB; ik denk dat het in het grub-efi-amd64-signed
pakket zit.
grub-install --target=x86_64-efi-signed
(Voor de niet-ondertekende grub-efi-amd64
versie, is het x86_64-efi
).
Zorg ervoor dat GRUB zichzelf heeft geïnstalleerd als grub-efi-amd64.efi
in de EFI systeempartitie. (Ik gebruik hier de EFI pad syntax; als je de partitie mount op /boot
onder Linux, zou het /boot/EFI/Boot/bootx64.efi
zijn).
Als dat niet het geval is, kopieer dan grubx64.efi
handmatig naar die locatie.
Dit is nodig omdat grub-install
zichzelf niet kan toevoegen aan het EFI boot menu tenzij het systeem al in EFI mode is opgestart. (De "EFI variabelen" zijn onmogelijk te benaderen in BIOS moed.) Daarom is de enige manier om GRUB op te starten is door het op de "fallback boot loader" locatie te zetten.
Herstart. Probeer een soort EFI mode te selecteren in je firmware's boot menu (EFI firmwares hebben een eigen boot menu, zelfs voor GRUB).
Controleer of dmesg | grep "efi:"
iets laat zien, om te bevestigen dat je'in EFI modus bent.
Maak twee bestanden met kladblok en bewaar ze op uw USB Windows installatiestation.
Opslaan als: 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
Maak een ander tekstbestand met Kladblok:
Opslaan als: 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.
Als u MBR gebruikt zal het commando zijn, convert mbr.
Om de grootte van de Windows partitie te krijgen, vermenigvuldig je HD grootte maal 1024, een 100 gig harde schijf maal 1024 is gelijk aan 102400 min 210 (efi grootte) min 16 (msr grootte) min 460 (gereserveerde grootte) is gelijk aan de grootte die je in de Windows partitie grootte zal zetten. (xxxxxx)
Je kunt de partitiegrootte wijzigen vanaf de terminal (Opdrachtprompt) cd /d D: > notepad CreatePartitions-UEFI.txt
Terwijl u in de USB drive bent, open met notepad diskpart-UEFI.txt en laat open of schrijf het commando op zodat u geen fout maakt.
Zodra u de grootte van de partities naar wens hebt aangepast, sluit u het, dan cd /d x:/Sources en voer vervolgens diskpart /s D:CreatePartitions-URFI.txt uit.
list volume als laatste commando laat je de partities zien, als het goed is,
exit > zet computer uit > herstart > installeer