Installer Debian Wheezy avec debootstrap
jeu. 29 août 2013 by MarmotteAfin de faire les choses dans l'ordre, je vais commencer par l'installation du système d'exploitation.
Sur la plupart de mes machines, j'utilise la version stable de Debian, soit Wheezy actuellement. C'est donc avec cette version que j'ai écrit cette note d'installation.
Pourquoi ne pas utiliser l'installeur Debian ?¶
J'ai utilisé XUbuntu un certain temps, et à force d'adapter le système à ma façon de fonctionner, je me suis rendu compte qu'après l'installation d'une machine, je commençais toujours par retirer un bon nombre de paquets qui me sont inutiles, pour ensuite installer ceux que j'utilise. J'ai donc décidé de retourner sur Debian, puisque la seule raison pour laquelle j'ai utilisé XUbuntu au départ était la configuration par défaut du système, plus complète.
Le problème s'est cependant reproduit à l'installation de Debian, l'installeur ajoutant automatiquement des paquets qui ne me servent à rien. J'ai donc choisi la méthode qui me permet de réellement choisir ce qui est installé sur mon système : debootstrap. En installant uniquement les paquets que je veux, je sais exactement ce qui est installé, et je maîtrise mieux mon système.
Quand on décide de tout faire à la main, il faut évidemment savoir quels paquets installer quand il manque une fonctionnalité nécessaire. Cette méthode est donc plutôt à réserver pour ceux qui ont déjà une bonne connaissance du système.
Préparation du système hôte¶
Pour installer Debian avec debootstrap, il faut évidemment déjà un système fonctionnel. Ce peut être un système installé sur la machine, live CD/USB, chargé par le réseau...
J'ai testé l'installation depuis Debian et Ubuntu sans problème, mais toute distribution qui permet d'utiliser debootstrap devrait fonctionner.
Pour préparer le système hôte, il suffit d'y installer les paquets nécessaires. Par exemple, depuis Debian/Ubuntu :
$ sudo apt-get install debootstrap debian-archive-keyring
Note : Le paquet
debian-archive-keyring
est facultatif, il permet juste de vérifier les signatures du dépôt utilisé lors du debootstrap.
Installation du système¶
L'installation du système se fait en trois étapes :
- Le partitionnement des disques
- La création de la racine du nouveau système
- La configuration du nouveau système
Partitionnement des disques¶
Avant d'installer le système proprement dit, il faut déjà lui créer des partitions sur la machine.
Pour cette étape, j'utilise cfdisk
, qui propose une interface assez simple.
$ sudo cfdisk /dev/sdX
Où /dev/sdX est le disque que l'on veut partitionner.
Note : Dans certains cas, il peut être nécessaire de faire recharger la liste des partitions au système après avoir modifié la table des partitions, avec un programme comme
partprobe
.
Une fois les partitions créées, il faut créer un système de fichiers dessus.
J'utilise ext4, le formatage se fait donc avec la commande mkfs.ext4
.
$ sudo mkfs.ext4 /dev/sdXY
$ sudo mkfs.ext4 /dev/sdXZ
Note : Dans le cas du raid, l'utilisation est exactement la même, il suffit de remplacer le périphérique
/dev/sdXY
par votre volume raid/dev/mdX
.
Création de la racine du nouveau système¶
Les partitions sur lesquelles sera installé le nouveau système doivent ensuite être montées sur le système qui effectue l'installation.
Dans mon cas, je n'ai que deux partitions : une pour la racine, et une pour avoir un /home séparé.
$ sudo mount /dev/sdXY /mnt
$ sudo mkdir /mnt/home
$ sudo mount /dev/sdXZ /mnt/home
On peut ensuite lancer debootstrap.
$ sudo debootstrap --arch=amd64 --verbose --variant=minbase --include=rsyslog,screen,less,sudo,netbase,net-tools,ifupdown,isc-dhcp-client,bind9-host,vim-tiny,dialog,locales,keyboard-configuration,console-setup,adduser,tzdata --exclude=nano wheezy /mnt http://ftp.fr.debian.org/debian
Description des paramètres utilisés :
L'architecture par défaut est celle du système qui lance le debootstrap, le paramètre
--arch
est donc facultatif, mais j'aime bien le préciser.Le paramètre
--variant
permet de modifier le comportement de debootstrap, principalement la liste des paquets installés par défaut. La varianteminbase
est celle qui en installe le moins.Le paramètre
--includes
permet de donner une liste de paquets qui seront installés automatiquement en même temps que le système de base. La liste des paquets choisis est libre, j'y mets uniquement les paquets que j'installe sur toutes les machines. Si vous installez Debian pour faire un simple chroot, la plupart des paquets que j'ai mis ici seront inutile, voire dérangeants.De la même manière que le paramètre
--includes
, on peut exclure une liste de paquets avec--excludes
. Comme je n'utilise jamais nano, et qu'il est parfois configuré comme éditeur par défaut lorsqu'il est présent, j'ai pris l'habitude de le retirer dès l'installation du système.Les trois derniers paramètres sont, dans l'ordre, le nom de la distribution à installer, le répertoire dans lequel sera créée la racine du système, et le miroir à utiliser lors de l'installation.
Configuration du nouveau système¶
Avant de configurer le nouveau système, il est nécessaire de monter quelques répertoires, pour le bon fonctionnement du chroot.
$ sudo mount -t proc none /mnt/proc
$ sudo mount -o bind /dev /mnt/dev
$ sudo mount -o bind /sys /mnt/sys
On lance ensuite la configuration de base du nouveau système
$ sudo chroot /mnt dpkg --configure -a
Configuration du hostname
$ sudo chroot /mnt echo "<hostname>" > /etc/hostname
$ sudo chroot /mnt echo "127.0.0.1 <hostname>" >> /etc/hosts
Reconfiguration des paquets de localisation du système
$ sudo chroot /mnt dpkg-reconfigure locales console-setup keyboard-configuration tzdata
Création d'un utilisateur administrateur
$ sudo chroot /mnt adduser <username>
$ sudo chroot /mnt adduser <username> adm
$ sudo chroot /mnt adduser <username> sudo
Il faut ensuite écrire le fichier /etc/fstab
du nouveau système.
$ sudo chroot /mnt cat << EOF > /etc/fstab
UUID=<uuid_partition_root> / ext4 defaults,errors=remount-ro 0 1
UUID=<uuid_partition_home> /home ext4 defaults 0 2
UUID=<uuid_partition_swap> none swap sw 0 0
EOF
Note : Il est préférable d'utiliser les UUID des partitions dans ce fichier, puisqu'ils sont uniques et immuables. Il est possible de connaitre les UUID de chaque partition avec la commande
ls -l /dev/disk/by-uuid/
.
La configuration du réseau dépend de chaque machine.
Sur la mienne, j'ai configuré les interfaces eth0
et eth1
, mais seule eth0
est montée automatiquement lors du boot.
$ sudo chroot /mnt cat << EOF >> /etc/network/interfaces
auto eth0
iface eth0 inet dhcp
iface eth1 inet dhcp
EOF
Configuration du démarrage¶
Si le système qui vient d'être installé est destiné à être le système principal de la machine, il est nécessaire d'installer un chargeur d'amorçage pour permettre son démarrage.
Dans le cas d'un système raid, il est nécessaire de copier la liste des mounts dans le fichier /etc/mtab
du nouveau système.
De cette manière, l'installation du paquet mdadm
mettra automatiquement les bonnes valeurs dans le fichier /etc/mdadm/mdadm.conf
.
$ sudo chroot /mnt cp /proc/self/mounts /etc/mtab
Il faut ensuite installer des paquets permettant le démarrage du système. L'ordre donné permet de ne pas avoir de manipulations supplémentaires à faire après l'installation des paquets. Le noyau installé est bien évidemment à adapter selon la machine et le choix de chacun.
$ sudo chroot /mnt apt-get update
$ # Si le système est installé sur un volume raid géré par mdadm, il est nécessaire d'installer le paquet mdadm
$ sudo chroot /mnt apt-get install --no-install-recommends mdadm
$ sudo chroot /mnt apt-get install --no-install-recommends linux-image-amd64
$ sudo chroot /mnt apt-get install --no-install-recommends grub-pc
Note : L'installation du paquet
mdadm
avant le noyau permet que l'initrd généré contienne les utilitaires lui permettant de monter les volumes raid. Si le noyau a été installé avant le paquetmdadm
, il est nécessaire de mettre à jour l'initrd en lançant la commandeupdate-initramfs -u
depuis le chroot, sans quoi le système ne pourra pas monter la partition/
.Note : Si le paquet
grub-pc
a été installé avant le noyau, il est nécessaire de mettre à jour la configuration de grub en lançant la commandeupdate-grub
depuis le chroot.
Redémarrage de l'ordinateur¶
Une fois le système complètement installé, il suffit de redémarrer pour se trouver sur le nouveau système.
$ sudo reboot