Configurazione del boot loader (GRUB)

La Bash di Linux è una potente shell a riga di comando, apprezzata per la sua versatilità e utilizzata per la gestione e l'automazione del sistema tramite script.
Rispondi
FrancyDotNet
Moderatore
Moderatore
Messaggi: 969
Iscritto il: 01/05/2024, 23:26

Configurazione del boot loader (GRUB)

Messaggio da FrancyDotNet »

:ugeek: Vi ricordo che per convenzione verranno utilizzati le seguenti indicazioni:
  • $ - il simbolo del dollaro indica che il comando potrà essere eseguito con i normali privilegi dell'utente.
  • # - il simbolo del cancelletto indica che il comando dovrà essere eseguito con privilegi di root oppure tramite l'utilizzo del comando sudo.
Per prima cosa apriamo il file /etc/default/grub con privilegi di amministratore e vedremo apparire le seguenti istruzioni:

Codice: Seleziona tutto

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL="console"

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE="640x480"

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID="true"

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

GRUB_SAVEDEFAULT="false"
export GRUB_COLOR_NORMAL="light-gray/black"
export GRUB_COLOR_HIGHLIGHT="magenta/black"
:geek: OK, ora analizziamo punto per punto le varie opzioni:
  • GRUB_DEFAULT: settato su saved viene selezionata l'ultima voce avviata. Inserendo i valori 0, 1, 2, 3, ecc.. verrà selezionata il numero della voce relativa del menù.
  • GRUB_TIMEOUT: specifica quanti secondi impostare il conto alla rovescia prima che il menù sparisca e venga avviato il sistema di default (di norma questo valore è settato su 10). Per annullare il conto alla rovescia inserire il valore -1.
  • GRUB_DISTRIBUTOR: Impostato dai distributori di GRUB sul loro nome identificativo, di solito viene utilizzato per generare i titoli delle voci di menu più informativi.
  • GRUB_HIDDEN_TIMEOUT: viene nascosto il menu di GRUB e viene lanciato il sistema predefinito allo scadere dei secondi impostati (consiglio 3 secondi o al massimo 5).
  • GRUB_HIDDEN_MENU_QUIET: Se impostato su true, non viene mostrato alcun conto alla rovescia relativo al valore GRUB_HIDDEN_TIMEOUT e lo schermo sarà vuoto.
  • GRUB_CMDLINE_LINUX_DEFAULT: questo parametro è spesso utilizzato per personalizzare l'avvio del sistema.
    • Per abilitare l'animazione di Plymouth modificare la voce con quiet splash
    • Per l'avvio standard modificare la voce con quiet
  • GRUB_CMDLINE_LINUX: qui vanno inseriti gli argomenti della riga di comando da aggiungere alle voci di menu per il kernel Linux.
  • GRUB_BADRAM: Se questa opzione è impostata, GRUB emetterà un comando badram per filtrare determinate regioni di RAM.
  • GRUB_TERMINAL: rimuovere il commento per disabilitare il terminale grafico e utilizzare quello testuale.
  • GRUB_BACKGROUND: /boot/grub2/themes/system/Geek2.jpg
  • export GRUB_COLOR_NORMAL: xxx (es. light-gray/black).
  • export GRUB_COLOR_HIGHLIGHT: xxx (es. magenta/black).
  • GRUB_GFXMODE: consente di impostare la risoluzione dello schermo al momento della visualizzazione del menu di GRUB (di solito 640x480).
  • GRUB_GFXPAYLOAD_LINUX: Se questa variabile è impostata, controlla la modalità video in cui si avvia il kernel Linux. Potrebbe essere impostato su uno dei seguenti valori:
    • text per forzare l'avvio del kernel Linux in modalità testo normale
    • keep per preservare la modalità grafica impostata utilizzando
    • gfxmode o uno qualsiasi dei valori consentiti per "gfxmode" per impostare una modalità grafica specifica
  • GRUB_FONT: /boot/grub2/unicode.pf2
  • GRUB_DISABLE_LINUX_UUID: rimuovere il commento per disabilitare la gestione degli UUID nei parametri del kernel.
  • GRUB_DISABLE_RECOVERY: è possibile assegnare a questa voce i soli valori true e false e, se impostata a true, nasconde da GRUB 2 le voci relative alla modalità recovery.
  • GRUB_INIT_TUNE: Riproduci un brano sull'altoparlante all'avvio di GRUB.
  • GRUB_SAVEDEFAULT: Se questa opzione è impostata su "true" quando viene selezionata una voce, questa viene salvarla come nuova voce predefinita per l'utilizzo da future esecuzioni di GRUB. Tuttavia questo comando è utile utile solo se la voce "GRUB_DEFAULT" è impostata su saved.
