D.3. Installazione di Debian GNU/Linux da un sistema Unix/Linux esistente

In questa sezione viene spiegato come installare Debian GNU/Linux a partire da un sistema Unix o Linux esistente, senza utilizzare l'installatore a menu come illustrato nel resto del manuale. Questo HOWTO sul “cross-install” è stato richiesto da utenti di altre distribuzioni, come Red Hat, Mandrake e SUSE, che vogliono provare a Debian GNU/Linux. Viene data per acquisita da parte dell'utente una minima familiarità con i comandi *nix e con la navigazione del file system. In questa sezione, $ indica un comando da inserire nel sistema attualmente in uso all'utente, mentre # si riferisce a un comando da inserire nell'ambiente chroot di Debian.

Una volta che il nuovo sistema Debian è stato configurato a proprio piacimento, si può procedere alla migrazione dei dati esistenti e poi all'uso quotidiano. Si tratta quindi di un'installazione che non blocca, nemmeno momentaneamente, l'uso del sistema, inoltre è un modo ingegnoso per gestire hardware che potrebbe avere problemi con i normali metodi di avvio o installazione.

D.3.1. Primi passi

Usando gli strumenti per il partizionamento disponibili, ripartizionare, secondo le proprie necessità, il disco fisso creando almeno un file system e una partizione di swap. Per un ambiente puramente testuale sono necessari 350 MB, 1 GB se si intende installare X (ancora di più se si installa un ambiente desktop come GNOME o KDE).

Poi creare dei file system sulle partizioni appena realizzate. In questo esempio si crea un file system ext3 sulla partizione /dev/hda6 (in seguito questa partizione è usata come root):

# mke2fs -j /dev/hda6

Per creare un file system ext2, basta omettere l'opzione -j.

Inizializzare e attivare lo swap (sostituire il numero della partizione con quello della partizione destinata allo swap per Debian):

# mkswap /dev/hda5
# sync; sync; sync
# swapon /dev/hda5

Montare una partizione come /mnt/debinst (il punto di installazione, diventerà il file system di root / del nuovo sistema). Il nome del mount point è arbitrario, quello scelto è utilizzato da qui in avanti.

# mkdir /mnt/debinst
# mount /dev/hda6 /mnt/debinst

Nota

Nel caso si voglia avere delle parti del filesystem (p.e. /usr) montate da delle partizioni separate è necessario creare e montare manualmente queste directory prima di procedere con la prossima fase.

D.3.2. Installazione di debootstrap

Lo strumento usato dall'installatore Debian, e che è considerato il mezzo ufficiale per installare un sistema Debian di base, è debootstrap. Utilizza wget e ar, ma a parte questi programmi ha bisogno solo di /bin/sh e degli strumenti Unix/Linux di base[17]. Si installi wget e ar in caso non siano già presenti sul sistema in uso, poi scaricare e installare debootstrap.

Un'ulteriore possibilità è installare debootstrap manualmente seguendo questa procedura. Creare una cartella di lavoro in cui estrarre il .deb:

# mkdir work
# cd work

Il binario di debootstrap si trova nell'archivio Debian (si faccia attenzione a scegliere il file adatto alla propria architettura). Scaricare il pacchetto .deb di debootstrap dal pool, poi copiarlo nella cartella di lavoro ed estrarre i file. Servono i privilegi di root per installarli.

# ar -x debootstrap_0.X.X_all.deb
# cd /
# zcat /full-path-to-work/work/data.tar.gz | tar xv

D.3.3. Esecuzione di debootstrap

Quando viene lanciato, debootstrap è in grado di scaricare i file necessari direttamente dall'archivio. Si può sostituire ftp.it.debian.org/debian, utilizzato nell'esempio sottostante, con un qualsiasi mirror dell'archivio Debian, meglio se geograficamente vicino. Un elenco dei mirror è disponibole presso: http://www.debian.org/misc/README.mirrors.

