Conoscere grub: opzioni avanzate del potente bootloader


Tutte le volte che accendiamo la nostra gnu/linux box, molto probabilmente appariranno all'avvio delle scritte come

grub loading stage 1.5...

Bè, se la risposta è sì allora significa che nell'MBR del vostro hard disk è installato l'ottimo bootloader GRUB. Un bootloader è un piccolo programma che gestisce l'avvio del computer e, tra l'altro, permette di scegliere il sistema da far partire.
Diagramma della sequenza di boot del computer

In questa guida vedremo per prima cosa come installare e configurare GRUB ed infine delle opzioni avanzate e trucchetti per uscire dalle situazioni pericolose.

\FUNZIONAMENTO DI GRUB/

Prima di conoscere i comandi di GRUB è necessario conoscere almeno la sua struttura.
Grub è suddiviso in 3 pezzi, detti stage. Analizziamoli.

Stage_1: è contenuta nel mbr, fa partire le altre stage, caricate nella partizione montata come /boot
Stage_1.5: intermezzo tra le due stage.
Stage_2: è la stage che ci permette di scegliere il sistema di avvio e quella che contiene la piccola riga di comando.

Un file di configurazione importantissimo di grub è menu.lst, che contiene il menù di avvio dei sistemi. Andrà modificato più volte per "farci comparire" i vari sistemi. Lo potete trovare in /boot/grub/menu.lst

\INSTALLARE GRUB/

Per installare grub basta lanciare il comando

#grub-install --no-floppy /dev/hda

Questo installerà grub nel device /dev/hda (primo disco IDE). Se usate SATA, SCSI o USB, scrivere /dev/sda.

Se volete ripristinare il grub installato dovete seguire, invece, questi altri passi:

  1. Avviare un LiveCD
  2. Entrare in una shell
  3. Creare la cartella /mnt/root con il comando mkdir -p /mnt/root
  4. Montare il disco lanciando il comando mount /dev/hda1 /mnt/root (vale lo stesso discorso di prima)
  5. Cambiare la partizione di root del LiveCD con chroot /mnt/root
  6. Lanciare il comando grub-install --no-floppy /dev/hda

\CONFIGURARE MENU.LST/

Come dicevamo prima, il file di configurazione più importante del nostro amato grub è menu.lst. Analizziamola una e vediamo come fire per aggiungere altri sistemi.

default 0 Il kernel di default viene scelto dall'utente

color light-gray/blue yellow/blue I colori di grub

title Prima Distribuzione (puoi scrivere quello che vuoi) il titolo del primo sistema

root (hd0,2) Il disco che la contiene

kernel /boot/mio-kernel root=/dev/hda1 ro vga=791 Il kernel della distribuzione

boot

Se nel blocco di ogni kernel inserite, prima del comando boot, il comando savedefault e modificate il comando default 0 in default save, all'avvio Grub (dopo il timeout) sceglierà il kernel che avete scelto nel precedente avvio.

Aggiungere un sistema windows

Basta aggiungere le seguenti righe!
title Windows
rootnoverify (hd1,0)
makeactive
chainloader +1
boot

Il primo comando (rootnoverify) dice  qual
è la partizione di Windows (nel nostro caso la prima partizione del
secondo disco è hd1,0, corrispondente, in Gnu/linux, a /dev/hdb1),
il secondo comando, invece, rende la partizione attiva (condizione
essenziale per Windows), il terzo comando istruisce, sostanzialmente,
sul fatto di leggere la prima traccia di tale partizione, e l'ultimo
comando fa si che il sistema parta, eseguendo in ordine tutte le scelte
precedenti.

Aggiungere un sistema FreeBSD

Ancora più facile!
title FreeBSD
root (hd1,1,a)
kernel /boot/loader
Ed ecco che la voce FreeBSD apparirà funzionante nel nostro GRUB!


Installare GRUB su un floppy


Formattiamo il floppy usando il filesystem ext2:

