Come creare una partizione di sistema EFI?


34

TL; DR Come si crea una partizione di sistema EFI da zero? Come inserisco il firmware EFI una volta creato?

Versione lunga

Ho un portatile Toshiba T430. L'ho ricevuto con Windows 7 installato (ma penso che inizialmente sia stato spedito con Windows 8). Ho installato Ubuntu su di esso, ma ho eliminato alcune partizioni sul disco in modo da finire per cancellare Windows e avere solo Ubuntu. Tra le partizioni eliminate c'era la partizione di sistema EFI. Ho scoperto che Ubuntu ora si avvia in modalità Legacy (e non UEFI). Sto cercando di seguire questa guida sulla conversione della mia installazione di Ubuntu da Legacy a UEFI. Il problema - poiché non esiste una partizione EFI ogni volta che scelgo dal BIOS per l'avvio tramite UEFI non riesco ad avviarlo. Ciò vale non solo per il disco rigido, ma anche per USB e DVD. Penso che sia logico: si aspetta una partizione EFI e poiché non riesce a trovarla, non può continuare ad avviarsi ulteriormente, sia da HDD che da DVD. Quindi, come posso ricreare la partizione EFI?

La guida sopra dice:

Creazione di una partizione EFI

Se stai partizionando manualmente il tuo disco nel programma di installazione di Ubuntu, devi assicurarti di aver impostato una partizione EFI.

  1. Se il tuo disco contiene già una partizione EFI (ad esempio se sul tuo computer era preinstallato Windows 8), può essere utilizzato anche per Ubuntu. Non formattarlo. Si consiglia vivamente di avere solo 1 partizione EFI per disco.

  2. Una partizione EFI può essere creata tramite una versione recente di GParted (la versione Gparted inclusa nel disco 12.04 è OK) e deve avere i seguenti attributi:

    1. Punto di montaggio: / boot / efi (nota: non è necessario impostare questo punto di montaggio quando si utilizza il partizionamento manuale, il programma di installazione di Ubuntu lo rileverà automaticamente)

    2. Dimensioni: minimo 100 Mb. 200 MiB consigliati.

    3. Tipo: FAT32

    4. Altro: necessita di un flag "boot".

Ho avuto qualche problema a creare questa partizione:

  • Avvio da un DVD di Ubuntu live, apro GParted, creo una partizione da 200 MB e la formatta su FAT32.
  • In GParted non posso impostare il punto di montaggio e quindi non posso impostare il bootflag.
  • Non ho impostato il mount point in /etc/fstabquanto è un CD live e fstab ha un aspetto molto diverso da quello che mi aspettavo rispetto a un avvio normale. Ad ogni modo, non sapevo quali valori impostare.

Ho avviato nuovamente tramite il DVD live e quindi ho scelto di installare Ubuntu. Ho quindi creato una partizione con i criteri citati: mount point, 200 MB, FAT32, flag di avvio.

Tuttavia, continuo ad avere questo problema e suppongo sia perché su quella partizione non c'è firmware EFI, è solo una partizione vuota, che è adatta ad avere firmware EFI.

Quindi, come faccio a creare una partizione EFI, che ha il software EFI, in modo che il laptop possa riavviarsi in modalità UEFI?

SOLUZIONE Grazie ad entrambi per le risposte. Quello che ho fatto è stato installare Windows 8.1 da zero formattando l'intero disco e quindi installando (questa volta correttamente) Ubuntu accanto ad esso. Queste sono le mie partizioni ora:

Partizioni del disco

Durante l'installazione di Win 8, non appena ho eliminato tutte le partizioni esistenti e ho lasciato che Windows riformattasse il disco, ha creato automaticamente, oltre alla partizione di installazione principale, tre partizioni aggiuntive, vale a dire 1, 2, 3. Ora, dopo aver avuto un ESP corretto , Potrei avviare sia da HDD o DVD in modalità UEFI.

Dici che l'ESP non memorizza alcuna informazione per impostazione predefinita, ma suppongo che quando si installa un sistema operativo, inserisce alcune informazioni lì. Quindi immagino che il mio caso sia stato il seguente: l'ho cancellato e anche se l'ho ricreato, non era pieno di informazioni, poiché la creazione dell'ESP è stata eseguita dopo l'installazione di un sistema operativo. Ho perso l'installazione di Ubuntu (non è un grosso problema, è stata comunque una nuova installazione), ma suppongo che per salvarlo avrei dovuto seguire il consiglio di Grawity . Non ho avuto tempo, però, ma per fortuna ora va tutto bene.


