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

 
(15 versioni intermedie di uno stesso utente non sono mostrate)
Riga 24: Riga 24:
In poche parole chiunque voglia scrivere del software che possa essere eseguito all'avvio di una macchina deve farselo firmare da un ente certificatore riconosciuto (''Certificate Authoruity'') e chiedere ad ogni fornitore hardware di includere le chiavi usate per firmare detto software.<br/>
In poche parole chiunque voglia scrivere del software che possa essere eseguito all'avvio di una macchina deve farselo firmare da un ente certificatore riconosciuto (''Certificate Authoruity'') e chiedere ad ogni fornitore hardware di includere le chiavi usate per firmare detto software.<br/>
In pratica la stragrande maggioranza dei produttori hardware x86 compatibile include le chiavi di Microsoft e quindi qualsiasi software firmato da Microsoft sarà eseguito da UEFI.<br/>
In pratica la stragrande maggioranza dei produttori hardware x86 compatibile include le chiavi di Microsoft e quindi qualsiasi software firmato da Microsoft sarà eseguito da UEFI.<br/>
Dato l'enorme numero di distribuzioni Linux non è pensabile che ogni produttore hardware includa le chiavi di ogni distro, quindi sviluppatori legati a diverse distribuzioni Linux hanno collaborato per creare un unico programma che potesse essere usato da chiunque per permettere l'installazione di una qualsiasi distro linux. Tale programma è appunto <code>shim</code> e viene riconosciuto da UEFI proprio perché firmato da Microsoft. All'interno di <code>shim</code> sono anche contenuti i certificati usati dalle varie distribuzioni per firmare tutto il loro software, in questo modo è sufficiente che solo <code>shim</code> sia firmato da Microsoft.
Dato l'enorme numero di distribuzioni Linux non è pensabile che ogni produttore hardware includa le chiavi di ogni distro, quindi sviluppatori legati a diverse distribuzioni Linux hanno collaborato per creare un unico programma che potesse essere usato da chiunque per permettere l'installazione di una qualsiasi distro linux. Tale programma è appunto <code>shim</code> e viene riconosciuto da UEFI proprio perché firmato da Microsoft. All'interno di <code>shim</code> sono anche contenuti i certificati usati dalle varie distribuzioni per firmare tutto il loro software, in questo modo è sufficiente che solo <code>shim</code> sia firmato da Microsoft.<br>
In linux è possibile verificare se il proprio sistema è stato avviato usando SB digitando il seguente comando:
<pre>$ sudo mokutil --sb-state</pre>
che in caso affermativo stamperà a video <code>SecureBoot enabled</code> e viceversa <code>SecureBoot disabled</code> in caso negativo.


=== Ordine avvio ===
=== Ordine avvio ===


