debootstrap est utilisé pour créer un système de base Debian à partir de zéro, sans avoir besoin de dpkg ou apt disponibles. Il le fait en téléchargeant des fichiers .deb depuis un site miroir, et soigneusement les déballer dans un répertoire qui peut éventuellement être chrooté dans.
debootstrap n'est pas beaucoup plus facile que de créer une clé USB amorçable Ubuntu ou de graver une image ISO Ubuntu. Ce n'est pas non plus plus facile que de démarrer à partir du CD Minimal Ubuntu qui est un installateur léger et en texte seul d'Ubuntu qui peut démarrer sur de nombreux ordinateurs qui ne peuvent pas démarrer l'ensemble complet des médias d'installation Ubuntu. Le CD Minimal Ubuntu vous permet d'installer des groupes de packages ce qui est très pratique, et vous pouvez également installer les mêmes groupes de packages sans utiliser le CD Minimal Ubuntu en installant le package tasksel.
Installer debootstrap
Si vous installez à partir d'une distribution non basée sur Debian, votre distribution peut avoir ou non debootstrap disponible. Pour obtenir debootstrap, vous pouvez le télécharger directement depuis un miroir Debian.
Pour voir les packages disponibles, utilisez un navigateur web, ou utilisez cette commande :
wget --no-remove-listing -O /tmp/deboot.html -q http://ftp.us.debian.org/debian/pool/main/d/debootstrap && grep 'all.deb' /tmp/deboot.html | awk -F 'href' '{print $2}' | cut -d '"' -f2
La dernière version de debootstrap est debootstrap_1.0.123_all.deb
wget -P /tmp/debootstrap http://ftp.us.debian.org/debian/pool/main/d/debootstrap/debootstrap_1.0.123_all.deb
Déballage du fichier .deb
cd /tmp/debootstrap
ar vx debootstrap_1.0.123_all.deb
tar -xf data.tar.gz
Configuration temporaire
sudo ln -s /tmp/debootstrap/usr/sbin/debootstrap /usr/sbin/debootstrap
sudo ln -s /tmp/debootstrap/usr/share/debootstrap /usr/share/debootstrap
Configurer la partition cible pour l'installation
Créez votre système de fichiers, votre point de montage, et montez votre partition :
sudo mkfs.ext4 -L Debian /dev/sda1
sudo mkdir /mnt/deboot
sudo mount -t ext4 /dev/sda1 /mnt/deboot
Installer le système de base avec accès réseau
sudo debootstrap --arch amd64 focal /mnt/deboot http://archive.ubuntu.com/ubuntu
Préparer l'environnement chroot
Copier la table des systèmes de fichiers montés. Cela satisfait la commande df. (Il sera écrasé au démarrage.)
sudo cp /etc/mtab /mnt/deboot/etc/mtab
Liaison des systèmes de fichiers virtuels. Jusqu'à ce que votre nouvelle installation démarre sur elle-même, nous emprunterons ceux de l'hôte.
sudo mount -o bind /dev /mnt/deboot/dev
sudo mount -o bind /proc /mnt/deboot/proc
sudo mount -o bind /sys /mnt/deboot/sys
Poursuivre l'installation dans chroot
Entrer dans l'environnement chroot :
sudo chroot /mnt/deboot /bin/bash
Puisque nous avons utilisé l'option --include
pour obtenir grub, il a été installé, mais non configuré.
sudo grub-install /dev/sda
sudo update-grub
Configuration de /etc/fstab
pour le système de fichiers racine. Utilisez la commande blkid
pour obtenir l'UUID de /dev/sda1.
sudo blkid /dev/sda1
Puis ajoutez cette entrée à /etc/fstab
en utilisant la sortie UUID de la commande ci-dessus :
sudo UUID=79168060-9d9c-4cf6-8ee9-bb846aee589b / ext4 defaults,errors=remount-ro 0 1
Donnez un nom à votre nouvelle installation. Sinon, votre nouvelle installation n'aura pas de nom, ou héritera du nom de l'hôte à partir duquel vous installez.
sudo echo "" > /etc/hostname
Configurez votre paramètre régional.
sudo dpkg-reconfigure locales
Créez un mot de passe pour root.
sudo chroot# passwd
Créez un utilisateur normal.
sudo adduser
Configurer le réseau (eth0)
Quelques outils de base sont déjà inclus pour gérer votre réseau, mais rien n'est encore configuré pour vous. Si vous envisagez d'installer un environnement de bureau, cela peut apporter des outils comme network-manager ou wicd pour configurer automatiquement votre réseau.
Vous pouvez activer manuellement votre réseau à chaque démarrage avec les outils dhclient or ifconfig.
Pour une IP dynamique (DHCP) :
sudo dhclient -v eth0
Pour une IP statique :
sudo ifconfig -v eth0 192.0.2.7 netmask 255.255.255.0 up
Vous pouvez avoir ceci fait automatiquement pour vous au démarrage du système en éditant le fichier ci-dessous.
Pour le DHCP, le fichier /etc/network/interfaces
devrait ressembler à ceci :
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
Pour une IP statique, le fichier /etc/network/interfaces
devrait ressembler à ceci :
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.0.2.7
netmask 255.255.255.0
gateway 192.0.2.254
Installer un gestionnaire d'affichage et un gestionnaire de fenêtres
Sauf si vous utilisez ceci pour un serveur sans tête, il serait bien d'avoir une sorte de bureau à utiliser. N'oubliez pas de mettre à jour le gestionnaire de packages si vous souhaitez installer de nouveaux packages :
sudo apt-get update
Voici quelques exemples d'installation d'un bureau :
sudo apt install xserver-xorg wdm fluxbox xterm # -ou -
sudo apt install xserver-xorg lightdm xfce4 # -ou -
sudo apt install gdm3 gnome # -ou -
sudo apt install kdm kde-standard
Vous pouvez également utiliser tasksel pour installer un bureau pour vous. Pour voir les options disponibles :
sudo tasksel --new-install
Finaliser l'installation
Nettoyez le cache des packages :
sudo apt-get clean
Mettre à jour le ramdisk :
sudo update-initramfs -u -k all
Quitter l'environnement chroot :
sudo exit