Install OpenBSD 4.6 sur alix 2D3

date
26 / 10 / 2009
comments
5

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.

Previous post

Benjamin Bayard récidive

Next post

Spamd ourgl

Comments: 5

François 13 / 1 / 2010 at 12:15

Bonjour,

Dans certains articles concernant les cartes Alix, je vois qu'il est recommandé de ne pas créer de swap. En avez vous créé une ?

Merci pour cet article qui va bien me servir!

François

ksh 13 / 1 / 2010 at 14:25

Bonjour, non effectivement pas de swap ici (j'ai utilisé le partitionnement automatique)

$ cat /etc/fstab
/dev/wd0a / ffs rw 1 1
/dev/wd0e /home ffs rw,nodev,nosuid 1 2
/dev/wd0d /usr ffs rw,nodev 1 2
Opensourcien 10 / 3 / 2010 at 22:52

Salut,

J'ai moi aussi une Alix, mais le modèle 1.d C'est avec une carte graphique et un peu moins de ports réseaux.

Effectivement on évite la swap et l'ext3 car le stockage se fait sur une carte CF et les débits sont minables. Donc autant économiser le peu de bande dont on dispose.

J'en ai fait mon serveur et il tourne sur Debian. J'ai tenté de me lancer dans NetBSD et FreeBSD mais ça reste assez mystérieux pour moi, surtout les mises à jour de NetBSD.

cushy007 13 / 4 / 2010 at 22:9

Salut,

bon tuto, j'ai fais la même chose avec une Alix1d et un Linux From Scratch mais je n'arrive pas à passer le PXE à travers la FreeBox :

Serveur <---> FreeBox <---> Alix

ça ne marche que si je passe directement de l'Alix au serveur avec un câble. Avez vous eu des problèmes similaires ?

François : pour le swap, oublie ... on est sur une compact flash et ça n'aime pas beaucoup les écritures massives (ça s'use vite)

philpep 14 / 4 / 2010 at 18:22

@cushy007 :

Essaye en désactivant le dhcp sur la freebox.

Add a comment

captcha



Comments are formatted using markdown syntax.