Debootstrap

De Wiki LOGre
Aller à : navigation, rechercher
Langue : Français

Debootstrap est un utilitaire qui permet d'installer un système basé sur Debian ou Ubuntu/Kubuntu/Lubuntu/Xubuntu etc.. depuis un système existant. Il y a plusieurs avantages à cela :

  • on peut continuer de travailler sur sa machine
  • pas besoin créer/booter sur un autre support (CD-DVD-USB) pour installer un nouveau système.
  • on peut le faire tranquillement en ajoutant au fur et à mesure ce dont on aura besoin
  • cela permet d'installer le minimum nécessaire si on le désire.

La méthode décrite ci-dessous va être utilisée pour installer un système basé sur Ubuntu et plus particulièrement la dernière version LTS : Bionic Beaver. On installera d'abord la base minimale pour avoir un système utilisable en ligne de commande, puis éventuellement un environnement graphique (Gnome, KDE, LXDE, XFCE, etc..).

par Marc BERLIOUX, dernière mise à jour le 14 juin 2018.

Prérequis

Pour mener à bien une installation via Debootstrap, il y a quelques conditions indispensables :

  • Avoir un compte avec les privilèges du super-utilisateur.
  • Une liaison Internet
  • Une partition de libre de 20 à 40G octets sur un disque dur
  • Ne pas avoir peur de taper des lignes de commandes
  • Et bien sûr, avoir installé Debootstrap.

Conseils

Comme tout ou presque va se faire en ligne de commande, et si vous disposez d'une souris 3 boutons, vous pouvez copier/coller facilement toutes les lignes de commandes données ci-dessous dans un terminal sous Linux. Il suffit pour ça de :

  • sélectionner la ligne, du début à la fin, avec le bouton gauche de la souris
  • coller la ligne avec le bouton du milieu (celui sous la molette)

Si votre souris n'a que deux boutons, il est souvent possible de remplacer le clic du bouton du milieu par un clic simultané sur les deux boutons droit et gauche. C'est un peu plus périlleux. Dans tous les cas, relisez bien ce que vous avez sur la ligne de commande avant d'appuyer sur <entrée>.

Pour éditer les fichiers on utilisera 'nano' qui est un peu moins difficile à maitriser que 'vi'. Dans nano, faites <Ctrl>-o, <entrée>, <Ctrl>-x pour sauvegarder et quitter.

Mise en place

On ouvre un terminal et, pour éviter d'avoir à taper sudo et son mot de passe à chaque fois, on va s'autoproclamer super-utilisateur :

sudo su -

Si ce n'est pas déjà fait, on installe debootstrap en tapant :

apt-get install debootstrap

On se rend dans notre dossier utilisateur pour y créer le point de montage du nouveau système :

cd /root
mkdir ubuntu

Tout est en place, on va pouvoir monter la partition vide et commencer à la remplir. On voit dans l'image ci dessous, une capture d'écran de Gparted, que nous avons 4 partitions sur notre disque dur

  • /dev/sda1 : le partition système (/) en cours d'utilisation
  • /dev/sda2 : la partition libre où l'on va installer notre futur système
  • /dev/sda3 : la partition Home (/home) en cours d'utilisation
  • /dev/sda4 : la partition swap

Capture-Gparted.png

Un tel partitionnement est bien pratique pour changer de version de système au fil du temps. On a un système en cours d'utilisation et une partition libre pour installer un futur système. Une fois que le futur système nous convient, on bascule sur celui-ci et la partition du système précédent devient libre à son tour pour un usage ultérieur. La partition 'home' contenant les dossiers des utilisateurs est séparée des partitions systèmes, ce qui permet de conserver ses documents et ses réglages. La partition 'swap' /dev/sda4 est utilisée indifféremment par les deux systèmes.

Ici la partition qui contiendra notre futur système est donc /dev/sda2. Bien sûr, si la vôtre n'a pas le même identifiant, il faudra adapter les lignes de commandes concernées, vous êtes prévenus..

Si la partition /dev/sda2 n'est pas déjà formatée, on le fera en tapant :

mkfs.ext4 /dev/sda2

On monte ensuite la partition du futur système sur le point de montage :

mount /dev/sda2 ubuntu/

Création de l'arborescence du futur système

C'est maintenant qu'on va utiliser Debootstrap pour télécharger et installer les paquets servant à créer l'arborescence du futur système. Cela se fait en une seule commande.

Pour un système 64bits :

