Bootloader e configurazione di Ubuntu GRUB Linux

Il GRUB Linux Bootloader è il bootloader più ampiamente utilizzato per Linux. Ogni aspirante utente di Linux trarrebbe vantaggio nell’apprendere di Ubuntu GRUB. In questo tutorial, imparerai cosa è GRUB, come funziona il processo di avvio e ti immergerai in diverse configurazioni utili di Ubuntu GRUB.

Immergiti per saperne di più.

Prerequisiti

Se desideri seguire questo tutorial, assicurati di avere un dispositivo Linux con GRUB come bootloader. Questo tutorial si baserà su Ubuntu 18.04.5 LTS, in esecuzione su una macchina virtuale su Oracle VirtualBox.

Comprensione del processo di avvio di Ubuntu GRUB

GRUB è un acronimo di Grand Unified Boot Loader ed è il componente primario e più importante per l’avvio del tuo dispositivo. GRUB è anche il bootloader più diffuso per Linux. Il tuo viaggio inizierà con la conoscenza di alcuni dettagli sul processo di avvio di GRUB.

Nel processo di avvio generale, il BIOS inizia invocando la fase di POST e quindi cerca il bootloader nel Master Boot Record (MBR).

Il MBR è l’informazione nel primo settore di qualsiasi disco rigido. Il MBR identifica dove si trova un sistema operativo. Le informazioni memorizzate nel MBR caricano (avviano) il sistema operativo nella RAM del dispositivo.

Questo articolo copre solo il lato MBR delle cose. Ma è anche possibile trovare dischi che utilizzano GPT, acronimo di GUID Partition Tables. GPT è migliore se si prevede di creare più di quattro partizioni, poiché un disco MBR può contenere al massimo 4 partizioni primarie.

Nella schermata sottostante, è possibile vedere un diagramma del processo di avvio. È possibile osservare che Ubuntu GRUB carica il kernel che hai scelto nella memoria principale: la Random Access Memory (RAM). Dopo che il kernel è stato caricato, gli utenti possono accedere al dispositivo.

The role of GRUB during the complete boot process in Linux

Confronto tra il boot loader di Ubuntu GRUB e LILO

Il mondo Linux ha tre principali boot loader: LILO, GRUB e GRUB2. GRUB2 è il bootloader più recente e primario nelle distribuzioni Linux. GRUB2 è il più utilizzato e mostrato in questo tutorial in quanto è il bootloader predefinito di Ubuntu, ma LILO ha comunque una presenza in Linux. In questa sezione, imparerai come si confrontano tra loro.

Altri bootloader Linux sono disponibili sul mercato, come GNU GRUB, che offre un eccezionale supporto per la gestione della memoria e un framework orientato agli oggetti. L’altro è SYSLINUX che è un bootloader leggero.

GRUB supporta l’avvio di più sistemi operativi. LILO, d’altra parte, può avviare solo un sistema operativo.

GRUB allows opting among multiple OS

Ubuntu GRUB funziona con Windows, Linux, Unix, macOS, BSD, Solaris, mentre LILO supporta principalmente i sistemi operativi Linux.

Se aggiorni il file di configurazione in LILO, allora LILO deve essere reinstallato nell’MBR. Se cambi le impostazioni di GRUB, non richiede la reinstallazione.

Selezione Di Diversi Kernel o Modalità di Recupero

Questa sezione mostrerà come selezionare un kernel durante l’avvio del dispositivo per il recupero da un kernel corrotto.

A kernel works as an interface between hardware and software. It controls all the processes that users run on the device.

Ecco i passaggi per selezionare un kernel utilizzando una VM in Oracle VirtualBox.

1. Accedi direttamente alla console del dispositivo Ubuntu utilizzando Oracle VirtualBox.

2. Riavvia la tua macchina Ubuntu utilizzando il comando di spegnimento come mostrato di seguito.

shutdown -r now

Una volta che il tuo dispositivo si riavvia, premi e tieni premuto Shift durante il caricamento di Ubuntu GRUB, e vedrai il menu del bootloader GRUB. Se non selezioni nulla, GRUB avvierà il sistema con il kernel predefinito e procederà con il processo di avvio.

Dovresti selezionare Opzioni avanzate per Ubuntu quando hai bisogno di avviare con un kernel diverso dal kernel predefinito. Oppure se incontri problemi nel sistema come corruzione dei file, caricamento errato del kernel.

GRUB loading process

4. Dopo aver selezionato le Opzioni avanzate per Ubuntu, comparirà un menu di avvio GRUB di Ubuntu. Nel menu, dovresti vedere diverse opzioni di kernel tra cui scegliere. Se non selezioni un’opzione, verrà caricato per impostazione predefinita il primo kernel visualizzato.

Come puoi vedere nell’immagine qui sotto, ci sono due opzioni aggiuntive per ogni kernel: upstart e recovery.

  • (upstart): una sostituzione basata sugli eventi per il demone /sbin/init, che gestisce l’avvio di compiti e servizi durante l’avvio, li arresta durante lo spegnimento e li sorveglia mentre il sistema è in esecuzione.
  • (modalità ripristino): per recuperare il kernel da eventuali guasti nel sistema.
Selecting a kernel from the GRUB menu

5. Una volta effettuato l’accesso al dispositivo, il comando uname verifica se il kernel specificato è caricato. L’opzione -r stampa il nome del kernel.

uname -r 
Verifying the kernel from the console

Impostare il Sistema Operativo Predefinito