In caso si abbia un CD Debian GNU/Linux etch montato su /cdrom, si può sostituire l'URL http con l'URL file:/cdrom/debian/.

Nel comando debootstrap sostituire ARCH con uno dei seguenti: alpha, amd64, arm, hppa, i386, ia64, m68k, mips, mipsel, powerpc, s390 o sparc.

# /usr/sbin/debootstrap --arch ARCH etch \
     /mnt/debinst http://ftp.us.debian.org/debian

D.3.4. Configurazione del sistema di base

Ora sul disco c'è un vero sistema Debian, seppur minimale. Eseguire chroot:

# LANG=C chroot /mnt/debinst /bin/bash

Dopo l'operazione di chroot potrebbe essere necessario impostare il terminale con uno compatibile con il sistema Debian di base, per esempio:

# export TERM=xterm-color

D.3.4.1. Montare le partizioni

Adesso è necessario creare /etc/fstab.

# editor /etc/fstab

Segue un esempio che si può adattare secondo le proprie necessità:

# /etc/fstab: static file system information.
#
# file system    mount point   type    options                  dump pass
/dev/XXX         /             ext3    defaults                 0    1
/dev/XXX         /boot         ext3    ro,nosuid,nodev          0    2

/dev/XXX         none          swap    sw                       0    0
proc             /proc         proc    defaults                 0    0

/dev/fd0         /media/floppy auto    noauto,rw,sync,user,exec 0    0
/dev/cdrom       /media/cdrom  iso9660 noauto,ro,user,exec      0    0

/dev/XXX         /tmp          ext3    rw,nosuid,nodev          0    2
/dev/XXX         /var          ext3    rw,nosuid,nodev          0    2
/dev/XXX         /usr          ext3    rw,nodev                 0    2
/dev/XXX         /home         ext3    rw,nosuid,nodev          0    2

Per montare tutti i file system specificati nel proprio /etc/fstab, si esegua mount -a, mentre per montarli singolarmente si usi:

# mount /path   # per esempio:  mount /usr

Nei sistemi Debian più recenti i punti di mount per i supporti rimovibili sono in /media, per compatibilità si possono tenere dei link simbolici in /. Creare i link in base alle proprie necessità, per esempio:

# cd /media
# mkdir cdrom0
# ln -s cdrom0 cdrom
# cd /
# ln -s media/cdrom

È possibile montare il file system proc più volte e in posizioni arbitrarie, ma è consuetudine farlo su /proc. Se non si esegue mount -a, prima di continuare assicurarsi di montare proc:

# mount -t proc proc /proc

Adesso il comando ls /proc dovrebbe mostrare una directory con dei file. Se non funziona, si dovrebbe essere in grado di montare proc da fuori della chroot:

# mount -t proc proc /mnt/debinst/proc

D.3.4.2. Configurazione del fuso orario

Una opzione all'interno del file /etc/default/rcS determina se il sistema deve interpretare l'orologio hardware come impostato su UTC oppure sull'ora locale. I seguenti comandi permettono di impostare questa opzione e di scegliere il proprio fuso orario.

# editor /etc/default/rcS
# tzconfig

D.3.4.3. Configurazione della rete

Per configurare la rete, si deve modificare /etc/network/interfaces, /etc/resolv.conf, /etc/hostname e /etc/hosts.

# editor /etc/network/interfaces

Alcuni esempi banali da /usr/share/doc/ifupdown/examples:

######################################################################
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
# See the interfaces(5) manpage for information on what options are
# available.
######################################################################

# We always want the loopback interface.
#
auto lo
iface lo inet loopback

# To use dhcp:
#
# auto eth0
# iface eth0 inet dhcp

# An example static IP setup: (broadcast and gateway are optional)
#
# auto eth0
# iface eth0 inet static
#     address 192.168.0.42
#     network 192.168.0.0
#     netmask 255.255.255.0
#     broadcast 192.168.0.255
#     gateway 192.168.0.1

