Project

General

Profile

Installare una versione personalizzata di Debian su una chiavetta USB

Installare una Debian su una chiavetta USB è relativamente semplice, grazie all'uso di deboostrap; tutto quello che serve è avere una macchina già installata con Debian su cui utilizzare la chiavetta per costruire il sistema, se la macchina non dispone di deboostrap basterà installarlo con:

apt-get install debootstrap

Nel seguito si farà conto che la chiavetta sia vista sul sistema di costruzione come /dev/sda, si verifichi che il sistema la riconosca effettivamente (si dà per scontato che esso sia configurato correttamente per utilizzare chiavette USB).

Partizionamento e sistema di base

Il primo passo è ripartizionare la chiavetta, si possono utilizzare due partizioni (una per /boot e una per la radice, o una unica partizione, per semplificare utilizzeremo questa ultima opzione. Per partizionare si può usare il comando preferito, le opzioni sono molte: fdisk, cfdisk, parted, ecc.

Una volta partizionata la chiavetta occorrerà crearvi sopra un filesystem, per ridurre gli accessi (che degradano la chiavetta) il filesystem più indicato è ext2, quindi nell'ipotesi di partizione unica lo creeremo con:

mkfs.ext2 /dev/sda1

Una volta creato il filesystem dovremo montarlo sotto /mnt in maniera opportuna per poterci lavorare; per far questo basta:

mkdir /mnt/build
mount /dev/sda1 /mnt/build/

A questo punto ci viene in aiuto deboostrap che ci consente di installare in maniera automatica un sistema base nella chiavetta, basterà eseguire il comando:

debootstrap --arch i386 sarge /mnt/build

che installa una Debian Sarge (si può specificare anche sid o testing). Il programma inizierà le sue operazioni, che durano un certo tempo, dando luogo ad un output del tipo:

I: Retrieving Release
I: Retrieving Packages
I: Validating Packages
I: Checking component main on http://ftp.debian.org/debian...
I: Extracting base-files...
I: Extracting base-passwd...
...
I: Installing core packages...
I: Unpacking required packages...
I: Configuring required packages...
I: Installing base packages...
I: Base system installed successfully.

Una volta installato il sistema base occorrerà completare la configurazione per permettere alla chiavetta di essere usata come disco principale per l'avvio, per farlo la maniera più semplice è quella di entrare nella stessa con un chroot; facendo:

chroot /mnt/build

e da qui in avanti tutti i comandi faranno riferimento alla gabbia chroot realizzata nella chiavetta.

Configurazione del sistema sulla chiavetta

Il primo passo è quello di impostare le sorgenti di APT, basterà creare il file /etc/apt/sources.list, il cui contenuto sarà il seguente:

deb http://ftp.it.debian.org/debian/ sarge main contrib
deb http://security.debian.org/ sarge/updates main contrib

e si potrà verificare il funzionamento del tutto installando gli eventuali aggiornamenti con i comandi:

apt-get update
apt-get upgrade
apt-get clean

in cui l'ultimo è usato per pulire la cache dei pacchetti.

Il passo successivo è quello di creare un /etc/fstab opportuno, dato che la chiavetta si degrada con le operazioni di scrittura, è opportuno minimizzare le stesse, questo prevede l'uso dell'opzione di montaggio noatime e di directory temporanee in RAM; un esempio del contenuto di questo file è il seguente:

/dev/sda1 /             ext2    defaults,errors=remount-ro,noatime 0    0
proc    /proc           proc    defaults                        0       0
tmpfs   /etc/network/run tmpfs  defaults,noatime                0       0
tmpfs   /tmp            tmpfs   defaults,noatime                0       0
tmpfs   /var/lock       tmpfs   defaults,noatime                0       0
tmpfs   /var/log        tmpfs   defaults,noatime                0       0
tmpfs   /var/run        tmpfs   defaults,noatime                0       0
tmpfs   /var/tmp        tmpfs   defaults,noatime                0       0
tmpfs   /home           tmpfs   defaults,noatime                0       0

e si potrà poi verificare che è a posto montando le varie directory. Si monti sempre /proc, dato che questo servirà per le successive installazioni, con:

mount /proc

Inoltre dato che /etc/mtab viene scritto frequentemente degradando la chiavetta, si abbia cura di rimuoverlo e sostituirlo con un link a /proc/mounts che contiene le stesse informazioni:

rm /etc/mtab
ln -s /proc/mounts /etc/mtab

Il passo successivo è installare il kernel, ma prima occorre creare tutti i file di dispositivo necessari (dato che deboostrap ne crea solo una piccola parte; questo si fa con:

cd /dev
./MAKEDEV generic

dopo di che si potrà installare il kernel con:

apt-get install kernel-source-2.6-386
apt-get clean

Infine qualora si voglia effettuare un backup della nostra chiavetta tutto quello che servirà è crearne una immagine usando dd, con:

dd if=/dev/sda of=debusb.img

che potrà essere ripristinata su un'altra chiavetta (delle stesse dimensioni, o maggiori) con:

dd if=debusb.img of=/dev/sda