debootstrap --arch amd64 bionic ubuntu/

Pour un système 32bits :

debootstrap --arch i386 bionic ubuntu/

Une fois cette opération terminée, la partition /dev/sda2 contient maintenant environ 300Mo.

Configuration minimale du futur système

Nous avons une arborescence minimale, mais pas encore de quoi faire marcher notre futur système. Il nous faut quelques réglages supplémentaires pour pouvoir installer des paquets logiciels.

Sources des paquets

On va d'abord indiquer à notre futur système les URL des dépôts, c'est à dire les emplacements où trouver les briques logicielles (les paquets) disponibles pour l'installation.

nano ubuntu/etc/apt/sources.list

On modifie le fichier pour avoir les lignes :

deb http://archive.ubuntu.com/ubuntu bionic main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu bionic-updates main restricted universe multiverse
#deb http://archive.ubuntu.com/ubuntu bionic-backports main restricted universe multiverse
#deb http://archive.ubuntu.com/ubuntu bionic-proposed main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu bionic-security main restricted universe multiverse
#deb http://archive.ubuntu.com/ubuntu bionic partner
#deb http://extras.ubuntu.com/ubuntu bionic main

Les lignes commençant par un '#' sont des dépôts qui sont désactivés provisoirement car ils ne sont pas indispensables à l'installation d'un système minimal.

Points de montages

Puis on va configurer les points de montages minimaux du futur système

nano ubuntu/etc/fstab

Le fichier est normalement vide. On ajoute les lignes :

proc            /proc           proc    nodev,noexec,nosuid 0       0
/dev/sda2   /               ext4 errors=remount-ro 0       1
/dev/sda4       none            swap    sw              0       0

Si on préfère utiliser les UUID pour spécifier les partitions on pourra remplacer '/dev/sda2' par le résultat de la commande :

blkid /dev/sda2 -o export|grep ^UUID

On s'occupera plus tard de monter la partition /home, pour ne pas la polluer avec la configuration d'un système en construction.

Réseau provisoire

Pour utiliser le réseau dans l'arborescence de travail, il faut impérativement y ajouter les adresses des serveurs DNS. Ici les adresses IP (212.27.40.240 et 212.27.40.241) sont celles des DNS de free.fr. Remplacez les par celles de votre fournisseur au besoin.

echo -e "nameserver 212.27.40.240\nnameserver 212.27.40.241" > ubuntu/etc/resolv.conf

Il faudra aussi avoir accès aux périphériques du système hôte. Montez votre /dev dans l'arborescence de travail :

mount --bind /dev/ ubuntu/dev

Installation minimale de base

La configuration de base est terminée, on va maintenant utiliser le dossier ubuntu/ comme nouvelle racine. On parle de 'chroot'. Chrootez vous dans l'arborescence de travail :

chroot ubuntu

Votre prompt a certainement changé, c'est normal. À partir de maintenant, vous travaillez comme utilisateur root dans le système en construction. Pour que le système chrooté fonctionne correctement il faut monter quelques arborescences supplémentaires :

mount -t proc none /proc && mount -t sysfs none /sys && mount -t devpts none /dev/pts

et définir quelques variables d'environnement :

export HOME=/root && export LC_ALL=C

L'environnement chrooté dans lequel on se trouve est maintenant utilisable et prêt à être modifié. Le réseau doit fonctionner, et pour le vérifier, profitons-en pour actualiser la base de données des paquets installables.

apt-get update

Installation du noyau Linux

On va installer un noyau Linux sans lequel notre système GNU/Linux n'en serait pas un. Son installation installera aussi 'grub' qui permet de le lancer au démarrage de la machine.

apt-get install linux-generic

Pendant le paramétrage, on nous demandera dans un menu semi-graphique où installer grub. Le mieux est pour l'instant de ne pas l'installer directement à la racine du disque (/dev/sda) mais à la racine de la partition de notre futur système (/dev/sda2). Ainsi, si l'on fait une bétise, notre système d'origine continuera de booter. On choisit l'emplacement avec les flèches et la barre d'espace, puis en appuyant sur 'Tab' on met en surbrillance 'OK' et on valide.

Installation des outils de base

À moins que l'on souhaite un système vraiment minimal, auquel cas on installera les paquets un par un et cela suppose qu'on les connaît bien, on va installer le méta-paquet ubuntu-standard qui va nous permettre en une seule commande d'installer un tas d'outils utiles :

apt-get install ubuntu-standard

