Installer manuellement la distribution Debian

Dans ce billet, nous allons voir comment installer la distribution Debian de manière manuelle (uniquement en ligne de commande) grâce à l'utilitaire debootstrap.

Nous n'allons pas partir de l'installateur de Debian, mais utiliser plutôt le « liveCD » Finnix.

1. Modifier (temporairement) l'agencement du clavier, en particulier si l'on a la disposition AZERTY

loadkeys azerty

Il faut bien sûr taper loqdkeys qwerty.

2. Partitionner le disque dur. L'ordinateur dispose d'un boot UEFI, par conséquent il faudra une table de partitions en GPT.

parted /dev/sda
mklabel gpt
unit mb

mkpart primary 1 501
set 1 boot on
set 1 esp on

mkpart primary 501 82421
name 2 debian_root

mkpart primary 82421 85493
name 3 swap

mkpart primary 85493 258037
name 4 debian_home

quit

Ce qui donne le résultat suivant :

Model: ATA WDC WD5000LPCX-6 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system     Name         Flags
 1      1049kB  501MB   500MB   fat32           primary      boot, esp
 2      501MB   82,4GB  81,9GB  ext4            debian_root
 3      82,4GB  85,5GB  3072MB  linux-swap(v1)  swap
 4      85,5GB  258GB   173GB   ext4            debian_home

Ensuite on s'attaque au formatage, tout d'abord la swap :

mkswap /dev/sda3
swapon /dev/sda3

Ensuite aux autres partitions, en commençant par celle qui sera « montée » dans /boot/efi.

mkfs.fat -F32 /dev/sda1

mkfs.ext4 -L debian_root /dev/sda2
mkfs.ext4 -L debian_home /dev/sda4

3. On prépare le chroot.

mkdir /mnt/debian
mount /dev/sda2 /mnt/debian

On peut désormais lancer la commande debootstrap :

debootstrap --arch amd64 testing /mnt/debian http://ftp.fr.debian.org/debian/

Ensuite on « monte » les autres partitions et certains fichiers spéciaux.

mkdir /mnt/debian/boot/efi
mount /dev/sda1 /mnt/debian/boot/efi

mount --bind /dev /mnt/debian/dev
mount -t devpts /dev/pts /mnt/debian/dev/pts
mount -t proc proc /mnt/debian/proc
mount -t sysfs sysfs /mnt/debian/sys
mount -t tmpfs tmpfs /mnt/debian/tmp

Finallement on peut exécuter la commande chroot /mnt/debian. À partir d'ici, nous sommes dans le futur système (nous sommes dorénavant sur le disque dur). On va pouvoir commencer à installer des paquets et configurer notre système.

apt install locales
dpk-reconfigure locales

Personnellement je choisis fr_FR.UTF-8, on peut vérifier le fichier /etc/default/locale pour s'assurer que notre choix à bien été sauvegardé.

source /etc/default/locale

On continue,

apt install man-db

apt install keyboard-configuration console-setup
dpkg-reconfigure keyboard-configuration

apt install tzdata
dpkg-reconfigure tzdata

Dans un dépôt, je dispose de fichiers de configuration, donc il me faut Git.

apt install git

Comme je préfère Vi(m) à nano, je l'installe également :

apt install vim-nox

Je sélectionne cet éditeur (il s'agit de la version en console) grâce à l'utilitaire update-alternatives.

Je peux appliquer mes propres réglages. Il faut faire attention quand on va cloner le dépôt, on est situé à la racine !

cd ~
git clone ....

Pour que ces fichiers soient également accessibles aux autres utilisateurs (pour l'instant nous sommes root), je les copie dans le répertoire /etc/skel.

J'aime bien personnaliser apt. Ensuite je rajoute contrib et non-free au fichier /etc/apt/sources.list (Cf. le fichier en annexe).

Suivit de :

apt update && apt upgrade

Avant d'installer le noyau et les différents firmwares, il faut créer le fichier /etc/fstab (Cf. le fichier en annexe).

apt search linux-image
apt install linux-image-....

apt install firmware-linux firmware-linux-nonfree firmware-misc-nonfree bluez-firmware firmware-amd-graphics

apt install network-manager

Il est temps de passer au chargeur de démarrage :

apt install grub-efi

grub-install --efi-directory=/boot/efi --bootloader-id=debian
update-grub

On vérifie l'ordre de démarrage avec l'utilitaire efibootmgr.

Il est temps de définir le mot de passe pour le compte root :

passwd

On peut sortir du chroot et redémarrer pour vérifier que le système est correctement installé.

exit
umount -R /mnt/debian

shutdown -r now

Si tout se passe bien, on va pouvoir finaliser notre installation. Dans le chroot systemd n'était pas lancer, mais cette fois-ci, il l'est, donc on peut modifier le nom de la machine, ajuster l'agencement du clavier.

Il est préférable d'avoir un compte classique (root sert à administrer le système). On finit par l'installation de son bureau préféré.