« Debootstrap » : différence entre les versions
Aller à la navigation
Aller à la recherche
| (20 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 1 : | Ligne 1 : | ||
[[category:debian]] | [[category:debian]] | ||
[[category:serveur]] | [[category:serveur]] | ||
[[Category:trixie]] | |||
Debootstrap permet d'installer une distribution debian sur un point de montage en utilisant une debian en service. | Debootstrap permet d'installer une distribution debian sur un point de montage en utilisant une debian en service. | ||
Pour | =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 | |||
* <code>/etc/networks</code> | |||
* <code>/etc/network/interfaces</code> | |||
* <code>/etc/resolv.conf</code> | |||
* <code>/etc/hosts</code> | |||
* <code>/etc/fstab</code> | |||
* <code>/etc/mdadm/mdadm.conf</code> si vous disposez d'un raid logiciel | |||
* tout fichier de personnalisation de grub (<code>/etc/grub.d/</code> 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 <code>gdisk</code> 3 partitions sur chaque disque : | |||
* sda1 et sdb1 : partitions EFI (ESP), obligatoire pour le démarrage EFI/UEFI. Il faudra leur attribuer le type <code>EF00</code>. 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 <code>FD00</code>. | |||
* sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type <code>8200</code>. | |||
<br> | |||
Pour les partitions EFI, nous créons un système de fichier FAT32 avec le label (nom) <code>EFI_SYSPART</code> : | |||
<pre> | <pre> | ||
mkfs.fat -F 32 -n EFI_SYSPART /dev/sda1 | |||
mkfs.fat -F 32 -n EFI_SYSPART /dev/sdb1 | |||
</pre> | </pre> | ||
===Possibilité 2 : Partitionnement GPT pour BIOS=== | |||
Nous allons créer avec <code>gdisk</code> 3 partitions sur chaque disque : | |||
* sda1 et sdb1 : partitions pour le bootloader. Il faudra leur attribuer le type <code>EF02</code>. 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 <code>FD00</code>. | |||
* sda3 et sdb3 : partitions swap séparées. Il faudra leur attribuer le type <code>8200</code>. | |||
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 <code>parted</code>, 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 : | |||
<pre>hostname debian</pre> | |||
Pour créer votre raid 1 avec 2 disques : | |||
<pre> | <pre> | ||
mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2 | |||
</pre> | </pre> | ||
Notez que si vous souhaitez utiliser plus que 2 disques, il faut augmenter la valeur de <code>--raid-devices</code> 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 <code>watch cat /proc/mdstat</code>. | |||
==Création des systèmes de fichiers== | |||
Créez un système de fichier ext4 pour le raid du root : | |||
<pre> | |||
mkfs.ext4 /dev/md2 | |||
</pre> | |||
Enfin, initialisez les swaps : | |||
<pre> | |||
mkswap /dev/sda3 | |||
mkswap /dev/sdb3 | |||
</pre> | |||
= | =Installation de debian= | ||
==Installation du système de base== | |||
Nous débutons par installer le système de base de Debian avec <code>debootstrap</code> | |||
Installez les paquets nécessaires dans votre rescue : | |||
<pre>apt install debootstrap debian-archive-keyring</pre> | |||
Montez votre partition raid root sur <code>/mnt</code> : | |||
<pre> | <pre> | ||
mount /dev/ | mount /dev/md2 /mnt | ||
</pre> | </pre> | ||
= | Installez le système de base debian, version bookworm : | ||
<pre>debootstrap --arch=amd64 --include=openssl,ca-certificates trixie /mnt http://deb.debian.org/debian</pre> | |||
==Configuration de Debian== | |||
Montez les vfs suivants, puis chrootez dans votre nouveau système debian : | |||
<pre> | <pre> | ||
mount -o bind /proc /mnt/proc | mount -o bind /proc /mnt/proc | ||
mount -o bind /dev /mnt/dev | mount -o bind /dev /mnt/dev | ||
mount -o bind /dev/pts /mnt/dev/pts | |||
mount -o bind /sys /mnt/sys | mount -o bind /sys /mnt/sys | ||
mount -o bind /sys/firmware/efi/efivars /mnt/sys/firmware/efi/efivars | |||
chroot /mnt | chroot /mnt | ||
</pre> | </pre> | ||
Configurez : | Configurez les archives apt : éditez le fichier <code>/etc/apt/sources.list.d/debian.sources</code> : | ||
/etc/apt/sources.list : | |||
<pre> | <pre> | ||
deb | # 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 | ||
deb | 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 | |||
</pre> | |||
Mettez à jour les paquets : | |||
<pre> | |||
apt update | |||
apt full-upgrade | |||
</pre> | </pre> | ||
Installez les locales et la configuration de console : | |||
<pre> | <pre> | ||
apt install locales | |||
dpkg-reconfigure locales | dpkg-reconfigure locales | ||
apt install console-data console-setup-linux console-setup wget | |||
dpkg-reconfigure console-data # from arch > french > latin9) | dpkg-reconfigure console-data # from arch > french > latin9) | ||
</pre> | </pre> | ||
Définissez la zone horaire : | |||
<pre> | |||
tzselect | |||
dpkg-reconfigure tzdata | |||
</pre> | |||
Configurez votre fichier <code>/etc/fstab</code>.<br> | |||
'''Pour GPT pour EFI / UEFI :''' | |||
<pre> | |||
# <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 | |||
</pre> | |||
'''Pour GPT ou MBR pour BIOS :''' | |||
<pre> | |||
# <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 | |||
</pre> | |||
'''Dans le cas d'un partitionnement GPT pour EFI / UEFI''' : montez la partition EFI / ESP : | |||
<pre> | |||
mkdir /boot/efi | |||
mount /boot/efi | |||
</pre> | |||
Configurez les interfaces réseaux dans <code>/etc/network/interfaces</code> : | |||
<pre> | |||
# The loopback network interface | |||
auto lo | |||
iface lo inet loopback | |||
auto eno3 | |||
iface eno3 inet static | |||
address XXXX/24 | |||
gateway XXXX | |||
</pre> | |||
Configurez le fichier <code>/etc/hosts</code> : | |||
<pre> | |||
127.0.0.1 localhost | |||
::1 localhost ip6-localhost ip6-loopback | |||
fe00::0 ip6-localnet | |||
ff00::0 ip6-mcastprefix | |||
ff02::1 ip6-allnodes | |||
ff02::2 ip6-allrouters | |||
ff02::3 ip6-allhosts | |||
127.0.1.1 debian.domain.tld debian | |||
</pre> | |||
Définissez les hostnames dans ces fichiers : | |||
<pre> | <pre> | ||
# Pour celui la : non-fqdn | |||
echo debian > /etc/hostname | |||
# Pour celui la : fqdn | |||
echo debian.domain.tld > /etc/mailname | |||
</pre> | </pre> | ||
N'oubliez pas de configurer les dns (ceux de votre hébergeur dédié) dans <code>/etc/resolv.conf</code> : | |||
<pre>nameserver XX.XX.XX.XX</pre> | |||
Installez postfix : | |||
<pre> | <pre> | ||
hostname -F /etc/hostname | |||
apt install postfix | |||
</pre> | </pre> | ||
Enfin, comme nous installons notre partition de boot sur un raid software, il faut installer <code>madadm</code> à ce stade : | |||
<pre>apt install mdadm</pre> | |||
Vérifiez si votre array root s'est bien défini automatiquement dans <code>/etc/mdadm/mdadm.conf</code>. Si ce n'est pas me cas, ajoutez la configuration de l'array manuellement : | |||
<pre>mdadm --examine --scan >> /etc/mdadm/mdadm.conf</pre> | |||
==Installation du kernel== | |||
===Possibilité 1 : Partitions GPT pour EFI / UEFI=== | |||
Vérifiez que <code>/boot/efi</code> est bien monté. Si ce n'est pas le cas, faites le. | |||
Installez le kernel proxmox : | |||
<pre> | <pre> | ||
apt install linux-image-amd64 grub-efi-amd64 gdisk | |||
</pre> | |||
dpkg-reconfigure | |||
Supprimez les paquets suivant si vous n'avez pas besoin de secureboot : | |||
<pre>apt purge grub-efi-amd64-signed mokutil shim-helpers-amd64-signed shim-signed shim-signed-common shim-unsigned</pre> | |||
Normalement tout doit se faire avec des promps (<code>dpkg-reconfigure grub-efi-amd64</code>). Si ce n'était pas le cas : | |||
<pre>grub-install --bootloader-id=debian</pre> | |||
Si jamais vous utilisez un démarrage en PXE (c'est le cas sur un serveur OVH par exemple), utilisez l'argument <code>--no-nvram</code> pour empêcher grub de mettre à jour la NVRAM et casser votre mécanique de démarrage PXE : | |||
<pre>grub-install --bootloader-id=debian --no-nvram</pre> | |||
Etant donné que seul <code>/dev/sda1</code> est monté sur <code>/boot/efi</code>, il faut transférer manuellement les données sur <code>/dev/sdb1</code> : | |||
<pre> | |||
mount /dev/sdb1 /mnt | |||
rsync -av /boot/efi/ /mnt/ | |||
umount /mnt | |||
</pre> | |||
===Possibilité 2 : Partitions GPT pour BIOS OU Partitions MBR pour BIOS=== | |||
<pre> | |||
apt install linux-image-amd64 grub-pc gdisk | |||
</pre> | |||
Lorsqu'on vous demandera où installer grub, choisissez <code>sda</code> ET <code>sdb</code>. Sinon : | |||
<pre> | |||
grub-install /dev/sda | |||
grub-install /dev/sdb | |||
</pre> | </pre> | ||
Installez openssh | ==Installation de proxmox - OpenSSH== | ||
Installez openssh et définissez votre clé ssh. | |||
<pre> | <pre> | ||
hostname -F /etc/hostname | |||
apt install openssh-server | |||
echo "votre clé ssh" > /root/.ssh/authorized_keys | |||
</pre> | </pre> | ||
==Vérifications finales et redémarrage sur le kernel== | |||
Si vous avez une configuration particulière à entrer dans <code>/etc/default/grub</code>, faites le maintenant. Par exemple : | |||
<pre> | <pre> | ||
GRUB_CMDLINE_LINUX="nomodeset iommu=pt" | |||
</pre> | </pre> | ||
Puis régénérez la configuration de grub : | |||
<pre>update-grub</pre> | |||
Vous pouvez vérifier que votre fstab est valide avec : | |||
<pre>findmnt --verify --verbose</pre> | |||
Vous pouvez maintenant sortir de votre chroot et démonter le système de fichier | |||
<pre> | <pre> | ||
umount /boot/efi/ | |||
exit | exit | ||
</pre> | |||
<pre> | |||
umount /mnt/sys/firmware/efi/efivars | |||
umount /mnt/sys | umount /mnt/sys | ||
umount /mnt/dev/pts | |||
umount /mnt/dev | umount /mnt/dev | ||
umount /mnt/proc | umount /mnt/proc | ||
| Ligne 120 : | Ligne 300 : | ||
</pre> | </pre> | ||
'''Enfin, redémarrez le serveur sur le disque dur.''' | |||