« Debootstrap » : différence entre les versions

De Linux Server Wiki
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Ligne 162 : Ligne 162 :
</pre>
</pre>


'''Pour GPT pour BIOS :'''
'''Pour GPT ou MBR pour BIOS :'''
<pre>
<pre>
# <file system> <mount point>  <type>  <options>                                <dump>  <pass>
# <file system> <mount point>  <type>  <options>                                <dump>  <pass>

Version du 8 octobre 2026 à 13:04

Debootstrap permet d'installer une distribution debian sur un point de montage en utilisant une debian en service.

Prérequis

Ce tutoriel se base sur l'utilisation de debootstrap pour installer une base de système d'exploitation debian. La plupart des hébergeurs proposent un système de "rescue" permettant l'installation de debian par ce moyen. Si vous ne disposez pas de mode rescue, vous pouvez toujours utiliser l'installeur proposé par votre hébergeur, ou encore passer par un kvm pour installer vous même le système avec l'iso de debian.

Pour les débutants

Si vous êtes débutant en administration linux, je vous conseil de sauvegarder quelque part les fichier suivant issu d'une précédente installation de debian ou de proxmox

  • /etc/networks
  • /etc/network/interfaces
  • /etc/resolv.conf
  • /etc/hosts
  • /etc/fstab
  • /etc/mdadm/mdadm.conf si vous disposez d'un raid logiciel
  • tout fichier de personnalisation de grub (/etc/grub.d/ par exemple)

Cela vous permettra de vous faire une idée plus précise de ce qui doit figurer dans ces différents fichiers.

Partitionnement et système de fichier

Voici le partitionnement que je vais utiliser :

  • Partition root (/) de 20 Go (/) en raid 1 sur les disques sda et sdb
  • Partitions swap de 4096 Go chacune réparties sur sda et sdb
  • Le reste de l'espace sera utilisé plus tard pour un LVM dédié aux VMs

Partitionnement

Possibilité 1 : Partitionnement GPT pour EFI / UEFI

Nous allons créer avec gdisk 3 partitions sur chaque disque :

  • sda1 et sdb1 : partitions EFI (ESP), obligatoire pour le démarrage EFI/UEFI. Il faudra leur attribuer le type EF00. Pour assurer une bonne compatibilité avec les multiples firmwares EFI, il est recommandé de leur attribuer une taille de 512 MiB (+512M au prompt gdisk).
  • sda2 et sdb2 : partitions pour le raid root (/). Il faudra leur attribuer le type FD00.
  • sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type 8200.


Pour les partitions EFI, nous créons un système de fichier FAT32 avec le label (nom) EFI_SYSPART :

mkfs.fat -F 32 -n EFI_SYSPART /dev/sda1
mkfs.fat -F 32 -n EFI_SYSPART /dev/sdb1

Possibilité 2 : Partitionnement GPT pour BIOS

Nous allons créer avec gdisk 3 partitions sur chaque disque :

  • sda1 et sdb1 : partitions pour le bootloader. Il faudra leur attribuer le type EF02. On peut la créer idéalement du secteur 34 au secteur 2047 du disque.
  • sda2 et sdb2 : partitions pour le raid root (/). Il faudra leur attribuer le type FD00.
  • sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type 8200.

Notez que la partition du bootloader ne doit pas être formatée.

Possibilité 3 : partitionnement MBR pour BIOS (non prise en charge dans ce wiki)

A titre informatif : création avec parted, sans nécessité de créer une partition dédiée au bootloader/grub : créez juste la partition root et swap.

Création du RAID

Pour des raisons esthétiques, définissez l'hostname de votre système de rescue :

hostname debian

Pour créer votre raid 1 avec 2 disques :

mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2

Notez que si vous souhaitez utiliser plus que 2 disques, il faut augmenter la valeur de --raid-devices et ajouter les partitions des disques à la suite.

Attendez que le raid soit synchronisé avant de continuer. Vous pouvez surveiller facilement cela avec la commande watch cat /proc/mdstat.

Création des systèmes de fichiers

Créez un système de fichier ext4 pour le raid du root :

mkfs.ext4 /dev/md2

Enfin, initialisez les swaps :

mkswap /dev/sda3
mkswap /dev/sdb3

Installation de debian

Installation du système de base

Nous débutons par installer le système de base de Debian avec debootstrap

Installez les paquets nécessaires dans votre rescue :

apt install debootstrap debian-archive-keyring

Montez votre partition raid root sur /mnt :

mount /dev/md2 /mnt

Installez le système de base debian, version bookworm :

debootstrap --arch=amd64 --include=openssl,ca-certificates trixie /mnt http://deb.debian.org/debian

Configuration de Debian

Montez les vfs suivants, puis chrootez dans votre nouveau système debian :

mount -o bind /proc /mnt/proc
mount -o bind /dev /mnt/dev
mount -o bind /dev/pts /mnt/dev/pts
mount -o bind /sys /mnt/sys
#mount -o bind /sys/firmware/efi/efivars /mnt/sys/firmware/efi/efivars
chroot /mnt