1
L'ESP memorizza i boot loader. Pertanto, se hai un'installazione esistente ed elimini l'ESP, perderai la possibilità di avviare il computer. Questo tipo di problema è in realtà abbastanza semplice da risolvere - SE sai come!
Rod Smith,

Beh, era tutto ciò che riguardava la mia domanda :)
Alex Popov,

Risposte:


37

Innanzitutto, non impostare il punto di montaggio in GParted; che viene eseguito manualmente (e temporaneamente) tramite il mountcomando o in modo permanente mediante modifica /etc/fstab. Pertanto, la tua preoccupazione per questo problema è fuori luogo.

In secondo luogo, una partizione di sistema EFI (ESP) è semplicemente una partizione FAT con un particolare codice di tipo (ovvero C12A7328-F81F-11D2-BA4B-00A0C93EC93B su dischi GPT). Si noti che il mount point in /etc/fstabnon fa parte della definizione dell'ESP; è solo convenzionale (ma non obbligatorio) in Linux accedere all'ESP montandolo /boot/efi, in genere tramite una /etc/fstabvoce. La modalità di impostazione del codice del tipo varia da un programma all'altro:

  • In gdisk, si imposta il codice del tipo su EF00. ( gdiskutilizza codici di tipo a due byte che si espandono fino ai codici di tipo reale sul disco; "EF00" è solo un mnemonico per "C12A7328-F81F-11D2-BA4B-00A0C93EC93B".)
  • In GParted o parted, si imposta il "flag di avvio". Si noti, tuttavia, che funziona solo su dischi GPT; non è possibile impostare il codice del tipo ESP sui dischi MBR con questi programmi. (Questo non è normalmente un grosso problema, dal momento che i computer basati su EFI di solito si avviano da dischi GPT.)
  • Nel programma di installazione di Ubuntu, la partizione viene identificata come "partizione di avvio EFI". Quindi imposta il codice del tipo e verrà impostato in modo /etc/fstabappropriato.
  • Nelle versioni recenti di Linux fdisk, imposta il tipo di partizione in base al suo numero (1 per "Sistema EFI" sui dischi GPT o 0xEF sui dischi MBR) o inserendo il codice di tipo completo sui dischi GPT.

In terzo luogo, l'ESP non contiene firmware: il firmware è, per definizione, memorizzato in chip sulla scheda madre. Pertanto, il tuo sforzo di installare il firmware EFI su ESP è un inseguimento selvaggio. (Esistono due eccezioni a questa regola. In primo luogo, è possibile memorizzare un file del firmware sull'ESP per aggiornare il firmware sul computer. Tuttavia, questa è solo un'area di attesa temporanea. In secondo luogo, il boot loader DUET o Clover , il EFI viene caricato come un programma regolare, tipicamente dal ESP Questi strumenti sono boot loader BIOS, però, che consentono BIOS solo i computer di avvio come se fossero macchine EFI,. sono nonnormalmente utilizzato su computer con firmware EFI, di cui si afferma il computer. Tecnicamente, né DUET né Clover sono firmware; sono caricatori di avvio del BIOS che svolgono lo stesso lavoro di EFI.)

Infine, posso pensare a una serie di possibili cause per il tuo problema, ma senza ulteriori informazioni, avrei bisogno di scrivere mezzo libro per coprirle tutte. Ti consiglio di eseguire lo script delle informazioni di avvio sul computer. Questo produrrà un file chiamato RESULTS.txt. Pubblicalo su un sito pastebin e invialo nuovamente con l'URL al tuo documento. Ciò fornirà dati concreti sulla tua configurazione, che ridurrà notevolmente la gamma di possibili cause del tuo problema.


Come utilizzare gdiskper "impostare il codice del tipo su EF00"?
B Seven

@BSeven t, 1, ef00.
Hobbs

11

La partizione EFI non mantiene il firmware (che è archiviato in un chip sulla scheda madre); mantiene i boot loader per i sistemi operativi installati. È fondamentalmente l'alternativa EFI di mettere il boot loader nel settimo settore del disco, come nel caso dei PC BIOS.

Ciò significa che una volta che hai una tale partizione, dovrebbe essere riempita automaticamente quando installi il sistema operativo. (Molto probabilmente anche se il disco di installazione stesso deve essere avviato anche in modalità EFI, altrimenti non si preoccuperà di configurare l'avvio UEFI ... in effetti, alcune parti dell'installazione non possono nemmeno essere eseguite dalla modalità BIOS.)

