Retour

Debootstrap



Installer Debian depuis une distribution Debian avec debootstrap

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

Écrire un commentaire :


Retour


Valid HTML 4.01 Transitional        Valid CSS!