Debootstrap permet d'installer une distribution debian (ou assimilée) sur un point de montage en utilisant le moteur d'un autre système debian déjà en service, et en récupérant les paquets sur un site internet ou un dossier. Il peut être utilisé aussi depuis un live cdrom.
Si debootstrap n'est pas installé :
|
aptitude install
debootstrap
|
Pour avoir une idée des versions qu'il est possible
d'installer en standard :
|
# ls /usr/lib/debootstrap/scripts/
breezy
etch hoary hoary.buildd potato
sarge sarge.buildd sarge.fakechroot
sid warty warty.buildd woody
woody.buildd
|
Pour l'exemple, nous allons installer une version debian sid sur /dev/hda3 en récupérant les paquets sur http://ftp.fr.debian.org/debian :
|
# mount /dev/hda3
/mnt/hda3
# debootstrap sid /mnt/hda3 http://ftp.fr.debian.org/debian I: Retrieving Release I: Retrieving Packages I: Validating Packages I: Resolving dependencies of required packages... I: Resolving dependencies of base packages... I: Checking component main on http://ftp.fr.debian.org/debian... I: Retrieving ... . . . |
Suit la liste de tous les paquets récupérés. À la fin, après récupération, décompression et configuration, debootstrap se termine par :
|
I: Base system
installed successfully.
|
On vérifie la structure, qui correspond à ce que l'on a l'habitude de voir :
|
# ls -1 /mnt/hda3
bin boot dev etc home initrd lib lost+found media mnt opt proc root sbin srv sys tmp usr var |
À ce stade, les fichiers /etc/fstab, /etc/network/interfaces entre autres ne sont pas configurés. Or on va en avoir besoin. Pour simplifier les choses, je récupère ceux en service sur ma version hôte et les copie sur la nouvelle distribution :
|
# cp /etc/fstab /mnt/hda3/etc/fstab
# cp /etc/network/interfaces
/mnt/hda3/etc/network/interfaces
|
À vous de voir pour le nom d'hôte. Pour le moment il est configuré en portant le même que la version "source". Si vous voulez en changer, il faudra éditer /mnt/point_montage/etc/hostname pour y mettre le nom de votre choix. Ou bien par la commande :
|
echo votre_nom_host
> /point_montage/etc/hostname
|
/etc/resolv.conf est déjà configuré. On le vérifie :
|
# cat /mnt/hda3/etc/resolv.conf
nameserver 192.168.1.1 nameserver 0.0.0.0 |
Comme on a récupéré le fstab de l'ancien
système, il ne correspond pas. Il faut donc le modifier. En
ce qui me concerne, j'ai mis ceci :
|
# nano -w /mnt/hda3/etc/fstab
# /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/hda3 / ext3 defaults,errors=remount-ro 0 1 /dev/hdc3 none swap sw 0 0 /dev/hdd /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0 |
Maintenant, pour personnaliser la nouvelle distribution, on va monter /dev et /proc afin de pouvoir faire reconnaître et utiliser différents périfériques sur le point de montage /mnt/hda3 et faire un chroot de ce point de montage. On utilise l'option bind qui permet de monter en même temps sur plusieurs points de montage :
|
# mount -o bind /dev /mnt/hda3/dev
# mount -o bind /proc /mnt/hda3/proc # chroot /mnt/hda3 /bin/bash |
On monte l'ensemble avec mount -a et on vérifie ( on peut procéder par étapes) :
|
# mount -a
# mount proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) /dev/hda3 on / type ext3 (rw):~$ su - passant |
Il nous faut maintenant installer différents paquets pour rendre la distribution opérationnelle.
|
# aptitude install locales
|
Si nécessaire faire ensuite un dpkg-reconfigure locales
On installe le kernel. Par exemple un 2.6.18-4-k7. Comme
on peut le voir, à chaque fois aptitude ajoute les paquets
nécessaires :
|
# aptitude install
linux-image-2.6.18-4-k7
Lecture des listes
de paquets... Fait
Construction de l'arbre des dépendances... Fait Lecture de l'information d'état étendu Initialisation de l'état des paquets... Fait Lecture des descriptions de tâches... Fait Construction de la base de données des étiquettes... Fait Les NOUVEAUX paquets suivants vont être installés : busybox initramfs-tools klibc-utils libc6-i686 libklibc libvolume-id0 linux-image-2.6.18-4-k7 udev . . . |
Ne pas tenir compte de l'avertissement comme quoi un bootloader n'est pas installé, accepter la poursuite de la procédure et installer le bootloader ensuite :
|
# aptitude install grub
# update-grub |
On vérifie :
|
# cat /boot/grub/menu.lst
. . . title Debian GNU/Linux, kernel 2.6.18-4-k7 root (hd0,2) kernel /boot/vmlinuz-2.6.18-4-k7 root=/dev/hda3 ro initrd /boot/initrd.img-2.6.18-4-k7 savedefault title Debian GNU/Linux, kernel 2.6.18-4-k7 (single-user mode) root (hd0,2) kernel /boot/vmlinuz-2.6.18-4-k7 root=/dev/hda3 ro single initrd /boot/initrd.img-2.6.18-4-k7 savedefault |
On installe grub dans le boot sector de /dev/hda3. J'utiliserai le grub mbr de l'autre distribution pour faire un chainloader :
|
# grub
grub> setup (hd0,2) (hd0,2)
|
On fait un peut de ménage :
|
# aptitude clean
|
Comme la configuration des dépôts est sommaire, on édite /etc/apt/sources.list pour ajouter contrib non-free, src, et autres dépôts suivant ce que l'on veut. De même que security. Puis, après un aptitude update, on reprend l'installation des paquets, console-data, etc. etc.
Si l'on veut une installation minimale basée sur
kde ou gnome, on peut s'inspirer du choix des paquets tel que fait dans
le tuto de Laurent, alias scorpio810,
ici:
http://scorpio810.tuxfamily.org/debian_sid.html
Je poursuis mon exemple pour mettre en évidence l'interêt d'utiliser non seulement aptitude, mais aussi module-assistant pour installer certains drivers, ou par exemple une solution vidéo basée sur nvidia. On installe tout d'abord un xserver-xorg-video-nv, au cas ou :
|
# aptitude
install xserver-xorg-video-nv xfonts-base
|
Puis module-assistant et nvidia-kernel-common :
|
# aptitude install module-assistant
nvidia-kernel-common
|
On demande à module-assistant de préparer le terrain ; module-assistant peut s'utiliser avec les abréviations m-a :
|
# m-a prepare
Récupération
des sources du noyau de la version : 2.6.18-4-k7
apt-get install linux-headers-2.6.18-4-k7 Lecture des listes de paquets... Fait Construction de l'arbre des dépendances... Fait Les paquets supplémentaires suivants seront installés : binutils cpp-4.1 gcc-4.1 libssp0 linux-headers-2.6.18-4 linux-kbuild-2.6.18 build-essential cpp dpkg-dev g++ g++-4.1 gcc libc6-dev libstdc++6-4.1-dev linux-kernel-headers make patch |
Comme on peut le voir, il a installé linux-headers, linux-kernel-headers,
et tout le nécessaire pour compiler.
On passe à l'installation de nvidia :
|
# m-a auto-install nvidia
. . .
Les paquets supplémentaires suivants seront installés : debhelper dpatch file gettext gettext-base html2text intltool-debian libmagic1 po-debconf . . . couic . . . # aptitude install nvidia-glx Les NOUVEAUX paquets suivants vont être automatiquement installés : libx11-6 libx11-data libxau6 libxdmcp6 libxext6 . . . |
Il ne reste plus qu'à configurer la vidéo avec un dpkg-reconfigure xserver-xorg, ou tout simplement recopier le xorg.conf de la version en service.
Pour plus de détails sur l'installation des drivers
nvidia, voir :
http://home.comcast.net/~andrex/Debian-nVidia/installation.html
On peut ainsi continuer à peaufiner son
installation. Ne pas oublier de créer un
user :
|
# adduser sidcep
(remplacer par le nom de son user)
|
Installer l'interface graphique de son choix. Par exemple wmaker :
|
# aptitude install wmaker xdm
|
Lorsque tout sera terminé, ne pas oublier de
démonter
et fermer le chroot. On a maintenant une distribution
opérationnelle. Il suffit de redémarre.
Lien : http://www.debian.org/releases/stable/i386/apcs04.html.fr