Ora che sei più familiare con GRUB, modificherai alcune opzioni di configurazione di GRUB. Inizierai configurando quale Sistema Operativo verrà caricato per impostazione predefinita.

1. Accedi al tuo dispositivo Ubuntu usando il tuo client SSH preferito.

2. Ora, elenca le voci del menu di avvio di GRUB eseguendo il comando awk come mostrato di seguito. Il comando awk visualizzerà tutte le voci memorizzate in /boot/grub/grub.cfg. Il contenuto del file verrà visualizzato sul terminale. Presta attenzione alle righe. Avrai bisogno del numero associato alla riga successiva, che inizia da zero, ovvero la linea Ubuntu è 0 e Ubuntu, con Linux 4.4.0-210-generic è 1.

awk -F\' '/menuentry / {print $2}' /boot/grub/grub.cfg
awk command filtering all the entries stored in /boot/grub/grub.cfg

3. Successivamente, modifica il file di configurazione di GRUB. Puoi fare affidamento su vi per modificare il file e cambiare il valore di GRUB_DEFAULT, ma usa il tuo editor preferito come desideri.

vi /etc/default/grub

Ora, imposta il valore di GRUB_DEFAULT al numero di riga della voce OS desiderata. Ricorda il comando awk che hai eseguito? Erano le voci del sistema operativo. Se imposti GRUB_DEFAULT su 0, la prima voce del sistema operativo nel menu di avvio di GRUB verrà avviata, se lo imposti su 1, il dispositivo avvia la seconda voce del sistema operativo per impostazione predefinita, e così via. Nella schermata sottostante, la prima voce del sistema operativo Ubuntu è impostata per avviarsi per impostazione predefinita.

Per impostazione predefinita, GRUB non attende nel menu di avvio e avvia immediatamente, in 0 secondi. Puoi cambiare questa impostazione di timeout cambiando il valore di GRUB_TIMEOUT. Il valore significherà il numero di secondi in cui il menu è visibile prima che inizi il boot. Se il valore è 5, il menu di avvio apparirà per 5 secondi in modo che tu possa selezionare quale sistema operativo desideri caricare quando il sistema si avvia.

Editing the GRUB configuration file

4. Una volta salvate le modifiche nel file di configurazione di GRUB, assicurati di eseguire il comando update-grub. Il comando update-grub prende il file di configurazione modificato e lo applica al sistema.

update-grub
Updating the GRUB configuration

Impostare l’immagine di sfondo in Ubuntu GRUB

La configurazione di GRUB non deve essere noiosa. Puoi aggiungere un po’ di sapore a GRUB aggiungendo un’immagine di sfondo al menu di GRUB. Puoi impostare le immagini come sfondo in GRUB con l’opzione GRUB_BACKGROUND. Segui i passaggi seguenti per personalizzare GRUB.

1. Modifica il file di configurazione di GRUB con vi, o il tuo editor di testo preferito, e aggiungi la riga GRUB_BACKGROUND come mostrato di seguito. In questo tutorial, l’immagine è memorizzata in una cartella home dell’utente chiamata UBUNTU, poiché GRUB viene eseguito come root, può accedere alle immagini in tutto il filesystem. Una volta modificato, salva il file di configurazione.

# Sintassi: GRUB_BACKGROUND=/percorso-all'immagine
GRUB_BACKGROUND=/home/ubuntu/shanky.jpeg

L’immagine del file shanky.jpeg era già presente nel sistema. Sostituisci quel nome con il nome del file che vuoi come immagine di sfondo.

2. Successivamente, dopo aver apportato le modifiche nel file di configurazione di GRUB, esegui il comando update-grub.

Updating the grub configuration file

3. Inoltre, verifica se l’immagine che hai aggiunto nel file Grub come sfondo funziona come previsto. Per verificare, riavvia la macchina e premi il tasto Shift mentre GRUB si sta caricando. Come puoi vedere di seguito, GRUB ha ora un’immagine di sfondo.

GRUB menu displaying the background image as specified in the grub configuration file.

Dual-booting with GRUB

Uno dei più grandi vantaggi di Ubuntu GRUB è che ti consente di scegliere tra Windows e Linux quando il tuo dispositivo si avvia: anche noto come dual booting. Il dual booting ti permette di utilizzare Linux e Windows contemporaneamente su un unico dispositivo e semplifica la vita degli ingegneri IT che lavorano su più sistemi operativi.

Entro l’inizio del 2021, lo script predefinito os_prober, che aggiunge automaticamente voci nel menu del sistema operativo, è stato disabilitato a causa di potenziali preoccupazioni per la sicurezza legate alla rilevazione automatica del sistema operativo. Puoi riattivare questa funzionalità tramite il seguente comando, a patto che tu sia a conoscenza dei sistemi operativi installati.

echo GRUB_DISABLE_OS_PROBER=false|sudo tee -a /etc/default/grub && sudo update-grub

Una volta configurato il dual boot sul tuo dispositivo, dovresti vedere una schermata simile al menu GRUB quando il tuo computer si avvia.

GRUB menu allows you to either login to Windows or Linux Instance

Conclusione

In questo tutorial hai appreso cos’è GRUB, e l’articolo ti ha introdotto al processo di avvio di GRUB.

Hai anche imparato come personalizzare alcune configurazioni di Ubuntu GRUB, caricare kernel diversi e persino appreso il concetto di dual booting.

Ora che hai una conoscenza approfondita di GRUB, quali sono alcune opzioni di configurazione che modificherai?

Source:
https://adamtheautomator.com/ubuntu-grub/