Prendiamo fiato e immergiamoci nei centri nevralgici del sistema per esplorarne ogni aspetto, anche quelli più nascosti. Dai meandri del kernel alla gestione dei servizi, fino alla configurazione del sistema di avvio. Da oggi in poi il PC non avrà più
(pagina 7 di 9)
Il bootloader è il programma che permette
di caricare il sistema operativo
subito dopo l'accensione della macchina.
Lilo è il bootloader “storico” di
GNU/Linux ma diverse distribuzioni, ormai,
preferiscono installare di default
Grub: più potente e flessibile del primo.
In questa sezione, quindi, esploreremo le
opzioni messe a disposizione da Grub, fornendo
le informazioni di base e indicando,
allo stesso tempo, qualche piccolo
trucco per gestire al meglio il caricamento
di GNU/Linux.
La costruzione del menu di boot
Innanzitutto, vediamo come è fatto Grub
seguendo il tutorial “Una seconda distro
al boot”, il quale spiega in modo dettagliato
come aggiungere una distribuzione
al menu di avvio del PC, in pratica la configurazione
di un sistema dualboot con
Grub. Vogliamo provare gli aggiornamenti
giornalieri di Debian GNU/Linux Sid o Arch Linux , senza dover rinunciare
alla nostra distribuzione preferita?
È il momento giusto per vedere come si
fa. Per chiarezza, nel tutorial partiamo
dal presupposto che la directory di Grub
(/boot/grub) si trovi all'interno della quinta
partizione del primo hard disk “hd0,4”,
secondo la notazione di Grub (vedi riquadro
“Come Grub identifica le partizioni”).
Ricordiamo, infine, che nella
configurazione di default di Ubuntu per
accedere al menu di Grub all'avvio del
PC bisogna premere il tasto “Esc”.
Un bootloader troppo generoso
All'avvio del PC Grub mette a nostra disposizione
una vera e propria shell attraverso
la quale è possibile inserire direttamente
comandi e provare nuove configurazioni, senza dover metter mano
al file menu.lst. Questo tool è molto
comodo ma, spesso, rende il sistema
poco sicuro. Questo perché, ottenuto
l'accesso alla shell, qualsiasi utente può
leggere il contenuto dei file sull'hard disk
con i permessi di root; come se non
bastasse, nella configurazione di default
di Grub non ci sono restrizioni all'avvio
in modalità recupero: un
qualunque utente, dunque, può fare tutto
ciò che desidera. Vediamo quindi come
proteggere Grub mediante l'uso di
una password.
Come Grub indica le partizioni
I dispositivi corretti per la
configurazione del bootloader
In Grub i dispositivi (hard disk e partizioni)
vengono identificati mediante una particolare
notazione. I nomi dei dispositivi devono
essere inseriti all'interno di una
coppia di parentesi tonde “(“ e “)”. Successivamente,
bisogna indicare il tipo di
dispositivo: hdper hard disk (senza alcuna
distinzione tra SCSI e IDE), fd per il
floppy. Infine, è necessario scrivere la posizione
numerica del disco rigido e quella
della partizione alla quale si fa riferimento,
iniziando a contare da zero. Per fare
degli esempi, quindi, la prima partizione
del primo hard disk in Grub è identificata
come (hd0,0), la terza partizione del secondo
disco come (hd1,2) e così via.
Una seconda distro al boot
Configuriamo Grub per poter avviare, al bisogno, un'altra distribuzione di “prova”
Il nome della distro
Apriamo il file di configurazione
di Grub con il solito editor nano:
“sudo nano /boot/grub/menu.lst”. Posizioniamo
il cursore alla fine del file. A questo
punto, in una nuova riga scriviamo la parola
“title”, seguita dal nome da assegnare alla
voce che apparirà nel menu di Grub e che
servirà per avviare la nuova distribuzione.
Infine, andiamo a capo.
Il Kernel da caricare
Digitiamo “root“ seguito dalla
partizione in cui sono memorizzati
i file di Grub (solitamente si tratta della
partizione di root della prima distro o
quelle di boot delle altre). Andiamo a capo
e scriviamo “kernel“, dopodiché aggiungiamo
il percorso del kernel della nuova
distro (il file, di solito, inizia con “vmlinuz”
e si trova nella directory di /boot).
La partizione di root
Sulla stessa riga inseriamo la
partizione di root della nuova
distro seguendo la normale notazione e
scriviamo poi “ro” (avvio della partizione
in sola lettura). A questo punto, andiamo
a capo e inseriamo “initrd” ed il percorso
del file di initrd (estensione “.img”)
sempre con la notazione di Grub.
Nell'ultima riga scriviamo solo “boot”.
Proteggiamo grub con una password
Per proteggere Grub, bisogna inserire in menu.lst la password cifrata
La shell di Grub restituisce la password cifrata
Cominciamo stabilendo la password da
usare e rendiamola illeggibile (ciò per
evitare che qualcuno possa impadronirsene
semplicemente leggendo il file
/boot/grub/menu.lst). Apriamo una console
ed entriamo nella shell di Grub con
il comando “sudo grub”. Al prompt scriviamo
“md5crypt” e premiamo Invio.
Inseriamo, quindi, una password a nostra
scelta: immediatamente Grub creerà una
versione cifrata (riga “Encrypted:”) di
questa. Selezioniamo la password
criptata con il mouse e copiamola:
per farlo, sia in Gnome Terminal che
in Konsole, andiamo sul menu “Modifica”
e clicchiamo su “Copia”. Infine,
usciamo dalla shell di Grub eseguendo
il comando “quit”.
Menu.lst sotto stretta sorveglianza
A questo punto, non resta che modificare
opportunamente il file menu.lst.
Apriamolo con “sudo nano /boot
/grub/menu.lst” e, nella sezione “password”
all'inizio del file, aggiungiamo la riga
seguente: “password --md5”. Inoltre,
senza andare a capo, inseriamo la
password cifrata dal menu “Modifica/
Incolla” di Konsole o Gnome Terminal. A questo punto l'accesso
alla shell di Grub durante il boot è bloccato.
Non resta che “chiudere a chiave”
le voci presenti nel menu di Grub che
non vogliamo mettere a disposizione degli
estranei. Per impedire l'avvio di Ubuntu
in modalità recupero, ad esempio, cerchiamo
all'interno di menu.list la riga
che comincia con “lockalternative” e
modifichiamola in “lockalternative=true”.
Salviamo il file di configurazione e chiudiamo
l'editor, infine, eseguiamo in console
il comando “sudo update-grub”
per rendere attive le modifiche. A questo
punto, la blindatura si può dire conclusa:
per avere accesso alla shell di Grub
e per poter entrare al boot in modalità
recupero, non dovremo fare altro che
premere “p” nella schermata di avvio del
boot loader ed inserire la password (purtroppo
in chiaro questa volta, quindi attenti!).
I parametri del Kernel
Le direttive più importanti
da passare tramite Grub
Nella linea “kernel” di menu.lst abbiamo
inserito i parametri “root=” e “ro”. Quali
sono le altre opzioni che possiamo inserire
nelle voci del menu di avvio? Ecco qualche
esempio. Con “acpi=off” possiamo disabilitare
il sistema ACPI al boot (utile
in caso di problemi di compatibilità
hardware), mentre con “quiet” diminuiamo
drasticamente il numero di messaggi
che compaiono sullo schermo durante
l'avvio del PC. Grazie a “vga=”, infine, è
possibile indicare al BIOS la risoluzione
video da adottare in console. Per ulteriori
approfondimenti, un buon testo in italiano
sull'argomento è disponibile in rete all'indirizzo
seguente: www.techtown.it/ public/
html/InfoLinux/MyLinuxsu60.html.
La shell di Grub
Tutti i comandi disponibili
Per accedere alla shell di Grub, durante i
pimi istanti di avvio del PC, bisogna premere
“c”. A questo punto i comandi che
possiamo inserire sono numerosi. Innanzitutto,
usiamo “help”, che fornisce
l'elenco di quelli disponibili. Tra questi c'è
“find”, che consente di stabilire in quali
partizioni è presente un file specifico (ad
esempio, “find /etc/passwd”); “cat” che
mostra a schermo il contenuto di un file
(“cat (hd0,0)/etc/profile”). I comandi sono
un sottoinsieme di quelli disponibili in menu.
lst, quindi dalla shell potremo caricare
un kernel (comando “kernel”), avviare il
sistema operativo (“boot”) e così via.
Amministrare gli utenti
Come funziona il sistema che si occupa della loro gestione, i file responsaili e la tecnica delle shadow password. Questo e altro ancora per diventare padroni assoluti del computer