mercoledì 8 marzo 2017

Debian: installazione in modalità UEFI


Gli attuali sistemi basati su firmware UEFI (Unified Extensible Firmware Interface) hanno ormai rimpiazzato i vecchi computer con il BIOS (Basic Input/Output System), utilizzato fin dalla nascita dei primi PC.

Il BIOS ha molte limitazioni dovute alla sua progettazione che risale agli anni ‘80, ma per motivi di retrocompatibilià molte schede madri, oltre al firmware UEFI, supportano il boot in stile BIOS tramite CSM (Compatibility Support Module).

Al giorno d’oggi non c’è alcun motivo per installare Debian in modalità CSM, a meno che non si voglia installarlo in dual boot al fianco di una preesistente vecchia installazione di Windows.


In questa breve guida vedremo come installare Debian in modalità UEFI e come evitare e/o superare eventuali problemi.

Avvio in modalità UEFI

Il primo requisito per poter installare la nostra distribuzione GNU/Linux preferita in modalità UEFI è quello di dover avviare l’immagine disco di installazione da una penna USB in modalità UEFI!

Sembra un’ovvietà, ma spesso questo è il primo errore che si compie. Se il disco di installazione è inavvertitamente avviato tramite CSM, l’installazione proseguirà con la stessa modalità. Visto che sullo stesso sistema non possono convivere due sistemi operativi avviabili in modalità diverse, tanto vale disabilitare il modulo di retro-compatibilità CSM nella configurazione del firmware UEFI e scegliere l’opzione di boot “solo UEFI”.

Tabella delle partizioni GPT

Secondo requisito fondamentale è il partizionamento del disco di destinazione dell’installazione che deve essere di tipo GPT o GUId Partition Table (Globally Unique Identifier) e non il vecchio standard MS-DOS denominato MBR (Master Boot Record).

Proprio come il BIOS, il MBR porta con se molte limitazioni dovute ai limiti hardware del tempo in cui fu progettato, tra le quali la dimensione massima di 2 TB per i dischi di avvio e solo quattro partizioni primarie possibili.

Purtroppo non c’è modo di modificare la tabella delle partizioni durante l’installazione del sistema, quindi dovrete provvedere a preparare il disco di destinazione prima.

Fate attenzione, modificare la tabella delle partizioni comporta la perdita di tutte le partizioni esistenti e quindi di tutti i dati, se avete dati da mettere al sicuro è meglio fare un backup prima di procedere.

Modificare la Tabella delle partizioni con gparted

E’ possibile modificare il partizionamento del disco utilizzando gparted: dopo aver scelto il disco interessato, dal menù Dispositivo selezionare la voce “Crea tabella delle partizioni...” e create una tabella di tipo GPT.

E’ possibile scaricare l’immagine disco live dal sito di Gparted per poterlo avviare tramite una penna USB e preparare il disco interno del vostro PC.


Modificare la Tabella delle partizioni dal Terminale con fdisk


E’ possibile modificare la tabella delle partizioni anche da riga di comando utilizzando fdisk, uno strumento interattivo che permette di gestire le partizioni dei dischi.

La sintassi del comando è molto semplice:


# fdisk /dev/[nome del disco]


Per esempio, se il disco da partizionare è un disco SATA sda1


# fdisk /dev/sda1


Se invece dovete partizionare un moderno SSD M.2 PCIe allora sarà


#fdisk /dev/nvme0n1


Ricordatevi di eseguire questo comando come root.

Una volta invocato, fdisk attenderà i vostri ordini, digitando il carattere m potete visualizzare la lista dei comandi.

Con il carattere g potete creare una nuova tabella delle partizioni GPT vuota.

Completate digitando w per scrivere le modifiche e uscire.

Partizione di boot EFI

Ora che il disco è pronto potete procedere con l'installazione, ma c'è ancora un potenziale problema da sistemare. Quando avete cambiato la tabella delle partizioni avete distrutto tutte le partizioni preesistenti, l'installer di Debian è in grado di creare automaticamente le partizioni necessarie al sistema operativo, ma non si preoccupa di creare la partizione di avvio necessaria per UEFI.

Quindi, quando vi verrà richiesto, scegliete di partizionare manualmente il disco e create una partizione di 200 MB, con filesystem FAT32, punto di mount /boot/efi e spuntate il flag per renderla avviabile.

Ora che avete creato la partizione EFI, potete creare le restanti partizioni da utilizzare con Debian.

Errore nell’installazione del boot loader


Capita a volte che l’installazione del boot loader GRUB 2 fallisca e, dopo la segnalazione dell’errore, ci si ritrova davanti al menù iniziale dell’installer.

Mi sono imbattuto in questo problema durante l’installazione su un SSD con interfaccia M.2 di tipo PCIe, ho risolto nel seguente modo.

Dal menù con l'elenco dei passi dell'installazione selezionate la voce in basso per aprire una shell.

Prima di mostrarvi i comandi vorrei chiarire una cosa, quando aprite una shell dall’installer non avete accesso al sistema che avete installato sul disco, ma siete in un ambiente limitato che risiede in memoria. La root del disco di installazione è montata nella directory target. La prima cosa da fare è creare un collegamento tra le directory di sistema dell’ambiente in memoria e quelle del sistema sul disco, a questo scopo utilizziamo il comando mount con l’opzione bind.


# mount –bind /dev  /target/dev

# mount –bind /dev/pts  /target/dev/pts
# mount –bind /proc  /target/proc

# mount –bind /sys  /target/sys

Ora le directory /dev, /dev/pts, /proc e /sys sono legate a quelle sul disco.

Copiate il file resolv.conf per permettere il collegamento a internet dal sistema sul disco con


# cp /etc/resolv.conf /target/etc


Quindi eseguiamo il comando chroot per poter accedere come utente root al sistema installato sul disco di destinazione.


# chroot /target /bin/bash


Da questo momento in poi state eseguendo dei comandi sul sistema installato, procediamo all’installazione di GRUB.


# aptitude update

# aptitude install grub-efi-amd64
# update-grub

# grub-install –target=x86_64-efi /dev/nvme0n1

Dove nvme0n1 è il disco SSD M.2 PCIe, ma se state installando GRUB su un disco di tipo SATA allora sarà probabilmente sda.


Uscite dalla shell con il comando exit (da eseguire due volte) e scegliete di continuare senza installare GRUB. Vi apparirà un avviso per ricordarvi che senza GRUB il sistema non sarà avviabile, ignoratelo pure e andate avanti fino al riavvio.


Se il problema era causato dal disco SSD M.2 PCIe proseguite con questi passi per evitare di avere problemi di boot al prossimo riavvio, altrimenti fermatevi qui.

Alcuni aggiustamenti per i dischi SSD M.2 PCIe

Una volta riavviato dal sistema installato, aprite il Terminale e aggiungete “nvme” al file /etc/initramfs-tools/modules con


# nano /etc/initramfs-tools/modules


Dopo aver aggiunto una riga con la parola nvme salvate con Ctrl+O e uscite con Ctrl+X.

A questo punto eseguite questo comando:


# update-initramfs -u


Ora modificate il file grub in /etc/default


# nano /etc/default/grub


aggiungete la seguente linea


GRUB_CMDLINE_LINUX="intel_pstate=no_hwp"


Dopo aver salvato eseguite


# update-grub


A questo punto il vostro SSD funzionerà senza problemi.