# mkfs.ext2 /dev/fd0

montiamolo e creiamo una directory di nome grub:

# mount -t ext2 /dev/fd0 /media/floppy
# mkdir /media/floppy/grub

Copiamo i file di Grub ed il menu di avvio:

# cp /boot/grub/stage* /media/floppy/grub/
# cp /boot/grub/menu.lst /media/floppy/grub

Nota: di default il file menu.lst ha la voce savedefault sotto ogni kernel. Grub salva l'ultimo kernel avviato in /boot/grub/default . Se però avviamo da dischetto, Grub, che usa il menu.lst copiato da /boot/grub, vorrà salvare il default in /grub/default (su dischetto). Non trovandolo Grub si bloccherà con "error 15 file not found". Se non vogliamo modificare a mano il menu.lst del dischetto togliendo la voce savedefault da ogni kernel, dobbiamo copiare anche il file /boot/grub/default sul dischetto:

# cp /boot/grub/default /media/floppy/grub/

Ora smontiamo il floppy:

# umount /media/floppy

e installiamo lo stage1 nel mbr (del floppy):

# grub

e dalla shell di grub digitiamo i seguenti comandi:

> root (fd0)
> setup (fd0)
> quit

Fatto. Non ci resta che provare il nostro dischetto di avvio.

Usare una splashimage

Con Grub è possibile utilizzare un'immagine di sfondo per l'avvio del PC. Questa immagine deve essere a 640x480 pixel, con una profondità di soli 14 colori, in formato XPM (un formato immagine che è possibile modificare come un semplice testo) e deve essere compressa in formato gzip.

I modi con cui, partendo da un'immagine in png o jpeg, è possibile ottenere un'immagine con tali requisiti, sono fondamentalmente due. Si può decidere di utilizzare GIMP; aprendo l'immagine di partenza, questa deve essere ridimensionata a 640x480 ed i colori devono essere impostati (premendo ALT+I) a 14, quindi si deve provvedere a salvarla direttamente in /boot/grub con l'estensione .xpm.gz (generalmente splash.xpm.gz). Oppure si può decidere di utilizzare i seguenti comandi dalla shell:

$ su
- inserire la password di root -
# convert -geometry 640x480 -colors 14 wall.jpg splash.xpm
# gzip splash.xpm
# cp splash.xpm.gz /boot/grub

Per utilizzare lo splashimage appena creato è necessario aprire il file menu.lst ed inserire, dopo timeout:

splashimage=(hd0,0)/boot/grub/splash.xpm.gz

Tasti da premere per accedere a funzioni di GRUB

Opzioni avanzate di GRUB


Ed ora arriva il bello. Le opzioni di grub che vedremo sono IMPORTANTISSIME perchè permettono di uscire da un sacco di casini.

Single user mode


La single user mode permette di avviare una shell monoutente (root) senza rete che permette di facilitare le operazioni di manutenzione e troubleshooting. Si attiva aggiungendo alla riga del kernel l'opzione single

Emergency

La modalità emergency è simile alla SUM, tranne per il fatto che monta i filesystem locali in modalità sola lettura. Si attiva aggiungendo alla riga del kernel l'opzione emergency

Disattivare SELinux


Per disabilitare il sistema di sicurezza SElinux, basta aggiungere alla riga del kernel l'opzione selinux 0


Eseguire direttamente BASH


Per eseguire la shell bash (o sh) direttamente senza passare per init (non verrà caricato nessun servizio) bisogna aggiungere l'opzione alla riga del kernel init=/bin/bash o init=/bin/sh


Collegamenti esterni&ringraziamenti


http://guide.debianizzati.org/index.php/Guida_a_Grub
http://linux.p2pforum.it/wiki/GRUB
http://info2html.sourceforge.net/cgi-bin/info2html-demo/info2html?(grub.info.gz)Top
Tanto altro...

VERSIONE STAMPABILE


La nostra pagina su Twitter!