This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.

Station sans disque dur

16.3. Station sans disque dur

Contribution de Martin Renters .

netboot.com/netboot.rom vous permettent de démarrer votre machine FreeBSD via le réseau et d'exécuter FreeBSD sans disque dur sur le client. Avec la version 2.0, il est maintenant possible d'avoir de l'espace de pagination local. Il est toujours possible de paginer via NFS.

Les cartes Ethernet supportées sont: Western Digital/SMC 8003, 8013, 8216 et compatibles; NE1000/NE2000 et compatibles (il faut recompiler).

16.3.1. Configuration

  1. Choisissez la machine qui sera votre serveur. Cette machine doit disposer de suffisamment d'espace disque pour y mettre les exécutables de FreeBSD 2.0 et les services bootp, tftp, et NFS. Machines testées:

    • HP9000/8xx sous HP-UX 9.04 ou ultérieurs (cela ne marche pas avec les versions antérieures à la 9.04).

    • Sun/Solaris 2.3. (vous devrez peut-être vous procurer bootp).

  2. Installez un serveur bootp pour fournir au client son adresse IP, son masque de réseau et une passerelle:

        sans-disque:\
                :ht=ether:\
                :ha=0000c01f848a:\
                :sm=255.255.255.0:\
                :hn:\
                :ds=192.1.2.3:\
                :ip=192.1.2.4:\
                :gw=192.1.2.5:\
                :vm=rfc1048:
                 
    
  3. Installez un serveur TFTP (sur la même machine que le serveur bootp) pour fournir au client les informations de démarrage. Le nom du fichier de configuration est cfg.X.X.X.X (ou /tftpboot/cfg.X.X.X.X, il cherchera les deux), où X.X.X.X est l'adresse IP du client. Ce fichier peut contenir n'importe quelles commandes netboot valides. Dans la version 2.0, les commandes de netboot sont les suivantes:

    help affiche une liste d'aide
    ip X.X.X.X affiche/définit l'adresse IP du client
    server X.X.X.X affiche/définit l'adresse IP du serveur bootp/tftp
    netmask X.X.X.X affiche/définit le masque de réseau
    hostname nom affiche/définit le nom de machine
    kernel nom affiche/définit le nom du noyau
    rootfs ip:/fs affiche/définit le nom du système de fichiers racine
    swapfs ip:/fs affiche/définit le nom du système de fichiers de pagination
    swapsize taille définit la taille de l'espace de pagination de la station sans disque dur en Koctets
    diskboot démarrer depuis le disque
    autoboot continuer le processus de démarrage
    trans on|off active/désactive l'émetteur-récepteur - transceiver
    flags bcdhsv définit les indicateurs de démarrage

    Un fichier cfg pour une machine sans disque peut typiquement contenir:

        rootfs 192.1.2.3:/rootfs/monclient
        swapfs 192.1.2.3:/swapfs
        swapsize 20000
        hostname monclient.mondomain
                 
    

    Un fichier cfg pour une machine avec espace de pagination local peut par exemple contenir:

        rootfs 192.1.2.3:/rootfs/monclient
        hostname monclient.mondomain
                 
    
  4. Vérifiez que votre serveur NFS exporte bien le système de fichiers racine (et le système de fichiers de pagination, le cas échéant) vers le client, et que ces systèmes de fichiers sont accessibles avec les droits super-utilisateur sur le client. Le fichier /etc/exports sur un système FreeBSD ressemblera typiquement à:

        /rootfs/monclient -maproot=0:0 monclient.mondomain
        /swapfs -maproot=0:0 monclient.mondomain
                 
    

    Et sur HP-UX:

        /rootfs/myclient -root=monclient.mondomain
        /swapfs -root=monclient.mondomain
                 
    
  5. Si vous paginez via NFS (configuration sans aucun disque dur), créez un fichier de pagination pour votre client avec dd. Si votre commande swapfs a pour argument le système de fichiers /swapfs et 20000 comme taille, comme dans l'exemple ci-dessus, le fichier de pagination du client s'appelera /swapfs/swap.X.X.X.XX.X.X.X est l'adresse IP du client, e.g.:

        # dd if=/dev/zero of=/swapfs/swap.192.1.2.4 bs=1k count=20000
    

    Comme l'espace de pagination du client peut contenir des informations sensibles, dès lors qu'il y a pagination, veillez à restreindre les droits en lecture et en écriture sur ce fichier pour éviter les accès non autorisés:

        # chmod 0600 /swapfs/swap.192.1.2.4
    
  6. Recopiez le système de fichiers racine sur le répertoire qui servira de système de fichiers racine pour le client (/rootfs/monclient dans l'exemple ci-dessus).

    • Sur les systèmes HP-UX: Le serveur doit être soit HP-UX 9.04 ou ultérieur pour les machines de la gamme HP9000/800. Les versions antérieures ne permettent pas de créer de fichiers spéciaux de périphérique via NFS.

    • Lorsque vous recopiez /dev dans /rootfs/monclient, faites attention au fait que certains systèmes (HP-UX) ne créeront pas les fichiers spéciaux de périphérique dont FreeBSD a besoin. Vous devrez peut-être passer en mode mono-utilisateur au premier démarrage (appuyez sur Ctrl-c pendant la phase de démarrage), cd /dev puis sh ./MAKEDEV all sur le client, pour régler ce problème.



  7. Lancez netboot.com sur le client ou copiez le fichier netboot.rom dans une EPROM.

16.3.2. Utiliser des systèmes de fichiers / and /usr partagés

Cette façon de faire n'est pas actuellement officiellement sanctionnée, mais j'ai utilisé un système de fichiers /usr partagé et un système de fichiers / individuel sur chaque client. Si quelqu'un a des suggestions sur la façon propre de le faire, qu'il me la communique, ou à l'Equipe de base de FreeBSD .

16.3.3. Compiler netboot pour des configurations particulières

Netboot peut être compilé pour supporter les cartes NE1000/2000 en modifiant sa configuration dans le fichier /sys/i386/boot/netboot/Makefile. Voyez les commentaires au début de ce fichier.

Ce document, ainsi que d'autres peut etre téléchargé a ftp.FreeBSD.org/pub/FreeBSD/doc/.

Pour toutes questions a propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.