Ogni modifica apportata ai file di configurazione, affinché abbia effetto, necessita del comando da terminale: update-grub.
FrancyDotNet
Moderatore
Moderatore
Messaggi: 969
Iscritto il: 01/05/2024, 23:26

Re: Configurazione del boot loader (GRUB)

Messaggio da FrancyDotNet »

https://www.howtogeek.com/196655/how-to ... -settings/
https://wiki.debian.org/Grub
https://wiki.debian.org/GrubConfiguration



;) Un software che può aiutare è Grub Customizer.

:wrong: Attenzione, non ne sto incoraggiando l'utilizzo perchè :read_this: prima di tutto bisogna sapere cosa questo programma è in grado di fare e assumersi le proprie responsabilità!

:coool: Mi sembrava giusto segnalarlo perchè è davvero un programma ben fatto.
FrancyDotNet
Moderatore
Moderatore
Messaggi: 969
Iscritto il: 01/05/2024, 23:26

Re: Configurazione del boot loader (GRUB)

Messaggio da FrancyDotNet »

Recupero del boot loader

Può capitare che dopo un aggiornamento di Linux o di Windows (in particolar modo quando si installano le nuove build di Windows 10) all'avvio del computer possa comparire l'errore error: unknown filesystem seguito dalla voce grub rescue>.

In questo caso il boot loader GRUB ci mette a disposizione i comandi necessari per risolvere questo problema. Prima di tutto col comando ls verifichiamo la lista dei dischi e delle partizioni disponibili e poi col comando set vediamo di recuperare qualche indizio su quale disco era presente il boot loader. Successivamente lanciamo i comandi per avviare il nostro boot loader GRUB.

Codice: Seleziona tutto

set boot=(hd0,msdos*)
set prefix=(hd0,msdos*)/boot/grub
insmod normal
normal
Immagine

Sostituite gli asterischi col numero della partizione contenente il boot loader. Noterete che subito dopo aver inviato questi comandi verrà avviato GRUB. Attenzione, la procedura non è finita, in questo momento abbiamo solo effettuato un avvio manualmente.

Una volta avviato il sistema operativo aprite un terminale e scrivete update-grub per analizzare i dischi e trovare i sistemi operativi disponibili e scrivete grub-install /dev/sda per installare GRUB nel disco sda (in teoria in disco di avvio principale).



:question: Se non sapete come trovare il disco di boot non disperate esistono diversi modi per riparare ugualmente il boot loader danneggiato.

La prima soluzione (che si aggancia a quando riportato di sopra) prevede l'utilizzo di una LiveCD di Linux leggera (ad esempioPorteus o GParted), caricarla su una chiavetta USB e riavviare il pc.
Una volta avviata la distribuzione LiveCD portiamoci sul terminale e utilizziamo i seguenti comandi per trovare il disco di avvio:

Codice: Seleziona tutto

fdisk -l | grep '^/dev/[a-z]*[0-9]' | awk '$2 == "*"'
Con questo comando troveremo immediatamente il disco e la partizione del nostro boot loader. Ora noi, a mero scopo esemplificativo, supporremo di trovarlo nella partizione sda1.
Per verificare se il disco è leggibile e la struttura è quella corretta digitiamo:

Codice: Seleziona tutto

mount /dev/sda1 /mnt
ls /mnt
Dovremo trovare la struttura di boot con le cartelle tipiche: boot, dev, etc, proc, root e sys.

Immagine

Del tutto facoltativo, potremmo utilizzare in alternativa il programma GParted (attenzione perchè questo programma non è presente in tutte le distribuzioni LiveCD) per avere l'informazione in modo più immediato e semplice. Nella distribuzioni LiveCD sopra citate il programma GParted è già incluso. Una volta aperto il programma ci basterà seleziona il disco dal menu a tendina in alto a destra e verificare quando nella colonna Flag è presente la voce boot.

Immagine


Una volta reperita questa preziosa informazione possiamo riavviare il pc stavolta però senza il supporto della LiveCD e accediamo alla console grub rescue.
Ora sappiamo esattamente che il boot loader si trova nella partizione sda1 quindi per il GRUB sarà il disco HD0 e la partizione 1. Se per scrupolo volessimo verificare il contenuto della partizione ci basterà eseguire il comando ls (hd0,1)/ e ci verrà mostrato il contenuto della partizione.
Ora possiamo procedere a correggere il boot loader come riportato di sopra:

Codice: Seleziona tutto

set prefix=(hd0,1)/boot/grub
set root=(hd0,1)
insmod normal
normal
insmod linux
Immagine
Rispondi

Torna a “Bash”