Debootstrap
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.confsi 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 trixie /mnt http://ftp.fr.debian.org/debian --include=openssl
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 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 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. 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.**