Con questo primo approfondimento inizia la nostra serie di lezioni dedicate al tuning delle performance delle distribuzioni Linux e più nello specifico di Ubuntu 20.04 LTS (Focal Fossa), versione del sistema di Canonical che riceverà supporto tecnico ed aggiornamenti di sicurezza fino ad aprile 2030.
Ubuntu offre un ambiente stabile ed affidabile per ogni genere di workflow, vanta inoltre una vastissima community di volontari che offrono supporto gratuito a chi che ha deciso di intraprendere la transizione al mondo Linux.
Pur essendo estremamente accessibile ed user-friendly, Ubuntu non è però esente da difetti, il suo ambiente grafico è ad esempio uno dei meno ottimizzati e consuma una quantità di risorse da CPU e RAM leggermente sopra la media rispetto alle distribuzioni alternative.
Nella lezione di oggi andremo ad analizzare una delle tante procedure con cui massimizzare le prestazioni di Ubuntu 20.04 LTS, interverremo infatti sui tempi di caricamento del boot loader GRUB per ridurre notevolmente l'attesa prima dell'avvio del sistema.
Prima di iniziare dobbiamo però comprendere cosa sia precisamente un boot loader.
Cos'è un boot loader
Un un boot loader è un programma che durante le primissime fasi di avvio del PC carica le componenti base del sistema operativo presenti sul disco fisso, come ad esempio il kernel, e le esegue all'interno della memoria RAM.
Solitamente distribuito insieme all'OS, esso permette alla CPU di iniziare ad eseguire tutti i task primari per fare in modo che l'utente possa accedere al suo ambiente di lavoro.
La funzione principale del boot loader è quella di accedere al disco fisso nelle fasi iniziali di avvio del computer e di caricare il kernel, cosi da consentire l'esecuzione completa del sistema operativo.
Il boot loader più apprezzato dalla community Linux è GRUB (GNU GRand Unified Bootloader).
Si tratta di un programma sviluppato in seno allo storico progetto GNU (GNU's Not Unix) e viene quindi implementato dal medesimo team di coder che realizza tutte le componenti base presenti nelle distribuzioni.
GRUB è in grado di gestire non solo l'avvio di Linux ma anche di sistemi dual boot in cui sono presenti Windows, MacOS o le distro BSD, inoltre può essere installato in una partizione dedicata del disco fisso cosi da poter eseguire modifiche su Ubuntu senza alterare il boot loader, evitando di compromettere configurazioni personalizzate.
GRUB e tempi di avvio
Di base GRUB è impostato per attendere dieci secondi prima di avviare una determinata versione del kernel. Su Ubuntu, cosi come in molti altri sistemi Linux, è infatti possibile installare diverse release di Linux, cosi da poter tornare ad una versione meno recente nel caso in cui dovessero insorgere problematiche come le incompatibilità con i driver di una periferica o la mancata esecuzione di un processo.
Dieci secondi sono un tempo abbastanza lungo e per moltissimi utenti non serve un intervallo di attesa cosi ampio, soprattutto se non si dispone di una configurazione dual boot. È quindi possibile velocizzare le tempistiche di avvio di Ubuntu 20.04 LTS andando a ridurre il load time del boot loader.
Per far questo è necessario modificare il file di configurazione principale di GRUB che si trova all'interno della directory di sistema /etc/default/grub
.
Per eseguire tale configurazione è necessario operare come utente root o utilizzare sudo
(Substitute User Do) per avvalersi di un'escalation dei privilegi temporanea.
Inoltre prima di eseguire qualsiasi modifica è sempre bene eseguire un backup del file editati, cosi in caso di errori sarà possibile ripristinare il sistema reinserendo la configurazione precedente tramite un ambiente live.
Si può dunque procedere al backup tramite Nautilus, il file manager di riferimento di Ubuntu 20.04 LTS, copiando semplicemente il file di configurazione in un'altra directory, in alternativa è possibile affidarsi al comando da shell cp
.
Spostiamoci nella sezione "Attività", presente in alto a sinistra nel Desktop, e cerchiamo il Terminale tramite la barra di ricerca:
Successivamente lanciamo il seguente comando:
sudo cp/etc/default/grub /etc/default/grubbackup
cp
è l'abbreviazione della parola inglese "copy", con l'istruzione precedente abbiamo indicato al terminale di eseguire una copia chiamata grubbackup
del file grub
da posizionare all'interno della cartella /etc/default/
.
La destinazione del backup non è vincolante e può essere selezionata a seconda delle proprie esigenze, si può quindi scegliere di conservare il backup nella home
directory o magari indicare un supporto USB cosi da essere sicuri di avere sempre il file a portata di mano.
Ultimato il backup possiamo procedere alla modifica del file di configurazione. Si tratta di un'operazione alla portata degli utenti alle prime armi ma è necessario porre attenzione alla stringa di testo da modificare, diversamente si rischia di compromettere il corretto funzionamento del boot loader e l'avvio del sistema.
Ora spostiamoci nuovamente nel Terminale e tramite l'editor di testo nano apriamo il file grub
collocato nella cartella /etc/default/
:
sudo nano/etc/default/grub
Se nano non è presente nel sistema provvediamo ad installarlo tramite il gestore di pacchetti APT:
sudo apt install nano
Non appena il file di configurazione di grub viene aperto cerchiamo la direttiva GRUB_TIMEOUT
e cambiamo il suo valore da GRUB_TIMEOUT=10
a GRUB_TIMEOUT=2
, cosi da ridurre il tempo di attesa da 10 secondi a 2.
Successivamente salviamo la modifica effettuata tramite la combinazione di tasti CTLR+O
e chiudiamo il file con CTRL+X
.
Infine è necessario aggiornare la sessione di GRUB cosi da confermare in modo definitivo le modifiche eseguite. Per fare ciò torniamo al Terminale e digitiamo:
sudo update-grub
Se all'interno dell'output di risposta del boot loader non sono presenti degli errori allora si ha la conferma che la procedura è andata a buon fine.