Configurez les archives apt : éditez le fichier /etc/apt/sources.list.d/debian.sources :

# main updates and backports
Types: deb
URIs: https://deb.debian.org/debian
Suites: trixie trixie-updates trixie-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

# security
Types: deb
URIs: https://security.debian.org/debian-security
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Mettez à jour les paquets :

apt update
apt full-upgrade

Installez les locales et la configuration de console :

apt install locales 
dpkg-reconfigure locales
apt install console-data console-setup-linux console-setup wget
dpkg-reconfigure console-data # from arch > french > latin9)

Définissez la zone horaire :

tzselect
dpkg-reconfigure tzdata

Configurez votre fichier /etc/fstab.
Pour GPT pour EFI / UEFI :

# <file system> <mount point>   <type>  <options>                                 <dump>  <pass>
/dev/md2        /               ext4    defaults,errors=remount-ro,relatime       0       1
/dev/sda1       /boot/efi       vfat    defaults                                  0       1
/dev/sda3       swap    swap    sw,pri=1                                          0       0
/dev/sdb3       swap    swap    sw,pri=1                                          0       0

Pour GPT ou MBR pour BIOS :

# <file system> <mount point>   <type>  <options>                                 <dump>  <pass>
/dev/md2        /               ext4    defaults,errors=remount-ro,relatime       0       1
/dev/sda3       swap    swap    sw,pri=1                                          0       0
/dev/sdb3       swap    swap    sw,pri=1                                          0       0

Dans le cas d'un partitionnement GPT pour EFI / UEFI : montez la partition EFI / ESP :

mkdir /boot/efi
mount /boot/efi

Configurez les interfaces réseaux dans /etc/network/interfaces :

# The loopback network interface
auto lo
iface lo inet loopback

auto eno3
iface eno3 inet static
        address XXXX/24
        gateway XXXX

Configurez le fichier /etc/hosts :

# local
127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

# main
ipdelamachine   debian.domain.tld debian

Définissez les hostnames dans ces fichiers :

# Pour celui la : non-fqdn
echo debian > /etc/hostname
# Pour celui la : fqdn
echo debian.domain.tld > /etc/mailname

N'oubliez pas de configurer les dns (ceux de votre hébergeur dédié) dans /etc/resolv.conf :

nameserver XX.XX.XX.XX

Installez postfix :

hostname -F /etc/hostname
apt install postfix

Enfin, comme nous installons notre partition de boot sur un raid software, il faut installer madadm à ce stade :

apt install mdadm

Vérifiez si votre array root s'est bien défini automatiquement dans /etc/mdadm/mdadm.conf. Si ce n'est pas me cas, ajoutez la configuration de l'array manuellement :

mdadm --examine --scan >> /etc/mdadm/mdadm.conf

Installation du kernel

Possibilité 1 : Partitions GPT pour EFI / UEFI

Vérifiez que /boot/efi est bien monté. Si ce n'est pas le cas, faites le.

Installez le kernel proxmox :

apt install linux-image-amd64 grub-efi-amd64 gdisk

Supprimez les paquets suivant si vous n'avez pas besoin de secureboot :

apt purge grub-efi-amd64-signed mokutil shim-helpers-amd64-signed shim-signed shim-signed-common shim-unsigned

Normalement tout doit se faire avec des promps (dpkg-reconfigure grub-efi-amd64). Si ce n'était pas le cas :

grub-install --bootloader-id=debian

Si jamais vous utilisez un démarrage en PXE (c'est le cas sur un serveur OVH par exemple), utilisez l'argument --no-nvram pour empêcher grub de mettre à jour la NVRAM et casser votre mécanique de démarrage PXE :

grub-install --bootloader-id=debian --no-nvram

Etant donné que seul /dev/sda1 est monté sur /boot/efi, il faut transférer manuellement les données sur /dev/sdb1 :

mount /dev/sdb1 /mnt
rsync -av /boot/efi/ /mnt/
umount /mnt

Possibilité 2 : Partitions GPT pour BIOS OU Partitions MBR pour BIOS

apt install linux-image-amd64 grub-pc gdisk

Lorsqu'on vous demandera où installer grub, choisissez sda ET sdb. Sinon :

grub-install /dev/sda
grub-install /dev/sdb

Installation de proxmox - OpenSSH

Installez openssh et définissez votre clé ssh.

hostname -F /etc/hostname
apt install openssh-server
echo "votre clé ssh" > /root/.ssh/authorized_keys

Vérifications finales et redémarrage sur le kernel

Si vous avez une configuration particulière à entrer dans /etc/default/grub, faites le maintenant. Par exemple :

GRUB_CMDLINE_LINUX="nomodeset iommu=pt"

Puis régénérez la configuration de grub :

update-grub

Vous pouvez vérifier que votre fstab est valide avec :

findmnt --verify --verbose

Vous pouvez maintenant sortir de votre chroot et démonter le système de fichier

umount /boot/efi/
exit
umount /mnt/sys
umount /mnt/dev/pts
umount /mnt/dev
umount /mnt/proc
umount /mnt

Enfin, redémarrez le serveur sur le disque dur.