Se hai già installato Ubuntu, dovrai:

  1. Installa la versione UEFI di GRUB; Penso che sia nel grub-efi-amd64-signedpacchetto.

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

    (Per la grub-efi-amd64versione non firmata , lo è x86_64-efi.)

  2. Assicurarsi che GRUB si sia installato come \EFI\Boot\bootx64.efinella partizione di sistema EFI. (Sto usando la sintassi del percorso EFI qui; se monti la partizione /bootsu Linux, sarebbe /boot/EFI/Boot/bootx64.efi.)

    In caso contrario, copia grubx64.efimanualmente in quella posizione.

    Ciò è necessario perché grub-installnon è possibile aggiungersi al menu di avvio EFI a meno che il sistema non sia già stato avviato in modalità EFI. (Le "variabili EFI" sono impossibili da accedere al BIOS moed.) Pertanto l'unico modo per avviare GRUB è metterlo nella posizione "fallback boot loader".

  3. Reboot. Prova a selezionare un tipo di modalità EFI nel menu di avvio del firmware (i firmware EFI dispongono di un menu di avvio proprio, anche prima di GRUB).

  4. Controlla se dmesg | grep "efi:"mostra qualcosa, per confermare che sei in modalità EFI.


1
Non intendo far apparire un vecchio thread, ma sto cercando di trovare una soluzione al mio problema e mi sono imbattuto in questo thread. Sto cercando di aggiornare il firmware del BIOS sul mio computer Dell e Dell lo fornisce come EXE in formato Windows o come file da inserire in una partizione formattata EFI. ad esempio, mi viene chiesto di "Scaricare il file nella partizione EFI su un dispositivo multimediale rimovibile". Non so se l'OP intendesse questo, ma volevo solo sottolineare ciò che hai detto nel tuo primo paragrafo.
Ray

@Ray: stai scaricando il firmware futuro in questa partizione. Non viene ancora utilizzato come firmware effettivo quando si accende il computer; viene semplicemente utilizzato come file di dati per il programma "Firmware Updater" che lo scriverà / eseguirà il flashing nella scheda madre. (Ricordi quando tali istruzioni dicevano "scarica il file su un floppy disk avviabile MS-DOS" o qualcosa del genere? Beh, quel disco non conteneva nemmeno il tuo BIOS principale. Conteneva solo il programma di reflashing e i dati che dovrebbe lampeggiare Lo stesso qui.)
Grawity

1
Si, lo so. Immagino che sto solo dicendo che l'OP potrebbe non essere stato necessariamente sbagliato, ma solo impreciso. Allo stesso modo, hai ragione sul fatto che il firmware è archiviato sul chip e ora mi viene chiesto di archiviare un firmware futuro sulla partizione EFI. Ma qualcuno potrebbe dire che il firmware è archiviato in EFI se sono incuranti della loro descrizione. (cioè, non completamente sbagliato ma mezzo sbagliato)
Ray

2

Crea due file con il blocco note e salvali sull'unità di installazione di Windows USB.
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

Creare un altro file di testo con Blocco note:
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.

Se stai usando MBR il comando sarà, converti mbr.

Per ottenere la dimensione della partizione di Windows, moltiplica la tua dimensione HD per 1024, un disco rigido da 100 gig volte 1024 equivale a 102400 meno 210 (dimensione efi) meno 16 (dimensione ms) meno 460 (dimensione riservata) è uguale alla dimensione che inserirai la dimensione della partizione di Windows. (Xxxxxx)

È possibile modificare le dimensioni delle partizioni dal terminale (Prompt dei comandi) cd / d D:> notepad CreatePartitions-UEFI.txt

Mentre sei nell'unità USB, apri il blocco note diskpart-UEFI.txt e lascia aperto o scrivi il comando in modo da non commettere errori. Dopo aver modificato le dimensioni delle partizioni a proprio piacimento, chiuderlo, quindi cd / dx: / Sources quindi eseguire la / le parte / i del disco D: \ CreatePartitions-URFI.txt.
elenca il volume come ultimo comando mostra le partizioni, se felice, esci> spegni il computer> riavvia> installa


-2

usa gnome-disk, pacchetto "gnome-disk-utility", è molto utile.


2
Benvenuto in Super User! Non sono il DV-er, ma mentre a volte le risposte di una riga possono funzionare, ma se modifichi la tua risposta per includere una spiegazione funzionerebbe meglio :) Come potrebbero creare una partizione di sistema EFI in gnome-disk-utility.
bertieb,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.