A livello firmware (cioè all'accensione del PC premendo un tasto specifico che varia da produttore a produttore, es. <code>F12</code>) è generalmente possibile scegliere sia quale bootloader leggere in modo predefinito sia arrestare temporaneamente il processo di avvio e segliere manualmente quale partizione ESP avviare (ciò avviene premendo un tasto specifico, es. <code>F12</code>, che varia da produttore a produttore).<br/>
A livello firmware (cioè all'accensione del PC premendo un tasto specifico che varia da produttore a produttore, es. <code>F12</code>) è generalmente possibile scegliere cosa leggere (partizione, unità CD, unità di rete, ecc.) in modo predefinito sia arrestare temporaneamente il processo di avvio e segliere manualmente cosa avviare (ciò avviene premendo un tasto specifico, es. <code>F12</code>, che varia da produttore a produttore).
Naturalmente tutto ciò ha senso solo se esistono più bootloader, diversamente l'unica opzione disponibile sarà ovviamente costituita dall'unico esistente. Quando si installa per la prima volta un sistema operativo l'unico bootloader disponibile sarà tipicamente quello dell'immagine d'installazione dello stesso.
{{Box|Nota|L'ordine di avvio predefinito può essere definito anche tramite il ''UEFI boot manager'' di linux.}}
 
=== Installazione ===
 
Come già accennato in precedenza installare Debian su un sistema con firmware UEFI non richiede più particolari accorgimenti, tuttavia se si vuole usare uno schema di partizioni personalizzato è necessario ricordare che è obbligatorio creare una partizione EFI e:
* formattarla in FAT32;
* contrassegnarla come avviabile.
In un sistema con firmware EFI e modalità compatibilità disattivata le uniche partizioni contrassegnabili come avviabili sono appunto quelle EFI.
{{Cautionbox|Sebbene sia possibile creare più partizioni EFI solo una di queste potrà essere contrassegnata come avviabile.}}
{{Suggerimento|Nel caso si vogliano installare più sistemi operativi è consigliabile installare tutti i relativi bootloader nella medesima partizione ESP, ovvero è generalmente inutile creare più partizioni ESP.}}
{{Suggerimento|Nel caso si vogliano installare più sistemi operativi è consigliabile installare tutti i relativi bootloader nella medesima partizione ESP, ovvero è generalmente inutile creare più partizioni ESP.}}
{{Warningbox|
* NON è possibile mettere in raid una partizione EFI.
* Se si installano più distro linux GRUB deve essere installato solo per una di queste distro, NON per tutte (questo è vero in generale e non solo per UEFI)
}}
==== Windows e Linux ====
Meglio installare prima Windows o Linux? Dipende.
* Se si installa prima Windows e poi Linux si evita la seccatura di dover cambiare manualmente l'ordine di avvio dei bootloader, visto che come sempre il bootloader di Windows può caricare solo quest'ultimo. Tuttavia la partizione EFI sarà creata da Windows e occuperà 100MiB (l'installer di windows non permette di cambiarne la dimensione). Per la stragrande maggioranza degli utenti questa soluzione è assolutamente accettabile visto che la somma dei bootloader di Windows e Debian in questo momento (06/2024) occupa in totale meno di 40 MiB, inoltre è anche consigliata in quanto meno complicata.
* Se si installa prima Linux e poi Windows sarà invece necessario cambiare manualmente l'ordine di avvio dei bootloader, ma con UEFI quest'operazione è ormai assolutamente banale in quanto può essere facilmente eseguita tramite il firmware UEFI all'avvio del PC. Rimesso quindi in prima posizione <code>GRUB</code> sarà sufficiente digitare da linux:
: <pre># update-grub</pre>
{{Cautionbox|Il comportamento predefinito del precedente comando è cambiato, ovvero l'esecuzione automatica di <code>os-prober</code> è stata disabilitata con la conseguenza che non verranno identificati altri sistemi operativi. Per risolvere questo problema è quindi necessario riabilitarne l'esecuzione automatica.}}
: Ma perché complicarsi la vita, anche se di poco? Perché così fancendo è possibile creare una partizione EFI personalizzata e in alcuni casi particolari può essere utile.
=== efibootmgr ===
Questo pacchetto permette di configurare il ''UEFI boot manager''.
* Mostrare l'ordine di avvio attuale
: <pre> $ efibootmgr</pre>
: aggiungere l'opzione <code>-v</code> per mostrare più informazioni. Torna utile per esempio quando si ha necessità di visualizzare l'UUID delle partizioni.
* Aggiungere manualmente la partizione <code>/dev/sda1</code> che contiene un'altra distro linux, per es. Ubuntu
: <pre># efibootmgr --create --disk /dev/sda --part 1 --label "Ubuntu" --loader "\EFI\ubuntu\shimx64.efi"</pre>
: Nel caso si abbiano più sistemi operativi si tratta semplicemente di ripetere il precedente comando cambiando il valore di <code>--label</code> e di <code>--loader</code> (è sufficiente digitare nuovamente <code>efibootmgr -v</code> e copiare quanto scritto tra le parentesi di <code>/File(...)</code> in corrispondenza del sistema operativo desiderato).
* Eliminare una voce di avvio
: <pre># efibootmgr -B -b 00XY</pre>
: dove <code>00XY</code> indica il numero della voce da eliminare, per esempio <code># efibootmgr -B -b 0009</code>.
* Posto di aver cinque voci di avvio <code>0000,0001,0002,0003,0004</code> e di volerle riordinare in <code>0000,0004,0001,0002,0003</code> digitare
: <pre># efibootmgr -o 0000,0004,0001,0002,0003</pre>
<br/><br/>


== Vecchi sistemi ==
== Vecchi sistemi ==
Quanto segue è stato scritto ai tempi di Debian Buster e pertanto le indicazioni presenti risultano per lo più datate.
Quanto segue è stato scritto ai tempi di Debian Buster e pertanto le indicazioni presenti risultano per lo più datate.


Riga 85: Riga 123:
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>
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.
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.
<br/><br/>


== Approfondimenti ==
== Approfondimenti ==
3 113

contributi