Installare Ubuntu in dual boot con Windows 10, senza disattivare l'opzione di "secure boot" è possibile! Vediamo come fare.

Ubuntu Windows dual boot uefi secure boot attivo

Cos'è il "secure boot"

Il "secure boot" o "avvio protetto" è un estensione dei sistemi UEFI che sono i moderni e più evoluti discendenti del BIOS. Tale estensione è stata voluta da Microsoft e, in maniera molto semplicistica, consente di avviare solo sistemi che hanno una firma digitale riconosciuta. Microsoft definisce questo "standard di sicurezza" (anche se è già stato violato) ma ha fatto gridare allo scandalo molti sostenitori del software libero, che si sono schierati contro questo "standard" visto come un tentativo di limitare l'installazione di sistemi operativi concorrenti. L'obbiettivo di "secure boot", secondo Microsoft, sarebbe quello di non avviare il sistema se questo è compromesso da un malware che ne modifica il meccanismo di avvio e che difficilmente sarebbe rilevato dagli antivirus che funzionano sul sistema stesso. Ma è anche un modo per limitare l'installazione del sistema operativo di Redmond in maniera pirata, utilizzando un particolare loader per avviare il sistema e risultare così originale.

Per adesso, l'"avvio protetto" è disattivabile su quasi tutti i dispositivi e, considerando bene pro e contro, se vogliamo installare un secondo sistema operativo, disattivare questa opzione rimane la scelta più sensata e facile da seguire.

Ma torniamo a noi, com'è possibile installare Linux in dual boot con Windows 10 e "secure boot" attivo?

In realtà ci sono diversi sistemi per farlo, dal più complesso (generare una chiave con cui firmare il bootloader o il kernel e poi salvarla nell'UEFI) ai più semplici, già integrati in molte distribuzioni (pre-bootloader e shim).

Il "pre-bootloader" è stato sviluppato dalla Linux Foundation che si è procurata una chiave di autenticazione da Microsoft. Senza scendere troppo in tecnicismi, il funzionamento di base è questo: all'avvio del computer, l'UEFI verifica la firma di questo "pre-bootloader" e, risultando corretta, ne consente l'esecuzione; il "pre-bootloader" finisce il suo lavoro avviando il boot loader (generalmente GRUB ma potrebbe essere anche un altro).

Shim funziona in maniera analoga ma va oltre perché è in grado di verificare la firma dell'applicazione da caricare, anche tramite una chiave "esterna" detta MOK (Machine Owner Key). Ciò consente di avviare in "secure boot" anche i kernel compilati localmente e firmati con una chiave apposita creata ad-hoc (MOK, appunto). Mentre l'unico scopo del "pre-bootloader" è consentire l'avvio di Linux su un sistema con "avvio protetto" abilitato, shim estende i benefici del "secure boot" al kernel Linux e hai moduli, consentendo l'avvio solo se la firma è riconosciuta valida.

Ubuntu utilizza shim ma la procedura descritta in seguito è analoga anche in caso di distribuzioni che utilizzano il pre-bootloader.

Come fare in pratica

Prima di vedere i passaggi da seguire, occorre fare una premessa: i sistemi UEFI possono essere personalizzati dai vari produttori di hardware, per cui alcuni passaggi potrebbero differire leggermente o anche essere totalmente diversi da quelli di seguito descritti. Quindi, prendete questa guida più come concettuale che pratica.

In ultimo, chiedo scusa per la qualità delle foto; spero solo che siano sufficientemente chiare per aiutare a comprendere i passaggi.

Requisiti fondamentali necessari prima di procedere:

Ubuntu Windows dual boot uefi secure boot attivo

Una volta scaricata la iso della nostra distribuzione, in questo caso Ubuntu, e masterizzata su DVD o trasferita su chiavetta USB (in questo caso, ricordatevi di abilitare il supporto a UEFI!!), procediamo ad avviarla sul nostro PC (se vi serve aiuto, potete seguire quest'altra guida).

Una volta selezionata la sorgente esterna (chiavetta USB/DVD) dal quale fare il boot, potrebbe accadere che il sistema parte normalmente con l'avvio di Windows!! Se questo dovesse accadere, dovremo ringraziare il "secure boot". Per far sì che il sistema si avvi da chiavetta (o DVD) dovremo allora indicare all'UEFI quale boot loader eseguire.

Entriamo quindi nell'UEFI, andiamo nella tab Security e selezioniamo la voce Select an UEFI file as trusted for executing

Ubuntu Windows dual boot uefi secure boot attivo

ATTENZIONE: questa voce potrebbe non essere selezionabile!! Questo è dovuto alla mancanza di una password per accedere all'UEFI (quella che, nell'immagine sopra è indicata come "Supervisor Password"); una volta impostata una password di accesso, questa voce sarà selezionabile (ma potrebbe essere necessario un riavvio)!!

Dopodiché dovremo andare a cercare il boot loader (grubx64.efi) che l'UEFI dovrà riconoscere come fidato

Ubuntu Windows dual boot uefi secure boot attivo

Quando lo troveremo lo selezioneremo con Invio; ci verrà chiesto di inserire una descrizione (opzionale ma consigliata, ci tornerà utile nel prossimo passaggio) e poi dovremo confermare [Yes]. Salviamo ed usciamo dall'UEFI.

Al successivo riavvio, premiamo il tasto che ci consente di scegliere il dispositivo dal quale avviare il sistema (come abbiamo già visto qui), scegliamo la voce che abbiamo aggiunto prima (la descrizione inserita ci aiuterà a riconoscerla) e premiamo Invio. Il sistema si avvierà con Ubuntu (io ho scelto di provarlo)!

Ubuntu Windows dual boot uefi secure boot attivo

A questo punto possiamo procedere con l'installazione a fianco di Windows. Non starò a ripetere i passaggi necessari perché li abbiamo già visti in questa guida che, seppur datata, rimane sempre valida (i passaggi sono pressoché gli stessi).

Alla fine dell'installazione, dovremo riavviare il sistema; ci aspetteremo di vedere il menu di GRUB e invece si avvia Windows senza possibilità di scelta! Questo perché nel sistema di avvio è impostato il boot manager di Windows. Per cambiare ciò dovremo agire in maniera analoga a quanto già visto per avviare da chiavetta USB, con l'unica differenza che il file che andremo a cercare adesso sarà shimx64.efi.

Quindi, di nuovo, entriamo nell'UEFI, tab Security, Select an UEFI file as trusted for executing e seguiamo il percorso fino al suddetto file.

Ubuntu Windows dual boot uefi secure boot attivo

Dopodiché dovremo spostarci nella tab Boot e spostare la voce appena aggiunta in cima alla lista (se non dovessimo trovarla, sarà necessario salvare le modifiche, uscire e rientrare nell'UEFI!)

Ubuntu Windows dual boot uefi secure boot attivo

Salviamo e al successivo riavvio...

Ubuntu Windows dual boot uefi secure boot attivo