Installation wheezy chroot debootstrap

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche

Un tuto plus récent se trouve ici: Installation d'une Debian Stretch avec l'aide de debootstrap et de chroot


Installation d'une Wheezy avec debootstrap et chroot

L'objectif est d'installer une Wheezy (sur une nouvelle partition) à partir d'une autre Debian (ici une Sid, mais cette méthode fonctionnera aussi bien avec une autre version), sans avoir besoin de redémarrer ma machine une seule fois…

Avantage : rester dans mon environnement de travail pendant toute l'installation…

Parti-pris : utilisation de nano comme éditeur

Pré-requis

Pré-requis : Installer debootstrap (chroot se trouve dans le paquet coreutils normalement déjà installé dans votre Debian).


#:~ # apt-get install debootstrap


Formatage de la partition qui va recevoir la Wheezy :

J'ai choisi de formater en ext4, vous pouvez choisir le système de fichiers de votre choix bien sûr.

La partition cible (ici /dev/sdd1) devra aussi être adaptée à votre configuration.


#:~ # mkfs -V -t ext4 /dev/sdd1


Création du répertoire qui va recevoir le système et montage de la partition fraîchement formatée dans ce nouveau répertoire.

J'ai choisi /var/chroot/wheezy_amd64_sdd1.

Un petit « ls » à la fin pour vérifier que la partition est bien montée.


#:~ # mkdir -p /var/chroot/wheezy_amd64_sdd1
mount /dev/sdd1 /var/chroot/wheezy_amd64_sdd1
cd /var/chroot/wheezy_amd64_sdd1


#:/var/chroot/wheezy_amd64_sdd1 # ls
lost+found


Installation avec debootstrap

