Lamentablement, Hetzner a retiré le support officiel pour l’installation de FreeBSD il y a déjà quelque temps, mais espérons que dans le futur ils l’incluront à nouveau, vu l’essor et le support croissant dont bénéficie ce formidable système d’exploitation de la famille BSD.
Heureusement, il existe plusieurs options pour installer FreeBSD sur les serveurs dédiés de Hetzner, que j’utilise pour leurs prix avantageux, surtout pour les serveurs de sauvegardes où FreeBSD brille grâce à son intégration parfaite et son support natif de ZFS. Par exemple :
- bsdinstall/zfsinstall via depenguin.me
- Guide de la communauté Hetzner pour installer FreeBSD depuis Linux Rescue : OpenZFS via Linux Rescue
Les deux fonctionnent parfaitement et je les ai utilisés avec succès. Mais cette fois, j’avais envie d’expérimenter un peu : est-il possible d’utiliser le vKVM du Robot pour démarrer directement une ISO de FreeBSD et l’installer sans hacks externes ?
La réponse courte : Oui, c’est possible. Et avec d’excellents résultats, avec quelques précautions.
Qu’est-ce que le vKVM de Hetzner exactement ?
Hetzner n’offre pas de véritable KVM physique sauf sur demande et avec une limitation de temps, mais ils disposent d’une autre méthode ingénieuse pour fournir une solution KVM à faible coût. Il s’agit d’une session « virtualisée » qui démarre votre “serveur” comme un invité dans un QEMU temporaire ; ce QEMU/KVM temporaire passe directement les disques non virtualisés à l’invité, ce qui permet de facto (et tant que le système ne se plaint pas trop du changement de “matériel” en cas de récupération) une session KVM distante “classique” (désolé pour l’usage multiple du terme KVM). Pour cela, le serveur physique démarre en mode Debian rescue, depuis lequel la VM virtualisée est lancée — et voici ce qui est intéressant : vous pouvez également accéder par SSH à cet “hyperviseur” temporaire comme à un système de secours et relancer QEMU à votre guise. Pour être puristes, on pourrait faire la même chose depuis un boot rescue classique, mais puisque tout est déjà préconfiguré avec vKVM, c’est autant de gagné.
Nous utiliserons cette possibilité de relancer vKVM comme nous voulons pour installer FreeBSD avec l’ISO originale.
Je vous recommande de consulter leur FAQ.
Voici les étapes de base :
1. Préparer l’ISO de FreeBSD dans l’hôte vKVM
Activez vKVM depuis le Robot de Hetzner et connectez-vous via SSH à l’hôte fourni (le port est généralement 47772). Là, il suffit de télécharger l’ISO souhaitée :
cd /root
wget https://download.freebsd.org/releases/amd64/amd64/ISO-IMAGES/14.3/FreeBSD-14.3-RELEASE-amd64-disc1.iso
2. Modifier le script /opt/vkvm/startqemu
C’est l’astuce principale. Chaque fois que vous tuez le processus QEMU, la configuration de Hetzner le relance automatiquement via ce script, donc le mieux est de le modifier directement afin de profiter de l’intégration optimisée réalisée par Hetzner pour que tout fonctionne parfaitement au niveau du réseau, du firewall et des ports.
Ouvrez le fichier :
vi /opt/vkvm/startqemu
Vous verrez une longue ligne avec la commande QEMU originale. Vous devrez la modifier pour ajouter votre ISO téléchargée et ajuster l’ordre de boot :
– en supprimant « -boot nc »
– et en ajoutant : -drive if=none,id=cd0,file=/root/FreeBSD-14.3-RELEASE-amd64-disc1.iso,media=cdrom,format=raw -device ide-cd,bus=ahci0.2,drive=cd0,bootindex=0
Cela devrait donner quelque chose comme (ne prenez pas cela comme exemple exact) :
qemu-system-x86_64 \
-cpu host \
-monitor tcp:127.0.0.1:4444,nowait,server \
-device qemu-xhci \
-device usb-tablet \
-netdev socket,fd=200,id=vnet0 \
-vnc 127.0.0.1:1,websocket=5701 \
-device ahci,id=ahci0 \
-drive if=none,id=disk0,file=/dev/sda,format=raw \
-device ide-hd,bus=ahci0.0,drive=disk0,bootindex=2 \
-drive if=none,id=disk1,file=/dev/sdb,format=raw \
-device ide-hd,bus=ahci0.1,drive=disk1,bootindex=3 \
-drive if=none,id=cd0,file=/root/FreeBSD-14.3-RELEASE-amd64-disc1.iso,media=cdrom,format=raw \
-device ide-cd,bus=ahci0.2,drive=cd0,bootindex=0 \
-smp 12 \
-machine type=q35,accel=kvm \
-m 60083 \
-device virtio-net-pci,netdev=vnet0,mac=XX:XX:XX:XX:XX:XX
Sauvegardez-le et « redémarrez » QEMU en le tuant simplement :
pkill qemu-system-x86_64
En quelques secondes, vous aurez l’installateur FreeBSD dans vKVM.
3. Installation normale… avec une exception CRITIQUE
L’installation est standard, sauf pour un détail qui peut vous laisser sans réseau au premier redémarrage.
Dans l’installateur, l’interface réseau est vtnet0
C’est parce que QEMU présente une carte réseau VirtIO.
ifconfig -a
vtnet0: flags=8843<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
MAIS sur le serveur physique réel l’interface sera… la vraie
Vous devrez donc connaître l’interface réseau et le pilote utilisés par votre serveur et trouver l’équivalent sous FreeBSD. Dans l’exemple présent, il s’agissait d’une Intel I219-LM pour laquelle FreeBSD utilise le pilote em(4).
Si FreeBSD démarre en essayant de configurer vtnet0… vous serez sans réseau, sans accès et sans SSH.
Solution : avant de redémarrer, éditez /etc/rc.conf avec le bon nom d’interface
L’installateur créera quelque chose comme :
ifconfig_vtnet0="DHCP"
Remplacez-le par :
ifconfig_em0="DHCP"
Vous pouvez maintenant redémarrer en toute sécurité.
4. Redémarrez… et profitez de FreeBSD sur le matériel réel
Une fois sorti de l’installateur et le système redémarré (sans vKVM), FreeBSD démarrera sur le matériel réel de Hetzner, utilisera
votre interface Intel (em0) et vous aurez une installation propre et 100 % FreeBSD.
Conclusion
Cette méthode ne remplace pas les autres ; c’est une option supplémentaire que j’ai voulu essayer en profitant de ce que propose Hetzner, et je l’ai trouvée simple et pratique.
Voir le QEMU lancé par vKVM, pouvoir le modifier et démarrer FreeBSD depuis votre propre ISO est très avantageux et ouvre beaucoup de possibilités.
Je termine en remerciant Hetzner pour son excellent travail, mais s’il vous plaît : ajoutez un support officiel à FreeBSD !