Install OpenBSD 4.6 sur alix 2D3

Je viens d’acquérir une carte ALIX 2D3 pour m’en servir comme routeur et pour faire tourner certains services critiques à la place de mon serveur qui pourrait décider de tomber en panne un jour. Cette machine n’ayant pas de cartes graphique il y a deux méthodes pour installer un OS sur la carte flash :

  • Installer un OS depuis un autre ordinateur en y branchant la carte flash.
  • Boot par PXE (réseau) et communication via le port série.

Si comme moi vous n’avez aucuns adaptateur pour brancher la carte flash sur une autre machine il faut le faire en PXE, vous allez voir que même si ça parait compliqué c’est (après coup) assez facile à faire.

Nous allons installer OpenBSD 4.6 par PXE depuis une machine FreeBSD 7.2 mais n’importe quelle autre machine pourvue d’une interface réseau ferra l’affaire (je vous laisse le soin de trouver la documentation approprié pour votre OS).

Déjà il faut activer le boot PXE dans le bios de la carte alix, donc il vous faudra un cable null-modem (et pas un mini gender changer comme j’ai eu le malheur de faire). Si vous n’avez pas de port série, il vous faut un adaptateur série/USB. Ensuite pour causer au port série j’ai utilisé comms/picocom, lançons le avec la vitesse indiquée dans la doc.

picocom -b38400 -fx /dev/ttyU0

Pendant le memcheck tapez sur s pour afficher l’état du bios. Ensuite e pour activer le boot PXE et q pour enregistrer et quitter.

Pour booter sur le réseau il faut trois choses :

  1. Un serveur dhcp
  2. Un serveur tftp
  3. Que alix et le serveur soient branchées ensembles.

Pour le branchement je me suis pas trop cassé la tête vu que les interfaces de la freebox sont sur le même layer. Il suffit donc de brancher alix sur la freebox (avec l’interface à coté de l’alimentation, je ne sais pas si les autres sont capables de démarrer en PXE).

Ensuite installez le serveur dhcp, moi j’ai utilisé net/isc-dhcp30-server. Ça se configure dans /usr/local/etc/dhcpd.conf

ddns-update-style none;
shared-network LOCAL-NET {
# Mon DNS cache, utilisez ceux de votre FAI si vous n'en avez pas
option  domain-name-servers 192.168.0.3;
# On attribue une adresse sur le réseau de la freebox
subnet 192.168.0.0 netmask 255.255.255.0 {
# C'est la freebox qui sert de routeur pour l'instant
option routers 192.168.0.254;
filename "pxeboot";
range 192.168.0.200 192.168.0.202;
next-server 192.168.0.2; # IP sur serveur de boot PXE
default-lease-time 86400;
max-lease-time 90000;
}
}

Et maintenant le serveur tftp, juste une ligne à décommenter dans /etc/inetd.conf :

tftp    dgram   udp     wait    root    /usr/libexec/tftpd      tftpd -l -s /tftpboot

Maintenant il faut mettre les bons fichiers au bon endroit :

mkdir /tftpboot && cd /tftpboot
ftp ftp://ftp.fr.openbsd.org/pub/OpenBSD/4.6/i386/pxeboot
ftp ftp://ftp.fr.openbsd.org/pub/OpenBSD/4.6/i386/bsd.rd

Maintenant démarrez votre serveur de boot PXE :

echo dhcpd_enable=\"YES\" >> /etc/rc.conf
echo inetd_enable=\"YES\" >> /etc/rc.conf
/usr/local/etc/rc.d/isc-dhcpd start
/etc/rc.d/inetd start

Relancez picocom et redémarrez votre alix. Elle va chercher un serveur DHCP, donc si elle ne trouve pas le votre mais plutôt celui de la freebox, désactivez le dhcp de la freebox momentanément.

Ensuite vous voyez le prompt de boot OpenBSD qui echoue parce qu’il ne trouve pas de fichier bsd sur le serveur tftp. Et heureusement parce qu’on a des options à passer au boot (remarque: on aurrait pu les mettre dans /tftpboot/etc/boot.conf, mais je connais pas parfaitement la syntaxe de ce fichier). Il faut lui dire qu’on est sur un terminal série et lui donner la vitesse de celui ci :

boot> stty com0 38400
boot> set tty com0
boot> bsd.rd

Là il va chercher le bsd.rd et démarre l’installateur OpenBSD et vous pouvez suivre la documentation.

  1. Remarque0 : Au moment où j’écris ces lignes la doc d’install n’est pas à jours pour OpenBSD 4.6 , en fait l’installateur est beaucoup plus simple maintenant.
  2. Remarque1 : Au moment où il pose la question “Change the default console to com0?” répondez oui, ça évitera de le faire plus tard.

Voilà, sinon j’en suis très heureux de cette petite alix qui me sert maintenant de routeur, j’ai mis un proxy http (privoxy) transparent pour filtrer les pubs sur le web, déplacé le serveur DNS dessus en cas de panne de mon autre machine, un pf, un dhcpd etc .

Enjoy.