Installazione di &debian; da un sistema Unix/Linux esistente
In questa sezione viene spiegato come installare &debian; 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;. 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.
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
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.
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
Questi includono le principali utility GNU e comandi come
sed, grep, tar e
gzip.
. 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
Esecuzione di debootstrap
Quando viene lanciato, debootstrap è in grado
di scaricare i file necessari direttamente dall'archivio. Si può
sostituire http.us.debian.org/debian,
utilizzato nell'esempio sottostante, con un qualsiasi mirror dell'archivio
Debian, meglio se geograficamente vicino. Un elenco dei mirror è
disponibole presso: .
In caso si abbia un CD &debian; &releasename; 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 &releasename; \
/mnt/debinst http://ftp.us.debian.org/debian
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
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
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
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 /etc/resolv.conf:
search hqdom.local\000
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.).
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.
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.
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.
Se si intende usare grub come bootloader, si può
impostare il valore di do_bootloader a no
.
Per aggiornare automaticamente il file /boot/grub/menu.lst
quando si installa o si rimuove un kernel Debian, aggiungere le seguenti righe:
postinst_hook = update-grub
postrm_hook = update-grub
Per il bootloader lilo, il valore di
do_bootloader deve essere yes
.
Si può quindi installare pacchetto con il kernel prescelto usando il nome
del pacchetto.
# aptitude install linux-image-&kernelversion;-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.
Configurazione del boot loader
Per rendere avviabile il sistema &debian;, 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.
Si provi info grub o man
lilo.conf per ottenere istruzioni sulla configurazione del
boot loader. Nel caso si desideri mantenere attivo il sistema da cui si
è installato Debian, è sufficiente aggiungere una voce per Debian al file
di grub (menu.lst) o di lilo
(lilo.conf) esistente. Se si tratta di
lilo.conf, è anche possibile copiarlo sul nuovo
sistema e lì modificarlo opportunamente. Dopo averlo modificato eseguire
lilo (ricordandosi che usa il
lilo.conf relativo al sistema su cui viene lanciato).
L'installazione e la configurazione di grub è
molto semplice:
# aptitude install grub
# grub-install /dev/hda
# update-grub
Il secondo comando installa grub (in questo caso nel MBR
di hda). L'ultimo comando crea un file
/boot/grub/menu.lst corretto e funzionante.
Di seguito un /etc/lilo.conf di base come esempio:
boot=/dev/hda6
root=/dev/hda6
install=menu
delay=20
lba32
image=/vmlinuz
label=Debian
Si provi man yaboot.conf per ottenere istruzioni
sulla configurazione del boot loader. Nel caso si intenda mantenere
attivo il sistema da cui si è installato Debian, è sufficiente
aggiungere una voce per Debian al file yaboot.conf
esistente. È anche possibile copiarlo sul nuovo sistema e lì
modificarlo opportunamente. Dopo averlo fatto, si invochi ybin
(ricordandosi che usa il yaboot.conf relativo al
sistema su cui viene lanciato).
Di seguito un /etc/yaboot.conf di base come esempio:
boot=/dev/hda2
device=hd:
partition=6
root=/dev/hda6
magicboot=/usr/lib/yaboot/ofboot
timeout=50
image=/vmlinux
label=Debian
Su alcune macchine potrebbe essere necessario usare
ide0: al posto di hd:.
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