Gli indirizzi dei name server e le direttive search vanno inseriti in /etc/resolv.conf:

# editor /etc/resolv.conf

Un semplice esempio di /etc/resolv.conf:

search hqdom.local
nameserver 10.1.1.36
nameserver 192.168.9.100

Inserire l'hostname del proprio sistema (da 2 a 63 caratteri):

# echo DebianHostName > /etc/hostname

E un semplice /etc/hosts con supporto IPv6:

127.0.0.1 localhost DebianHostName

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

In presenza di più schede di rete, si dovrebbero disporre i nomi dei driver nel file /etc/modules nell'ordine desiderato. In tal modo, durante l'avvio ad ogni scheda verrà associato il nome di interfaccia che ci si aspetta (eth0, eth1, etc.).

D.3.4.4. Configurazione di Apt

Debootstrap crea un file /etc/apt/sources.list molto semplice che permette l'installazione di altri pacchetti. Comunque si possono anche aggiungere ulteriori sorgenti, per esempio per i pacchetti sorgente e gli aggiornamenti alla sicurezza:

deb-src http://ftp.us.debian.org/debian etch main

deb http://security.debian.org/ etch/updates main
deb-src http://security.debian.org/ etch/updates main

Ricordarsi di eseguire aptitude update dopo aver modificato il file sources.list.

D.3.4.5. Configurazione del pacchetto locales e della tastiera

Per utilizzare una localizzazione diversa da quella inglese, installare e configurare il pacchetto locales. Si raccomanda l'uso di un locale UTF-8.

# aptitude install locales
# dpkg-reconfigure locales

Per configurare la tastiera (se necessario):

# aptitude install console-data
# dpkg-reconfigure console-data

Notare che la tastiera non può essere impostata quando si è all'interno della chroot, sarà possibile configurarla al riavvio successivo.

D.3.5. Installazione di un kernel

Nel caso si intenda fare il boot nel nuovo sistema, servono un kernel Linux e un boot loader. I kernel pacchettizzati disponibili si trovano con:

# apt-cache search linux-image

Se si intende usare un kernel pre-impacchettato, può essere consigliabile creare il file di configurazione /etc/kernel-img.conf prima dell'installazione. Questo è un esempio di configurazione:

# Kernel image management overrides
# See kernel-img.conf(5) for details
do_symlinks = yes
relative_links = yes
do_bootloader = yes
do_bootfloppy = no
do_initrd = yes
link_in_boot = no

Informazioni dettagliate su questo file e sulle diverse opzioni si possono trovare nella pagina man relativa al file, disponibile dopo l'installazione del pacchetto kernel-package. Si raccomanda di verificare che i valori riportati siano adatti al proprio sistema.

Si può quindi installare pacchetto con il kernel prescelto usando il nome del pacchetto.

# aptitude install linux-image-2.6.18-arch-etc

Se non si crea il file /etc/kernel-img.conf prima di installare un kernel pre-impacchettato, durante l'installazione del pacchetto potrebbero essere poste alcune domande che fanno riferimento proprio a quel file.

D.3.6. Configurazione del boot loader

Per rendere avviabile il sistema Debian GNU/Linux, si deve configurare il boot loader in modo da caricare il kernel installato con la nuova partizione di root. Si noti che debootstrap non installa un boot loader, si può installare un boot loader tramite aptitude dall'interno della chroot Debian.

D.3.7. Ritocchi finali

Come già detto in precedenza, al termine dell'installazione si dispone di un sistema decisamente basilare. Per rendere il proprio sistema più completo c'è un modo semplice per installare tutti i pacchetti con priorità “standard”:

# tasksel install standard

Ovviamente è possibile usare aptitude per installare dei pacchetti individuali.

Al termine dell'installazione in /var/cache/apt/archives/ sono presenti i pacchetti scaricati. Si possono cancellare e quindi liberare un po' di spazio usando:

# aptitude clean



[17] Questi includono le principali utility GNU e comandi come sed, grep, tar e gzip.