Installation sur btrfs

From Le Wiki de debian-fr.xyz
Jump to: navigation, search

Le système de fichiers Btrfs propose de nombreuses fonctionnalités fort intéressantes. Il est donc intéressant d'installer Debian sur un tel système de fichier. L'installation à partir du CD permet de choisir une partition Btrfs comme partition d'installation, mais pas l'un de ses sous-volumes. On perd ainsi de nombreux avantages de ce système de fichiers. Il est cependant possible de démarrer Debian avec Grub, même si la racine est située sur un sous-volume Btrfs.

Plusieurs méthodes d'installation sont possibles, mais nous allons détailler ici la méthode à partir d'un LiveCD et de debootstrap.

Pré-requis

L'installation de / sur un sous-volume Btrfs est délicate avec un démarrage en UEFI. Il faut créer une partition en Fat32 pour UEFI, et je ne sais pas comment se gère la suite du démarrage. C'est peut-être tout à fait possible, mais je ne détaille pas ce sujet ici. Il faut donc :

  • Démarrer en mode Legacy
  • Un liveCD d'une distribution Linux (pas forcément Debian, mais une distribution qui propose debootstrap)
  • Une connexion Internet fonctionnelle

Création des partitions et des sous-volumes

Ici, je me place dans le cas d'une configuration avec un SSD et un HDD. Nous allons installer le système complet sur le SSD et /home sur le HDD. Il est inutile de faire des snapshots de /dev, /proc, et /tmp. Nous allons donc utiliser des sous-volumes séparés pour ceux-ci. Voici le choix fait ici (discutable) : Sur le SSD :

  • /
  • /dev
  • /proc
  • /tmp

Sur le HDD :

  • /home

Une autre organisation est possible en fonction des ressources disponibles, mais je recommande de garder /dev /proc et /tmp dans des sous-volumes distincts. Il n'y a pas de swap, car la méthode d'installation de btrfs utilisée ici empêche la création conjointe d'une partition swap et de volumes btrfs sur le même disque dur.

On commence par la création des volumes racines btrfs sur le SSD et le HDD. Le SSD est sur /dev/nvme0n1 et le HDD est sur /dev/sda. Au besoin, adaptez à votre configuration.

# mkfs.btrfs /dev/sda
# mkfs.btrfs /dev/nvme0n1

Notez que le système de fichiers Btrfs est créé directement sur le disque dur (/dev/sda) et non sur une partition (/dev/sdaX)

Puis on monte les volumes tout juste créés :

# mkdir /mnt/home
# mkdir /mnt/root
# mount -t btrfs /dev/sda /mnt/home
# mount -t btrfs /dev/nvme0n1 /mnt/root

Après avoir monté les volumes, il est possible de créer les sous-volumes précédemment mentionnés :

# cd /mnt/home
# btrfs subvolume create home
# cd /mnt/root
# btrfs subvolume create root
# btrfs subvolume create dev
# btrfs subvolume create proc
# btrfs subvolume create tmp

On peut maintenant démonter les partitions. Seuls les sous-volumes nous sont désormais utiles :

# umount /mnt/home
# umount /mnt/root

Monter les sous-volumes

On commence par créer un répertoire dans lequel l'installation de Debian aura lieu :

# mkdir /mnt/debinst

Puis on monte le sous-volume root dessus :

# mount -t btrfs -o subvol=root /dev/nvme0n1 /mnt/debinst

Il est inutile de monter d'autres partitions pour le moment.

Installation du système

Nous avons besoin de debootstrap. S'il n'est pas disponible, il faut installer cet outil. Puis pour installer Sid sur une architecture amd64, par exemple :

# debootstrap --arch amd64 unstable /mnt/debinst http://ftp.fr.debian.org/debian

Derniers paramétrages

Pour finir l'installation du système, on commence par un chroot sur la racine. Le dossier $HOME n'a pas besoin d'être monté.

# mount -t proc none /mnt/debinst/proc
# mount -o bind /dev /mnt/debinst/dev
# chroot /mnt/debinst /bin/bash

On change le mot de passe root avec la commande.

# passwd

Puis on installe un système fonctionnel.

# apt update
# apt install linux-image-amd64 grub2

On peut accompagner ce noyau d'autres paquets utiles comme les tasks-*. D'autres paramétrages peuvent être nécessaires comme l'édition du fichier /etc/hostname, /etc/network/interfaces, la configuration des locales, ...

Au redémarrage, il faudra ajouter un utilisateur, certainement faire quelques réparations, et autres petites tâches, mais rien de spécifique à btrfs. À part le fichier fstab.

fstab