Knoppix Hacks

Ci sono dei libri che vale la pena comprare anche se sono in lingua inglese e vanno ordinati su Amazon.
Uno di questi è Knoppix Hacks di Kyle Rankin, pubblicato da O’Reilly. In 314 pagine Rankin è riuscito a scrivere una “summa” dei possibili utilizzi di Knoppix, la distribuzione Debian-based creata da Klaus Knopper.
Dopo averlo letto posso dire che i capitoli migliori, a mio avviso, sono il 5 “Put Knoppix in your toolbox” e il 6 “Repair Linux”.


In “Put Knoppix in your toolbox” viene spiegato ad esempio come creare un router, come mettere in piedi un file server d’emergenza con Samba, come realizzare un server DHCP e un DNS con Bind. In “Reapir Linux” Rankin fornisce invece dei consigli pratici su come riparare Lilo o Grub, come recuperare partizioni e filesystem corrotti e addirittura ripristinare un kernel funzionante utilizzandone uno contenuto nella Knoppix.

Tra tutti gli hacks presentati uno veramente efficace riguarda l’installazione del noto boot loader Grub su una distribuzione che non lo abbia installato di default. L’hack è denominato appunto “Install grub on a System without grub“.
Utilizzando Slackware 10.1 ho sempre lasciato Lilo come boot loader di default. Pur essendo semplice Lilo ha come inconveniente la necessità di essere reinstallato ogni volta che si aggiorni il kernel con un nuovo. Grub invece ha un file di testo menu.lst che può essere modificato con un qualsiasi editor di testi per selezionare il kernel da caricare in memoria.
Con Knoppix è possibile installare grub in una distro che non abbia i binari del boot loader installati come per esempio la distribuzione di Volkerding.


Supponendo di avere installato Slackware in /dev/hda1, possiamo tranquillamente fare il boot con il cd-rom di Knoppix inserito.
Una volta caricata Knoppix apriamo un terminale e montiamo la partizione della nostra Slackware in /mnt/hda1 con opzioni di lettura e scrittura


knoppix@tty1[knoppix]$ sudo mount -o rw /dev/hda1 /mnt/hda1



spostiamoci in /mnt/hda1:

knoppix@tty1[knoppix]$ cd /mnt/hda1



Creiamo la directory per grub all’interno di /boot


knoppix@tty1[knoppix]$ sudo mkdir boot/grub




Copiamo lo script che permette a grub di trovare i kernel avviabili in /boot

knoppix@tty1[knoppix]$ sudo cp /sbin/update-grub ./




A questo punto dobbiamo cambiare la root indicando /mnt/hda1 come nuova root e avviare update-grub:

knoppix@tty1[knoppix]$ sudo chroot /mnt/hda1 /update-grub



Con quest’ultimo comando grub-update chiederà se creare un file menu.lst. Dando una risposta affermativa grub cercherà i kernel presenti in boot e creerà le giuste entries in menu.lst.


A questo punto potremo semplicemente lanciare grub-install specificando dove vogliamo sia installato il boot loader, nel nostro caso di esempio basterà dare il comando:


knoppix@tty1[knoppix]$sudo grub-install –root-directory=/mnt/hda1 /dev/hda

Con questo comando non avremo bisogno di effettuare un chroot ma diremo a grub che la nostra directory radice è /mnt/hda1 e di installarsi nel Master Boot Record (MBR).


Ovviamente le istruzioni fornite da Rankin possono essere prese ad esempio per effettuare installazioni di grub rispondenti alle proprie esigenze anche su distribuzioni diverse da Slackware.