Installation de la Wheezy avec debootstrap (j'ai choisi une Wheezy amd64, rien ne vous empêche de choisir une Squeeze i386 ou bien même une Sid…)

Astuces :

_Vous pouvez utiliser un dépôt local pour cette installation. Détails ici sur le forum.debian-fr.org

_Si vous avez une mauvaise connexion, mais disposez d'un CD d'installation, vous pouvez remplacer l'adresse du dépôt par file:/cdrom/debian/

_En ajoutant l'option --variant=minbase à debootstrap, vous installerez uniquement le strict minimum de paquets (pas d'aptitude, de vim, d'exim4, etc.).


#:/var/chroot/wheezy_amd64_sdd1 # debootstrap --arch amd64 wheezy /var/chroot/wheezy_amd64_sdd1/ http://http.debian.net/debian/
I: Retrieving Release
I: Retrieving Release.gpg
I: Checking Release signature
I: Valid Release signature (key id 9FED2BCBDCD29CDF762678CBAED4B06F473041FA)
I: Retrieving Packages
I: Validating Packages
I: Resolving dependencies of required packages...
I: Resolving dependencies of base packages...
I: Found additional required dependencies: insserv libbz2-1.0 libdb5.1 libsemanage-common libsemanage1 libslang2 libustr-1.0-1
I: Found additional base dependencies: libept1.4.12 libgcrypt11 libgnutls26 libgpg-error0 libidn11 libnfnetlink0 libp11-kit0 libsqlite3-0 libtasn1-3 libxapian22
I: Checking component main on http://http.debian.net/debian...
I: Retrieving/Validating un tas de paquets
I: Chosen extractor for .deb packages: dpkg-deb
I: Extracting un tas de paquets...
I: Installing core packages...
I: Unpacking required packages...
I: Unpacking un tas de paquets...
I: Configuring required packages...
I: Configuring un tas de paquets...
I: Unpacking the base system...
I: Unpacking un tas de paquets...
I: Configuring the base system...
I: Configuring un tas de paquets...
I: Base system installed successfully.


Si tout s'est bien passé, un "ls" vous retournera la toute nouvelle arborescence :

#:/var/chroot/wheezy_amd64_sdd1 # ls
bin boot dev etc home lib lib64 lost+found media mnt opt proc root run sbin selinux srv sys tmp usr var


À ce niveau, votre Wheezy est installée, mais elle n'est pas pleinement fonctionnelle ni « autonome ». Vous ne pourrez pas démarrer dessus…

Préparation du chroot

Il faut maintenant préparer le chroot. Trois répertoires sont importants pour que cela fonctionne convenablement : /tmp, /dev et /proc.

Vous devez éditer votre fstab pour que ces répertoires soient montés (et liés - « bind/rbind ») automatiquement dans votre répertoire chroot.


#:/var/chroot/wheezy_amd64_sdd1 # nano /etc/fstab


Ajoutez-y :

## chroot Wheezy amd64 sdd1
/tmp  /var/chroot/wheezy_amd64_sdd1/tmp  none bind  0 0
/dev  /var/chroot/wheezy_amd64_sdd1/dev  none rbind 0 0
/proc /var/chroot/wheezy_amd64_sdd1/proc none bind  0 0

Ctrl+O (enregistrer) Ctrl+X (Quitter)


#:/var/chroot/wheezy_amd64_sdd1 # mount -a


(cette commande monte tout ce qui est dans votre fstab)

Pour « normaliser les comptes et groupes » de votre nouvelle Wheezy (que les utilisateurs et groupes aient les mêmes identifiants dans votre système "hôte" et dans votre chroot) tapez les commandes suivantes :


#:/var/chroot/wheezy_amd64_sdd1 # grep "^[^:]*:x:[0-9][0-9][0-9][0-9]:" /etc/passwd >> /var/chroot/wheezy_amd64_sdd1/etc/passwd
grep "^[^:]*:x:[0-9][0-9][0-9][0-9]:" /etc/group >> /var/chroot/wheezy_amd64_sdd1/etc/group


Vous allez maintenant entrer dans votre environnement chroot (tadaa !) :


#:/var/chroot/wheezy_amd64_sdd1 # chroot /var/chroot/wheezy_amd64_sdd1
cd /


Finalisation de l'installation et réglages de la Wheezy

Vous êtes maintenant dans votre nouvelle Wheezy mais ce n'est pas terminé.

Votre système est incomplet, il est toujours impossible de démarrer dessus…

"locales"

Nous allons maintenant mettre en français (ou ce que vous voulez…), configurer la localisation, et surtout… régler l'heure. L'heure est très importante. Si vous démarrez sur ce nouveau système avec une mauvaise heure (dans le futur par rapport au système sur lequel vous êtes), le prochain démarrage vous laissera un goût amer, vous serez obligé de faire un fsck…

En effet, au montage des disques le système inscrit l'heure (au tout début du disque). Si cette heure est « dans le futur », au démarrage suivant (sur une autre installation), il ne voudra pas démarrer et exigera une vérification de disque…


#:/ # apt-get update
apt-get install locales
dpkg-reconfigure locales
dpkg-reconfigure tzdata
hwclock --systohc --utc
apt-get install ntpdate
ntpdate ntp.metas.ch


Le sources.list

Nous allons maintenant compléter nos dépôts

J'ai ajouté le dépôt de rétroportages (backports) pour avoir accès à un noyau récent, vous n'êtes bien sûr pas obligé de le faire.


#:/ # nano /etc/apt/sources.list


deb http://http.debian.net/debian wheezy main

## Mises-à-jour de sécurité
deb http://security.debian.org/ wheezy/updates main
deb http://http.debian.net/debian/ wheezy-updates main

## Rétroportages
deb http://http.debian.net/debian/ wheezy-backports main

Mettons à jour :


#:/ # apt-get update


Clavier

Configurons maintenant le clavier


#:/ # apt-get install console-data
dpkg-reconfigure -plow console-data


(option choisir un codage clavier dans la liste complète) - pc / azerty / French / Same as X11 (latin9) / Standard
Looking for keymap to install:
fr-latin9 (cette fois-ci c'est bon)

hostname et fstab

#:/ # exit


Nous sommes sortis du chroot, quelques fichiers à récupérer… Pour avoir un bon hostname, le réseau, le montage correct des disques…


#:/var/chroot/wheezy_amd64_sdd1 # cp /etc/fstab /etc/hosts /etc/hostname /etc/resolv.conf /var/chroot/wheezy_amd64_sdd1/etc/
cp /etc/network/interfaces /var/chroot/wheezy_amd64_sdd1/etc/network/
chroot /var/chroot/wheezy_amd64_sdd1/


+ Réglage du fsab

(cette commande permet de récupérer le UUID de vos disques pour votre nouveau fstab…
Ne vous faites pas prendre, le formatage change l'UUID…)

#:/ # blkid
/dev/sda1: UUID="f6fb3a64-0773-4cfe-86f9-df372b5c6bda" TYPE="ext4"
/dev/sda5: UUID="1b9b21b5-6963-4851-a30a-318314194d2a" TYPE="ext4"
/dev/sda6: UUID="47bfcfed-42b4-4a80-a93d-69ff4dd36109" TYPE="swap"
/dev/sdb1: UUID="3f332488-3a43-46b3-b20f-4373e9467dfe" TYPE="ext4"
/dev/sdc1: UUID="3a503ab3-af43-414b-9249-300203538b2d" TYPE="ext4"
/dev/sdd1: UUID="2edb9c6e-d531-4653-a653-6c66d0607f5c" TYPE="ext4"

(à rectifier en fonction de votre configuration)

#:/ # nano /etc/fstab
proc /proc proc defaults 0 0
UUID=2edb9c6e-d531-4653-a653-6c66d0607f5c / ext4 errors=remount-ro 0 1
UUID=3f332488-3a43-46b3-b20f-4373e9467dfe /home ext4 defaults 0 2
UUID=47bfcfed-42b4-4a80-a93d-69ff4dd36109 none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0


Création des répertoires de montage des disques de la nouvelle machine : (en fonction de votre configuration et de vos choix…)


#:/ # mkdir /media/cdrom0


L'environnement graphique

Maintenant ? Un environnement graphique ! (J'ai choisi Xfce, vous faites comme vous voulez… Gnome, Kde, aucun…)


  N'oubliez pas d'installer aussi un gestionnaire de connexion !



#:/ # apt-get install xfce4 slim


Le noyau et Grub2

Installons un noyau… Ce serait bête d'oublier !

(choisissez dans la liste qu'il vous propose,
celui que je cite n'est qu'un exemple que vous n'êtes pas forcés de suivre…)


#:/ # apt-cache search linux-image
(…)
linux-image-3.2.0-4-amd64 - Linux 3.2 for 64-bit PCs
(…)


Ici il faut récupérer votre kernel-img.conf qui permette de convenablement lancer initramfs à l'installation du nouveau noyau dans le chroot.

Ce fichier n'existe pas dans le système créé par debootstrap.

La ligne intéressante : do_initrd = yes


#:/ # exit


#:/var/chroot/wheezy_amd64_sdd1 # cp /etc/kernel-img.conf /var/chroot/wheezy_amd64_sdd1/etc/kernel-img.conf
chroot /var/chroot/wheezy_amd64_sdd1


#:/ # apt-get install linux-image-3.2.0-4-amd64
exit


Maintenant… Modifions notre grub pour que ce nouveau système soit opérationnel :

  Attention, je suis sous Grub2. Si vous êtes sous Grub "legacy" la commande est différente évidemment…



#:/var/chroot/wheezy_amd64_sdd1 # apt-get install os-prober
update-grub
(…)
Found Debian GNU/Linux (7.0) on /dev/sdd1
(…)


Divers - mots de passe

Derniers "fignolages"… J'installe un navigateur Web (Midori), et GParted.

Vous pouvez bien sûr adpater cette commande pour installer vos logiciels habituels !


#:/var/chroot/wheezy_amd64_sdd1 # chroot /var/chroot/wheezy_amd64_sdd1


#:/ # apt-get install gparted midori


Enfin, les mots de passe…

Debootstrap installe un système sans mots de passe… Si vous redémarrez maintenant vous vous connecterez en root dans votre nouveau système sans montrer patte blanche… Un peu gênant, non ?


#:/ # nano /etc/passwd
(…)
dave:x:1000:1000:Dave,,,:/home/dave:/bin/bash
(…)


Vous enlevez le x pour que cela ressemble à ça :

dave::1000:1000:Dave,,,:/home/dave:/bin/bash

Ceci afin de pouvoir connecter vos utilisateurs "normaux". Il faut maintenant créer les mots de passe.


#:/ # passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
su dave -c passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
exit


Et vous pouvez enfin redémarrer sur votre nouveau système :


#:/var/chroot/wheezy_amd64_sdd1 # reboot


Voilà : vous disposez d'une toute fraîche installation, fonctionnelle !

Tasksel

Pour avoir un système un peu plus complet, en fonction de vos besoins, vous pouvez utiliser l'utilitaire Tasksel.

La commande suivante détaille les "tâches" que Tasksel peut réaliser pour vous… (vous remarquerez que ce sont les mêmes choix que dans une installation "classique" qui sont proposés)


#:/ # tasksel --list-tasks
u desktop Debian desktop environment
u web-server Web server
u print-server Print server
u database-server SQL database
u dns-server DNS Server
u file-server File server
u mail-server Mail server
u ssh-server SSH server
u laptop Laptop


Chaque "tâche" installe un ensemble de paquets utiles pour certaines utilisations. "u" pour non installé. Une tâche installée commence par "i".

Il ne vous reste plus qu'à taper dans la console :


#:/ # tasksel --task-packages nom_tache


Il existe une autre tâche, qui n'est pas dans la liste ci-dessus :

tasksel install standard

Cette commande installe un ensemble de paquets "standards". Je vous renvoie à la page Tasksel pour plus de détails.

Versions des programmes utilisés dans ce tutoriel

bash : 4.2+dfsg-1

apt : 0.9.8

e2fsprogs : 1.42.5-1.1

coreutils : 8.20-3

mount : 2.20.1-5

debootstrap : 1.0.49

nano : 2.2.6-1+b1

grep : 2.14-1

os-prober : 1.58

grub-pc : 2.00-14

sysvinit : 2.88dsf-41


Vv222 (discussion) 15 mai 2013 à 16:15 (CEST)

source : Wiki debian-fr

source : Wiki debian-fr

source : forum debian-fr