Installare Debian su PC con firmware UEFI: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
m
→‎Supporti di installazione: stretch live supporta UEFI
mNessun oggetto della modifica
m (→‎Supporti di installazione: stretch live supporta UEFI)
(9 versioni intermedie di 4 utenti non mostrate)
Riga 2: Riga 2:
|precedente=Installare Debian da hard disk
|precedente=Installare Debian da hard disk
|successivo=Squeeze, installer di default}}
|successivo=Squeeze, installer di default}}
{{Versioni compatibili|Jessie|Testing_v9|Unstable_v9}}
{{Versioni compatibili|Jessie|Testing_2015|Unstable_2015}}
 


== BIOS e UEFI ==
== BIOS e UEFI ==
Riga 10: Riga 9:
Il progetto UEFI invece nasce all'inizio di questo secolo appunto per sopperire ai limiti del BIOS e per regolamentare i firmware per PC.<br>
Il progetto UEFI invece nasce all'inizio di questo secolo appunto per sopperire ai limiti del BIOS e per regolamentare i firmware per PC.<br>
Da notare che nelle opzioni di molti PC con firmware UEFI è possibile attivare il CSM ([http://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#Compatibility_Support_Module Compatibility Support Module]), che emula un ambiente BIOS per poter utilizzare vecchi sistemi operativi e hardware non compatibili con UEFI. In alcune macchine può trovarsi sotto altri nomi, come ad esempio ''Legacy mode''.
Da notare che nelle opzioni di molti PC con firmware UEFI è possibile attivare il CSM ([http://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#Compatibility_Support_Module Compatibility Support Module]), che emula un ambiente BIOS per poter utilizzare vecchi sistemi operativi e hardware non compatibili con UEFI. In alcune macchine può trovarsi sotto altri nomi, come ad esempio ''Legacy mode''.
{{Box|Nota|La procedura descritta in questa guida è stata ottenuta sperimentando su due schede madri, precisamente la MSI H81M-E34 e la ASUS H81M-PLUS, che sembrano applicare correttamente le [http://www.uefi.org/specsandtesttools specifiche UEFI]. Purtroppo sul mercato esistono delle macchine con implementazioni di firmware UEFI non completamente aderenti alle specifiche e/o contenenti bug, e si potrebbero trovare delle difficoltà nell'installazione. Questa guida cercherà di considerare tutti questi casi, ma si ricorda anche che si può sempre provare a chiedere aiuto [http://forum.debianizzati.org/ nel nostro forum].}}
{{Box|Nota|La procedura descritta in questa guida è stata ottenuta sperimentando su due schede madri, precisamente la MSI H81M-E34 e la ASUS H81M-PLUS, che sembrano applicare correttamente le [http://www.uefi.org/specsandtesttools specifiche UEFI]. Purtroppo sul mercato esistono delle macchine con implementazioni di firmware UEFI non completamente aderenti alle specifiche e/o contenenti bug (specialmente notebook e hardware "vecchio" che usa le prime revisioni UEFI), e si potrebbero trovare delle difficoltà nell'installazione (es. un notebook Asus che leggeva bootloader EFI solo a 64bit). Questa guida cercherà di considerare tutti questi casi, ma si ricorda anche che si può sempre provare a chiedere aiuto [http://forum.debianizzati.org/ nel nostro forum].}}


=== MBR e GPT ===
=== MBR e GPT ===
Riga 16: Riga 15:
Il BIOS si basa sul MBR ([http://it.wikipedia.org/wiki/Master_boot_record Master boot record]), che è la parte iniziale di un disco (grande solo 512 bytes) che contiene la tabella delle partizioni e un piccolo programma detto [http://it.wikipedia.org/wiki/Boot_loader bootloader]. Il BIOS sa che per far avviare il disco deve leggere il MBR ed eseguire il bootloader ivi presente. Al BIOS non interessa quanti e quali sistemi operativi o partizioni sono presenti sul disco, lui sa solo che per avviare un disco deve eseguire il bootloader e poi dev'essere compito di quest'ultimo occuparsi dell'avvio.<br>
Il BIOS si basa sul MBR ([http://it.wikipedia.org/wiki/Master_boot_record Master boot record]), che è la parte iniziale di un disco (grande solo 512 bytes) che contiene la tabella delle partizioni e un piccolo programma detto [http://it.wikipedia.org/wiki/Boot_loader bootloader]. Il BIOS sa che per far avviare il disco deve leggere il MBR ed eseguire il bootloader ivi presente. Al BIOS non interessa quanti e quali sistemi operativi o partizioni sono presenti sul disco, lui sa solo che per avviare un disco deve eseguire il bootloader e poi dev'essere compito di quest'ultimo occuparsi dell'avvio.<br>
L'UEFI invece lavora in modo differente. Innanzitutto non usa il MBR poiché questo pone dei limiti al numero e alla grandezza delle partizioni, ma usa invece un tipo differente di tabella delle partizioni nato proprio con l'UEFI, e cioè il GPT ([http://it.wikipedia.org/wiki/GUID_Partition_Table GUID Partition Table]). Si possono anche usare dischi con tabella MBR, anche senza attivare il CSM (la retrocompatibilità BIOS), ma è sconsigliabile.<br>
L'UEFI invece lavora in modo differente. Innanzitutto non usa il MBR poiché questo pone dei limiti al numero e alla grandezza delle partizioni, ma usa invece un tipo differente di tabella delle partizioni nato proprio con l'UEFI, e cioè il GPT ([http://it.wikipedia.org/wiki/GUID_Partition_Table GUID Partition Table]). Si possono anche usare dischi con tabella MBR, anche senza attivare il CSM (la retrocompatibilità BIOS), ma è sconsigliabile.<br>
Nel disco GPT deve esserci una piccola partizione di sistema chiamata ESP ([http://en.wikipedia.org/wiki/EFI_System_partition EFI System partition], in genere creata dal primo sistema operativo che si installa sul disco). Questa partizione contiene tutti i bootloader dei vari sistemi operativi presenti sul disco e viene letta direttamente dall'UEFI. Mentre nel BIOS si poteva solo scegliere quale disco avviare per primo, su UEFI si sceglie direttamente il sistema operativo da avviare per primo, indipendentemente in quale disco si trovi (ma purché il suo bootloader sia stato visto e riconosciuto dall'UEFI). La partizione ESP deve avere un file system [http://it.wikipedia.org/wiki/File_Allocation_Table FAT] (12 / 16 / 32), e può contenere oltre ai bootloader anche dei programmi direttamente eseguibili da UEFI, come ad esempio dei software di diagnostica hardware (ma alla fin fine anche i bootloader non sono altro che dei programmi il cui unico fine è avviare dei sistemi operativi).
Nel disco GPT deve esserci una piccola partizione di sistema chiamata ESP ([http://en.wikipedia.org/wiki/EFI_System_partition EFI System partition], in genere creata dal primo sistema operativo che si installa sul disco). Questa partizione contiene tutti i bootloader dei vari sistemi operativi presenti sul disco e viene letta direttamente dall'UEFI. Mentre nel BIOS si poteva solo scegliere quale disco avviare per primo, su UEFI si sceglie direttamente il sistema operativo da avviare per primo, indipendentemente in quale disco si trovi (ma purché il suo bootloader sia stato trovato e riconosciuto dall'UEFI). La partizione ESP deve avere un file system [http://it.wikipedia.org/wiki/File_Allocation_Table FAT] (12 / 16 / 32), e può contenere oltre ai bootloader anche dei programmi direttamente eseguibili da UEFI, come ad esempio dei software di diagnostica hardware (ma alla fin fine anche i bootloader non sono altro che dei programmi il cui unico fine è avviare dei sistemi operativi).


== Preparazione dell'installazione ==
== Preparazione dell'installazione ==
Prima di procedere, è meglio entrare nelle pagine di configurazione dell'UEFI per andare a disattivare delle caratteristiche che potrebbero essere incompatibili con Debian, come il [http://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#Secure_boot SecureBoot], il FastBoot e per evitare errori di installazione, meglio disattivare anche il CSM, ovvero la compatibilità con il vecchio BIOS.<br>
Prima di procedere, è meglio entrare nelle pagine di configurazione dell'UEFI per andare a disattivare delle caratteristiche che potrebbero essere incompatibili con Debian, come il [http://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#Secure_boot SecureBoot], il FastBoot (un avvio veloce dell'UEFI che si ottiene evitando di caricare alcune funzioni e di effettuare alcuni controlli e che può chiamarsi anche in altri modi; da non confondere con la feature ''Fast startup'' (''Avvio veloce'') di Windows 8.x) e per evitare di fare confusione in fase di installazione, meglio disattivare anche il CSM, ovvero la compatibilità con il vecchio BIOS. Da notare che queste funzioni possono non essere presenti in tutte le schede madri.<br>
Per entrare nell'UEFI, generalmente si deve premere il tasto CANC / DEL (Asus, MSI) oppure F2 (Acer) o F10 (HP/Compaq) all'avvio del PC, ma in alcuni PC (specialmente notebook) non è così immediato: spesso bisogna tenere premuto uno dei tasti citati sopra a PC spento e accendere tenendo quel tasto premuto.<br>
Per entrare nell'UEFI, generalmente si deve premere il tasto CANC / DEL (Asus, MSI) oppure F2 (Asus, Acer) o F10 (HP/Compaq) all'avvio del PC, ma in alcuni notebook non è così immediato: a volte a notebook spento bisogna tenere premuto uno dei tasti appena citati e accendere, oppure premere un apposito interruttore con la punta di una biro (Lenovo).<br>
In alcuni UEFI (es. portatili Acer) per poter modificare alcune opzioni, bisogna prima impostare una Supervisor Password dall’UEFI stesso.
In alcuni UEFI (es. portatili Acer) per poter modificare alcune opzioni, bisogna prima impostare una Supervisor Password dall’UEFI stesso.
{{Box|Nota|L'incompatibilità tra Debian e il Secure Boot è in corso di risoluzione. Fare riferimento a [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug{{=}}820036 questa] segnalazione di [[bug]] sul [[BTS]].}}


=== Supporti di installazione ===
=== Supporti di installazione ===
Tutti i supporti di installazione Debian sono già avviabili da UEFI, tranne l'immagine ridottissima ''mini.iso'' (conosciuta anche come [https://www.debian.org/distrib/netinst#verysmall netboot]), che non ha un bootloader UEFI.
Quasi tutti i supporti di installazione Debian sono già avviabili da UEFI, tranne:
 
* l'immagine ridottissima ''mini.iso'' (conosciuta anche come [https://www.debian.org/distrib/netinst#verysmall netboot]), che non ha un bootloader UEFI.
* [https://www.debian.org/CD/live/index.it.html le immagini live] delle "vecchie" release, [[Jessie]] compresa. Mentre dall'attuale stable [[Stretch]] UEFI è supportato.
==== mini.iso ====
==== mini.iso ====
Questa immagine iso non possiede un bootloader per UEFI, ma al suo interno ce n'è uno e possiamo metterlo benissimo noi se usiamo una chiavetta USB come supporto di installazione.<br>
Questa immagine iso non possiede un bootloader per UEFI, ma al suo interno ce n'è uno e possiamo metterlo benissimo noi se usiamo una chiavetta USB come supporto di installazione.<br>
Dopo aver trasferito la mini.iso sulla chiavetta USB [[Installare_Debian_da_pendrive_USB_o_SD_card|come descritto qui]], avremo sulla chiavetta una piccola partizione vuota in FAT12 con etichetta "Firmware", dove in genere si piazzano i firmware di cui potrebbe aver bisogno l'installer di Debian per far funzionare alcune periferiche. Noi la useremo come se fosse una partizione ESP senza bisogno di ulteriori modifiche. Basta prelevare dalla mini.iso il file <code>/boot/grub/efi.img</code> (non so perché non sia inserito di default) con:
Dopo aver trasferito la mini.iso sulla chiavetta USB [[Installare_Debian_da_pendrive_USB_o_SD_card|come descritto qui]], avremo sulla chiavetta una piccola partizione vuota in FAT12 con etichetta "Firmware", dove in genere si piazzano i firmware di cui potrebbe aver bisogno l'installer di Debian per far funzionare alcune periferiche. Noi la useremo come se fosse una partizione ESP senza bisogno di ulteriori modifiche. Basta prelevare dalla mini.iso il file <code>/boot/grub/efi.img</code> (non so perché non sia già integrato di default) con:
<pre>$ isoinfo -J -i ~/Scaricati/mini.iso -x /boot/grub/efi.img > /tmp/efi.img</pre>
<pre>$ isoinfo -J -i ~/Scaricati/mini.iso -x /boot/grub/efi.img > /tmp/efi.img</pre>
(<code>isoinfo</code> si trova nel pacchetto <code>genisoimage</code>; cambiare eventualmente <code>~/Scaricati/</code> con il percorso in cui si trova la mini.iso).<br>
(<code>isoinfo</code> si trova nel pacchetto <code>genisoimage</code>; cambiare eventualmente <code>~/Scaricati/</code> con il percorso in cui si trova la mini.iso).<br>
Riga 41: Riga 42:
Adesso anche la mini.iso è diventata avviabile da UEFI.<br>
Adesso anche la mini.iso è diventata avviabile da UEFI.<br>
Se si sta usando Windows per creare il supporto di installazione è possibile usare [http://www.7-zip.org/ 7-Zip] sia per estrarre il file <code>efi.img</code> dalla <code>mini.iso</code>, sia per decomprimere il file <code>efi.img</code> nella partizione "Firmware".
Se si sta usando Windows per creare il supporto di installazione è possibile usare [http://www.7-zip.org/ 7-Zip] sia per estrarre il file <code>efi.img</code> dalla <code>mini.iso</code>, sia per decomprimere il file <code>efi.img</code> nella partizione "Firmware".


== Installazione ==
== Installazione ==
Riga 54: Riga 54:


=== Installazione di GRUB ===
=== Installazione di GRUB ===
GRUB, il bootloader predefinito di Debian, viene installato nella partizione ESP in <code>/EFI/debian/grubx64.efi</code> (quel ''x64'' nel nome è perché ho installato Debian con architettura ''amd64''). Durante l'installazione di GRUB, potrebbe essere chiesto se si vuole installare una seconda copia del bootloader in un percorso generico della partizione ESP (che dovrebbe essere <code>/EFI/Boot/bootx64.efi</code>), nel caso che l'UEFI di quella macchina sia implementato male e invece di cercare tutti i bootloader presenti nella partizione di sistema, cerchi soltanto quello presente in quel percorso (bug frequente, spesso nelle prime macchine con UEFI). In questo caso GRUB potrebbe sovrascrivere il bootloader di un SO già presente, ma si potrà sempre configurare GRUB per avviare anche quel SO (generalmente basta dare il comando <code>update-grub</code> come ''root'' o con <code>sudo</code>).
GRUB, il bootloader predefinito di Debian, viene installato nella partizione ESP in <code>/EFI/debian/grubx64.efi</code> (quel ''x64'' nel nome è perché ho installato Debian con architettura ''amd64''). Durante l'installazione di GRUB, potrebbe essere chiesto se si vuole installare una seconda copia del bootloader in un percorso generico della partizione ESP (che dovrebbe essere <code>/EFI/Boot/bootx64.efi</code>), nel caso che l'UEFI di quella macchina sia implementato male e invece di cercare tutti i bootloader presenti nella partizione di sistema, cerchi soltanto quello presente in quel percorso (bug frequente, spesso nelle prime macchine con UEFI). In questo caso GRUB potrebbe sovrascrivere il bootloader di un S.O. già presente, ma si potrà sempre configurare GRUB per avviare anche l'altro S.O. (generalmente basta dare il comando <code>update-grub</code> come ''root'' o con <code>sudo</code>).




== Dual boot con Windows ==
== Dual boot con Windows ==
Grazie a UEFI e GPT, nessun sistema operativo installato per ultimo prenderà il sopravvento sugli altri, ma ognuno piazzerà il suo bootloader e la sua configurazione d’avvio sulla partizione ESP. Quindi si può installare tranquillamente prima Debian e poi Windows, o viceversa. In ogni caso entrambi avranno la propria voce nelle impostazioni di avvio dell'UEFI e da qui si potrà scegliere quale dei due avviare. Però se non si vuole entrare ogni volta nelle impostazioni UEFI per selezionare il sistema operativo da avviare, è consigliabile scegliere Debian come sistema operativo da avviare, in quanto il suo bootloader GRUB riconosce e può avviare anche l'installazione di Windows (mentre il bootloader di Windows riesce solo ad avviare Windows).<br>
Grazie a UEFI e GPT, nessun sistema operativo installato per ultimo dovrebbe prendere il sopravvento sugli altri, ognuno piazzerà il suo bootloader e la sua configurazione d’avvio sulla partizione ESP. Quindi si può installare tranquillamente prima Debian e poi Windows, o viceversa. In ogni caso entrambi i S.O. dovrebbero avere la propria voce nelle impostazioni di avvio dell'UEFI e da qui si potrà scegliere quale dei due avviare.<br>
Ricordarsi che il primo sistema operativo che si installa andrà a creare la partizione ESP e i successivi SO installati non avranno bisogno di crearne altre, perché ne basta una per disco e tutti i SO useranno quella.<br>
Tutto ciò però in un mondo ideale. Nel mondo reale come già detto prima ci sono molti programmatori di UEFI che non rispettano gli standard e si potrebbe finire con delle [https://wiki.debian.org/GrubEFIReinstall#Troubleshooting situazioni] in cui si dovrà reinstallare il bootloader di Debian.<br>
In dual-boot con Windows è praticamente necessario scegliere Debian come sistema operativo da avviare in automatico, in quanto il suo bootloader GRUB riconosce e può avviare anche l'installazione di Windows (mentre il bootloader di Windows riesce solo ad avviare Windows).<br>
Ricordarsi che il primo sistema operativo che si installa andrà a creare la partizione ESP e i successivi S.O. installati non avranno bisogno di crearne altre, perché ne basta una sola in un disco e tutti i S.O. useranno quella.<br>
Se si installa Windows dopo Debian, bisognerà eseguire il comando <pre># update-grub</pre> in Debian per far trovare a GRUB l’installazione di Windows e creare una voce d'avvio.<br>
Se si installa Windows dopo Debian, bisognerà eseguire il comando <pre># update-grub</pre> in Debian per far trovare a GRUB l’installazione di Windows e creare una voce d'avvio.<br>
Anche l'installer di Windows riconosce se è stato avviato in modalità UEFI e anche per lui vale la regola che bisogna avere il disco con la tabella GPT, altrimenti l'installazione non potrà proseguire. Per cambiarla bisogna aprire dall'installer stesso un prompt dei comandi ed eseguire <code>diskpart</code> (ma questo è off-topic qui), oppure si può usare una distro Linux live per convertire in GPT prima di installare Windows. Le versioni di Windows installabili su sistemi con UEFI sono Windows 7 (solo a 64 bit), Windows 8.x (tutte le architetture) e Windows 10 (tutte le architetture).
Per l'informazione, anche l'installer di Windows riconosce se è stato avviato in modalità UEFI e anche per lui vale la regola che bisogna avere il disco con la tabella GPT, altrimenti l'installazione non potrà proseguire. Per cambiarla bisogna aprire dall'installer stesso un prompt dei comandi ed eseguire <code>diskpart</code> (ma questo è off-topic), oppure si può usare una distro Linux live per convertire in GPT prima di installare Windows. Dopo alcuni test, sembrerebbe che a partire da Windows 10 la conversione da MBR a GPT sia automatica durante l'installazione e non è più necessario convertire prima di installare.<br>
 
Le versioni di Windows installabili su sistemi con UEFI sono Windows 7 (solo a 64 bit), Windows 8.x (tutte le architetture) e Windows 10 (tutte le architetture).<br>
Dopo l'installazione di Windows 8.x o 10 (o, se già installato, prima dell'installazione di Debian) bisogna disabilitare la funzione [https://wiki.archlinux.org/index.php/Windows_and_Arch_dual_boot#Fast_Start-Up fast startup] (avvio veloce) per poter far convivere i due sistemi operativi.


== Riferimenti ==
== Riferimenti ==
982

contributi

Menu di navigazione