Personnellement j'installe aussi MidnightCommander 'mc' qui est bien pratique sur un système minimal.

apt-get install mc

Les pages de manuels ou 'manpages' en français sont bien utiles aussi :

apt-get install manpages-fr

Après cette opération la partition /dev/sda2 de notre futur système Bionic Beaver' contient environ 1.1G.

Ajoût d'un super-utilisateur

Naturellement, on aura besoin au minimum d'un super-utilisateur. Ici on ajoute par exemple un utilisateur 'marc' :

adduser marc

et on lui attribue les privilèges d'administration :

usermod -a -G sudo marc

Réglages de la langue et du clavier

On va changer la langue par défaut :

nano /etc/default/locale

on ajoute ou on modifie la ligne :

LANG="fr_FR.UTF-8"

Et pour avoir un clavier français :

nano /etc/default/keyboard

On modifie la ligne pour avoir :

XKBLAYOUT="fr"

Réglage du fuseau horaire

Le réglage du fuseau horaire se fait par la commande :

dpkg-reconfigure tzdata

qui permet de choisir le bon fuseau via un affichage semi-graphique.

On peut aussi le faire en modifiant le fichier /etc/timezone qui indique dans quel continent et quelle ville on se trouve, ou directement quel fuseau horaire on veut utiliser. Pour la France, on mettra 'Europe/Paris' dans /etc/timezone :

echo "Europe/Paris" > /etc/timezone

L'arborescence complète des fichiers de données des timezones est située dans /usr/share/zoneinfo/.

Réglages du Réseau

Pour avoir le réseau disponible dès que l'on bootera sur notre nouveau système, il faut installer de quoi faire marcher le réseau :

apt-get install network-manager

et aussi le configurer un peu.

nano /etc/network/interfaces

on ajoutera les lignes :

auto lo
iface lo inet loopback

puis, comme Bionic Beaver utilise maintenant 'netplan', on crée et on édite un fichier YAML dans /etc/netplan :

touch /etc/netplan/01-network-manager-all.yaml
nano /etc/netplan/01-network-manager-all.yaml

On ajoute les lignes :

network:
  version: 2
  renderer: NetworkManager

Voilà ! À partir de maintenant, on a déjà un futur système utilisable en ligne de commande avec du réseau. Si l'on n'a pas besoin d'un environnement graphique on peut sauter l'étape suivante et se rendre directement à la section "Nettoyage et Sortie".

Installation d'un environnement graphique

À moins que vous ne souhaitiez utiliser votre nouveau système uniquement en ligne de commande, ou comme serveur, il faut installer un gestionnaire de bureau. Plusieurs choix sont possibles ;

  • Pour Ubuntu/GNOME :
apt-get install ubuntu-desktop
  • Pour Kubuntu/KDE :
apt-get install kubuntu-desktop
  • Pour Lubuntu/LXDE :
apt-get install lubuntu-desktop
  • Pour Xubuntu/XFCE :
apt-get install xubuntu-desktop

Et pour avoir les traductions en français

apt-get install language-pack-fr language-pack-gnome-fr language-pack-kde-fr

Ces méta-paquets installent beaucoup de choses.. Si l'on veut, par exemple, un environnement graphique KDE plus minimal, sans toutes les applications par défaut installées par le paquet kubuntu-desktop, on pourra l'installer comme ceci :

apt-get install xserver-xorg sddm kde-plasma-desktop language-pack-fr language-pack-kde-fr

Nettoyage et Sortie

Maintenant, il faut nettoyer un peu derrière nous, rétablir la configuration réseau par défaut, démonter les arborescences :

apt-get clean
echo "nameserver 127.0.1.1" > /etc/resolv.conf
umount /proc
umount /sys
umount /dev/pts

et sortir du chroot :

exit

Une fois revenu dans le système hôte, on libère /dev :

umount ubuntu/dev

et on démonte la partition /dev/sda2 montée dans ubuntu/

umount ubuntu

Activation du futur système

Pour pouvoir booter et tester le futur système dont le lanceur grub est installé sur /dev/sda2, il faut mettre à jour le grub du système actuel. Celui-ci détectera normalement les autre systèmes présents sur les différentes partitions via son script 'os-prober'. On tapera simplement :

update-grub

C'est la dernière commande nécessitant les droits d'administrateur. On peut redevenir simple utilisateur par un simple <Ctrl>-d qu'on peut répéter si on veut aussi fermer le terminal.