Table des matières

Configurer un client sans disque dur

Auteur : Olivier BOYER - oboyer () ajoute ! org

Mots clés

diskless, OpenBSD (testé de 3.9 à 4.0), netboot, pxe, pxeboot, tftp, rarp, bootparamd, dhcp, nfs, Xorg

Introduction

Ce document présente comment configurer un client OpenBSD pourqu'il démarre et fonctionne sans disque dur (client diskless). L'idée finale est d'obtenir un lecteur MP3/DVD/DIVX réseau à partir d'un ancien ordinateur de type Pentium III.

Pourquoi retirer le disque dur ? Tout d'abord pour réduire le bruit de ce lecteur, et aussi pour simplifier son utilisation. La machine démarre en pressant le bouton de l'alimentation, et s'éteint de la même manière.

Présentation de la maquette

  • Un serveur central et un client sans disque sous OpenBSD
  • L'installation des fichiers du client sur le serveur s'effectue dans le répertoire /diskless
  • Le répertoire /diskless est exporté par NFS. Pour que ce répertoire (et seulement ce répertoire) soit exporté par NFS, il doit être un point de montage d'une partition dédiée. Sinon, vous devrez exporter le point de montage de la partition contenant le répertoire /diskless.
  • Configuration du client :
    • nom : player.leaves.org
    • adresse IP : 192.168.1.89
    • interface réseau : em0
    • adresse Mac : 00:11:22:33:44:55
    • route par défaut : 192.168.1.1
    • adresse IP du serveur de noms : 192.168.1.1
  • Configuration du serveur :
    • nom : smoking.leaves.org
    • adresse IP : 192.168.1.1
    • interface réseau : xl0

Note

Toutes les commandes présentées ici, sont à exécuter, sauf mention contraire, en tant qu'administrateur de la machine.

Pré-requis

  • Le système serveur doit être installé et fonctionnel
  • Le BIOS et la carte réseau du client doivent supporter le démarrage via PXE
  • Le client sans disque et le serveur de démarrage doivent être sur le même réseau IP
  • La partition /diskless (qui contient l'installation du client) sur le serveur doit être d'au moins un giga octets.

Démarrer un client OpenBSD via le réseau

Voici un extrait traduit de la page de manuel diskless(8).

Quand un système démarre à travers le réseau, il y a trois phases d'inter-actions entre le client et le serveur :

  1. La PROM charge un programme de démarrage (boot program)
  2. Le programme de démarrage charge le noyau (kernel)
  3. Le noyau monte via NFS le système de fichiers racine (root) et la swap

Voici une description détaillée de chacune de ces phases.

En phase 1, la PROM charge le programme de démarrage (boot program). Le comportement des PROM varie. Cette phase est donc très dépendante du type de la machine cliente. Les machines SUN et MOTOROLA utilisent le protocole RARP pour obtenir l'adresse IP du client et utilisent le protocole TFTP pour télécharger le programme de démarrage depuis le serveur qui a répondu à la requête RARP. Les machines HP 300-series utilisent le protocole HP Remote Maintenance Protocol pour télécharger le programme de démarrage. Les autres machines peuvent charger un programme de démarrage réseau depuis une disquette ou utiliser une PROM spéciale dans leur carte réseau.

En phase 2, le programme de démarrage charge le noyau (kernel). Le mode de fonctionnement de cette phase dépend du programme de démarrage (chargé en phase 1).

Le programme de démarrage :

  1. obtient l'adresse IP du client par le protocole RARP.
  2. obtient le nom du client et l'adresse IP du serveur en broadcastant une requête RPC / BOOTPARAMS / WHOAMI avec l'adresse IP du client.
  3. obtient le chemin, sur le serveur, de la racine système du client via une requête RPC / BOOTPARAMS / GETFILE avec le nom du client.
  4. obtient le root file handle via une requête mountd(8) avec le chemin, sur le serveur, du système racine du client.
  5. obtient le kernel file handle via une recherche NFS sur le root file handle.
  6. charge le noyau via une lecture NFS sur le kernel file handle.
  7. transfère le contrôle au noyau.

En phase3, le noyau monte via NFS le système de fichiers racine (root) et la swap. Le noyau répète la majorité du travail effectué par le programme de démarrage car il n'existe pas de méthode standard pour le programme de démarrage de passer au noyau les informations qu'il a déjà obtenues.

Le noyau utilise la procédure suivante :

  1. le noyau trouve un serveur de démarrage en utilisant la même procédure que celle décrite aux points 1 et 2 de la phase précédente.
  2. le noyau obtient le NFS file handle root en utilisant la même procédure que celle décrite aux points 3, 4 et 5 de la phase précédente.
  3. le noyau appelle la fonction NFS getattr() pour connaître l'heure de dernière modification du répertoire racine, et l'utilise pour tester l'heure du système.
  4. si le noyau a été compilé pour le support de la swap sur NFS, il utilise le même mécanisme que pour la racine du système, mais utilise la fonction NFS getattr() pour déterminer la taille de la zone de swap.

Démarrer un client OpenBSD via pxeboot

Le mécanisme de démarrage réseau via pxeboot est spécifique aux architectures i386. Il s'agit d'une version modifiée du programme de démarrage boot (phase 2). PXE est une ROM bootable incluse dans une majorité de cartes réseau Ethernet. Le procédé a été inventé par Intel.

Dans le cas d'un démarrage via pxeboot, les phases 1 et 2 diffèrent de celles vues précédemment.

En phase 1 la ROM de la carte réseau contacte un serveur DHCP en broadcastant une requête sur le réseau. Elle obtient du serveur DHCP une adresse IP et le nom d'un programme de démarrage à télécharger. Dans ce cas, le programme de démarrage est pxeboot. La ROM télécharge le programme de démarrage via le protocole TFTP, et l'exécute.

En phase 2 le programme de démarrage pxeboot cherche un fichier /etc/boot.conf sur le serveur TFTP. S'il le trouve, il exécute les commandes présentes (voir la page de manuel boot(8).) Dans le cas contraire, il attend à la console une action de l'utilisateur via le prompt boot>.

Sauf information contraire de l'utilisateur, ou du fichier /etc/boot.conf, pxeboot cherche ensuite à télécharger le noyau via le protocole TFTP. Enfin, pxeboot charge et exécute le noyau.

La phase 3 est identique à la précédente.

Services à configurer sur le serveur

Voici les serveurs mis en oeuvre :

  • dhcpd : attribue l'adresse IP aux clients, et, si besoin, l'adresse IP du serveur tftp ainsi que le chemin du fichier à télécharger par tftp.
  • tftpd : serveur pour le protocole ipv4 Trivial File Transfer Protocol. Ce protocole est utilisé pour lors du démarrage d'un client sans disque dur (diskless). Ce serveur est, en général démarré par le super serveur inetd.
  • rarpd : attribue l'adresse IP d'un client en fonction de son adresse physique (Mac Address).
  • bootparamd : fournit les informations (adresse IP du serveur NFS et chemin d'accès sur le serveur au répertoire racine du client, et au fichier de swap) nécessaires au démarrage d'un client sans disque dur.
  • nfsd : permet l'accès aux données par le réseau comme si elles étaient locales sur le client.

Télécharger les fichiers nécessaire

Pour obtenir la liste des miroirs FTP OpenBSD, consultez la page http://www.openbsd.org/ftp.html

Pour télécharger les composants d'installation, procédez comme suit :

# cd /tmp
# ncftpget ftp://ftp.irisa.fr/pub/OpenBSD/4.0/i386/pxeboot
# ncftpget ftp://ftp.irisa.fr/pub/OpenBSD/4.0/i386/bsd
# ncftpget ftp://ftp.irisa.fr/pub/OpenBSD/4.0/i386/base40.tgz
# ncftpget ftp://ftp.irisa.fr/pub/OpenBSD/4.0/i386/etc40.tgz
# ncftpget ftp://ftp.irisa.fr/pub/OpenBSD/4.0/i386/man40.tgz
# ncftpget ftp://ftp.irisa.fr/pub/OpenBSD/4.0/i386/x*40.tgz
# ncftpget ftp://ftp.irisa.fr/pub/OpenBSD/4.0/i386/MD5

Après le téléchargement des différents composants, penser à vérifier leur intégrité à l'aide de la commande md5(1) et du fichier MD5.

Configurer le serveur

Les configurations présentées dans ce paragraphe mettent en place les services nécessaire au support de démarrage d'un client sans disque dur.

Créer le répertoire racine du client

# mkdir /diskless
# mount /dev/<partition_dédiée> /diskless

Modifiez ensuite le fichier /etc/fstab du serveur pourqu’au démarrage de celui-ci la partition /diskless soit automatiquement montée.

/dev/</partition_dédiée>   /diskless   ffs   rw,softdep   1 2

Modifier le fichier /etc/ethers

Le fichier /etc/ethers est utilisé par le service rarpd(8) pour attribuer l'adresse IP d'un client en fonction de son adresse physique ou adresse MAC.

Pour notre client, modifiez le fichier comme suit :

00:11:22:33:44:55        player.leaves.org

Modifier le fichier /etc/hosts ou la base DNS

Le fichier /etc/hosts sert à la résolution de noms en adresse IP.

Pour notre client, modifiez comme suit le fichier :

192.168.1.89        player.leaves.org        player

Configurer le serveur dhcpd

Modifier le fichier /etc/dhcpd.interfaces

Ajouter l'interface sur laquelle le serveur va écouter les requêtes. Dans notre cas, il s'agit de l'interface xl0.

Procédez comme suit :

# echo "xl0" >> /etc/dhcpd.interfaces

Modifier le fichier /etc/dhcpd.conf

Le fichier /etc/dhcpd.conf contient la configuration du serveur DHCP. La configuration doit être semblable à celle ci-dessous :

#/etc/dhcpd.conf

option perform-mask-discovery false;
option ip-forwarding off;

subnet 192.168.1.0 netmask 255.255.255.0 {
        # IP informations
        option subnet-mask 255.255.255.0;
        option broadcast-address 192.168.1.255;
        option routers 192.168.1.1;
        # DNS informations
        option domain-name "leaves.org";
        option domain-name-servers 192.168.1.1;
}

group {
        # Lease informations
        default-lease-time 86400;               # 24hours
        max-lease-time 172800;                  # 48hours
        host player {
          # player's diskless workstation
          hardware ethernet 00:11:22:33:44:55;
          fixed-address player.leaves.org;
          filename "/player/pxeboot";
       }
}

Activer le service TFTP

Pour activer le service tftp, décommentez la ligne suivante du fichier /etc/inetd.conf :

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

Créez le répertoire /tftpboot comme suit :

# mkdir -p /tftpboot/player
# chmod -R 711 /tftpboot/player

Copiez le fichier pxeboot précédemment téléchargé :

# cp /tmp/pxeboot /tftpboot/player
# chmod 644 /tftpboot/player/pxeboot

Créer le fichier /etc/bootparams

Le fichier /etc/bootparams contient la configuration du serveur bootparamd. Pour notre client, la configuration doit être semblable à celle ci-dessous :

#/etc/bootparams
# bootparams - boot parameter database
# see bootparams(5)

player.leaves.org    root=smoking.leaves.org:/diskless/player/root \
                     swap=smoking.leaves.org:/diskless/player/swap \
                     dump=smoking.leaves.org:/diskless/player/swap

#EOF

Modifier le fichier /etc/exports

Le fichier /etc/exports indique quelles arborescences du serveur NFS doivent être exportées vers quels clients NFS. Pour le client sans disque dur, vous devez créer un fichier semblable à celui ci-dessous :

# Diskless clients
/diskless -maproot=root -alldirs player.leaves.org

Une fois le serveur NFS démarré, vous pouvez consulter la liste des systèmes de fichiers exportés via la commande suivante :

# showmount -e

Lancer les services au démarrage du serveur

Ajoutez les lignes suivantes au fichier /etc/rc.conf.local :

# Start inetd super daemon
inetd=YES               # almost always needed

# Start daemons used to boot other hosts over a network.
rarpd_flags="-a"       # for normal use: "-a"
bootparamd_flags=""    # for normal use: ""
dhcpd_flags=""         # for normal use: ""

# portmap is used to look up RPC-based svc.
nfs_server=YES
nfsd_flags="-tun 10"   # busy nfs server
lockd=YES

Démarrer les services

# pkill -HUP inetd
# rarpd -a
# dhcpd xl0
# portmap
# rpc.bootparamd
# rpc.lockd
# mountd
# nfsd -tun 10

Installer le système du client

L'installation du système du client, ici OpenBSD 4.0, est faite dans le répertoire /diskless/player/root du serveur. Toutes les manipulations présentées dans cette section s'effectuent sur le serveur.

Créer les répertoires de base

# mkdir /diskless/player/root/{usr,swap,dev}
# chmod 700 /diskless/player/root/swap

Installer les sets de base

# cd /diskless/player/root
# tar xzpf /tmp/base40.tgz
# tar xzpf /tmp/etc40.tgz

Installer le noyau

Le noyau sera chargé en mémoire lors de la “phase 2” par le “programme de démarrage”. Le “programme de démarrage” télécharge le noyau, du serveur de démarrage vers le client, via le protocole TFTP. Le noyau doit donc être copié dans l'arborescence servie par le serveur TFTP, ici /tftpboot.

Procédez comme suit :

# mv /tmp/bsd /tftpboot/player/bsd
# chown root:wheel /tftpboot/player/bsd
# chmod 644 /tftpboot/player/bsd
# gzip -9 /tftpboot/player/bsd

Créer le fichier de configuration du noyau pourqu'il démarre instantanément :

# mkdir /tftpboot/player/etc
# chmod 711 /tftpboot/player/etc
#
# echo "boot tftp:/player/bsd.gz" > /tftpboot/player/etc/boot.conf
# chmod 644 /tftpboot/player/etc/boot.conf
#
# cd /tftpboot
# ln -s player/etc etc

Créer les fichiers de périphériques

# cd /diskless/player/root/dev
# ./MAKEDEV all

Créer le fichier de swap

# dd if=/dev/zero of=/diskless/player/swap bs=1024k count=128 seek=1
# ls -lh /diskless/player/swap
# chmod 600 swap
-rw-------  1 root  wheel   129M Apr 13 20:22 /diskless/player/swap

Configurer le client

Toutes les manipulations présentées dans cette section s'effectuent sur le serveur.

/etc/myname

Ce fichier contient le nom de la machine, pour le créer, exécutez la commande suivante :

# echo "player.leaves.org" > /diskless/player/root/etc/myname

/etc/hosts

Créez le fichier /diskless/player/root/etc/hosts du client comme suit :

# /etc/hosts
127.0.0.1         localhost.leaves.org      localhost
192.168.1.89      player.leaves.org         player
192.168.1.1       smoking.leaves.org        smoking

/etc/fstab

Editez comme suit le fichier /diskless/player/root/etc/fstab :

192.168.1.1:/diskless/player/root  /     nfs   rw   0 0
192.168.1.1:/diskless/player/swap  none  swap  sw,nfsmntpt=/swap

/dev/cd0a    /cdrom cd9660  noauto,ro,nodev,nosuid,noexec

Créez le répertoire de montage du cdrom :

# mkdir /diskless/player/root/cdrom

Configurer le réseau

L'adresse IP du client est inscrite en statique, sinon, des erreurs NFS apparaissent durant la phase d'initialisation du système (nfs send error 50 on server).

# cd /diskless/player/root/etc
# echo "inet 192.168.1.89 NONE" > hostname.em0

Configurez la route par défaut du client :

# cd /diskless/player/root/etc
# echo "192.168.1.1" > mygate

Créez le fichier /etc/resolv.conf comme suit :

# cd /diskless/player/root/etc
# cp /etc/resolv.conf .

Configurer l'heure

Par défaut, le fuseau horraire d'un OpenBSD est positionné à Canada/Mountain. Pour configurer le fuseau horraire français, procédez comme suit :

# cd /diskless/player/root/etc
# rm localtime
# ln -s ../usr/share/zoneinfo/Europe/Paris localtime

Pour mettre à l'heure le client automatiquement au démarrage, depuis le serveur central, ajoutez la ligne suivante au fichier /etc/rc.conf.local :

rdate_flags="192.168.1.1"

Diverses configurations

Configurer le clavier en Français

Pour configurer le clavier en Français, procédez comme suit :

# echo "fr" > /diskless/player/root/etc/kbdtype
# echo "keyboard.encoding=fr" >> /diskless/player/root/etc/wsconsctl.conf

Autoriser la séquence 'Ctrl+Alt+Suppr'

Pour autoriser le redémarrage de la machine, via la combinaison de touches Ctrl+Alt+Suppr, procédez comme suit :

# echo "machdep.kbdreset=1" >> /diskless/player/root/etc/sysctl.conf

Installer le serveur graphique sur le client

Installer les sets graphiques

Sur le serveur, exécutez les commandes suivantes :

# cd /diskless/player/root
# tar xzpf /tmp/xbase40.tgz
# tar xzpf /tmp/xetc40.tgz
# tar xzpf /tmp/xfont40.tgz
# tar xzpf /tmp/xserv40.tgz
# tar xzpf /tmp/xshare40.tgz
# chroot . ldconfig -m /usr/X11R6/lib

Activer le driver 'aperture'

Sur le serveur, exécutez la commande suivante :

# echo "machdep.allowaperture=2" >> /diskless/player/etc/sysctl.conf

Attention, si le client est déjà démarré, pour que cette modification soit effective, vous devez le redémarrer.

Configurer le serveur X

Pour configurer le serveur X, démarrez le client, logez-vous en tant qu'utilisateur root, et exécutez la commande suivante :

# /usr/X11R6/bin/xorgcfg

Le serveur X se lance, et affiche un utilitaire graphique de configuration de Xorg.

Configurer la carte son du client

Toutes les manipulations présentées dans cette section s'effectuent sur le client. Le poste client doit donc être démarré, et vous devez être logé en tant qu'utilisateur root.

Introduction

Les périphériques concernant l'audio sous OpenBSD sont : /dev/audio, /dev/sound, /dev/audioctl et /dev/mixer. Pour une introduction au support audio, vous pouvez lire la page de manuel audio(4).

Tous les matériels audio supportés sont déjà inclus dans le noyau GENERIC (donc dans celui de notre client), il n'y a donc pas besoin de configuration supplémentaire ou d'installation de drivers. Pour trouver des informations spécifiques au contrôleur de votre carte son, vous devrez déterminer quel contrôleur vous possédez. Si vous avez déjà démarré le client, cherchez l'apparition d'un driver de carte son dans la sortie de la commande dmesg(1), et lisez le manuel du driver pour des informations plus spécifiques.

Voici un extrait d'un contrôleur audio, vu dans le dmesg :

auich0 at pci0 dev 31 function 5 "Intel 82801BA AC97" rev 0x04: irq 10, ICH2 AC97
ac97: codec id 0x41445360 (Analog Devices AD1885)
ac97: codec features headphone, Analog Devices Phat Stereo
audio0 at auich0

Configuration

Tout d'abord testez que votre carte fonctionne. Exécutez la commande suivante :

# ls -R / > /dev/audio

Si du bruit sort de vos haut-parleurs, c'est gagné, votre carte est reconnue et bien configurée.

Sinon, vérifiez la configuration du mixer. Procédez comme suit :

# mixerctl outputs.master.mute=off
# mixerctl outputs.headphones.mute=off

Répétez la même commande que précédement. Le bruit doit être maintenant audible.

Enregistrer la configuration

Pour ne pas avoir à saisir à chaque fois la configuration du mixer, créez comme suit le fichier /etc/mixerctl.conf :

#/etc/mixerctl.conf
# see mixerctl(1)

outputs.master=200,200
outputs.master.mute=off
outputs.headphones=160,160
outputs.headphones.mute=off

#EOF

Configurations optionnelles du client

Toutes les manipulations présentées dans cette section s'effectuent sur le client. Le poste client doit donc être démarré, et vous devez être logé en tant qu'utilisateur root.

Créer un nouvel utilisateur

Dans cete maquette, le client sans disque dur va servir de “media center”. Créez un utilisateur dédié au fonctionnement des applications multimédia comme suit :

# useradd -m -c "Player user" -d /home/player -g users player
# passwd player
Changing local password for player.
New password:
Retype new password:
#
# exit

Permettre au nouvel utilisateur de monter le cdrom

D'après la page de manuel de mount(8), seul l'utilisateur root à le droit de monter un périphérique. Pour qu'un utilisateur standard puisse monter un périphérique, les exigences suivantes doivent être remplies :

  • la valeur kern.usermount (voir sysctl(8)) doit être non nulle,
  • le fichier de périphérique que l'utilisateur veut monter doit-être en lecteur/ecriture pour l'utilisateur
  • le point de montage doit être la propriété de l'utilisateur.

Appliquez, comme suit, ces exigences pour que l'utilisateur player puisse monter le cdrom.

Changer la valeur de kern.usermount

Exécutez la commande suivante pour modifier la valeur de la variable kern.usermount

# sysctl -w kern.usermount=1

Modifiez, comme suit, le fichier /etc/sysctl.conf pour que cette modification soit permanente :

# echo "kern.usermount=1" >> /etc/sysctl.conf

Modifier le groupe de l'utilisateur player

Le périphérique que l'utilisateur veut monter doit-être en lecteur/ecriture pour l'utilisateur. Le périphérique du cdrom est, dans cette maquette, /dev/cd0a. Il appartient à l'utilisateur root et au groupe operator.

Ajoutez l'utilisateur player au groupe operator. Pour ce faire, éditez le fichier /etc/group et modifiez la ligne :

operator:*:5:root

par la ligne :

operator:*:5:root,player

Enregistrez et quittez.

Modifier les permissions

Changez, comme suit, les permissions du fichier de péripérique du cdrom : /dev/cd0a :

# chmod 660 /dev/cd0a

Changez, comme suit, les permissions du point de montage du cdrom : /cdrom :

# chown player /cdrom

Ouvrir automatiquement une session X au démarrage

Ce hack n'est pas très “propre”. Il existe des gestionnaires de session X (comme gdm ou kdm) qui permettent d'autologer un utilisateur. Mais ces outils exigent de nombreuses dépendances, et l'idée ici est de garder un système assez léger. Pour se passer d'un gestionnaire de session X, procédez comme suit.

Créer le fichier /etc/rc.d/startx

Le répertoire /etc/rc.d n'existe pas par défaut. Il est créé ici, pour stocker le (ou les) script(s) d'initialisation créé(s) l'administrateur local.

Créer le répertoire /etc/rc.d comme suit :

# mkdir /etc/rc.d
# chmod 750 /etc/rc.d

Puis, créer le fichier /etc/rc.d/startx comme suit : /etc/rc.d/startx

Modifier le fichier /etc/rc

Le script /etc/rc, voir rc(8), est invoqué par init(8) pour configurer le système au démarrage (et à l'arrêt) de la machine. A la fin de ce script, l'environnement graphique, par défaut xdm(1) est lancé. Pour démarrer le script précédent, ajouter les lignes suivantes, avant le dernier exit 0 :

# Start X session as user 'player'
if [ -x /etc/rc.d/startx ]; then
     echo 'starting X11...';      . /etc/rc.d/startx start
fi

exit 0
#EOF

Stoper certains services du client

Le client sans disque dur, dans cette maquette, ne sert que de lecteur multimedia. Certains services lancés par défaut au démarrage de la machine sont ici inutiles. Pour les désactiver, créez comme suit le fichier /etc/rc.conf.local :

#/etc/rc.conf.local
sshd_flags=NO
inetd=NO
sendmail_flags=NO
#EOF

Installer des applications tierces sur le client

Pour installer des applications grâce aux packages binaires, procédez comme suit :

# export PKG_PATH="ftp://ftp.irisa.fr/pub/OpenBSD/4.0/packages/i386/"
# pkg_add aumix
# pkg_add cups
# pkg_add blackbox
# pkg_add gtksee
# pkg_add ncftp
# pkg_add mplayer
# pkg_add mozilla-firefox
# pkg_add rox-filer
# pkg_add screen
# pkg_add vim*-gtk2
# pkg_add vlc
# pkg_add xine-ui
# pkg_add xmms-mp3
# pkg_add xmms-flac
# pkg_add xmms-mad
# pkg_add xmms-vorbis
# pkg_add xpdf
# pkg_add wget

La liste précédente est donnée à titre d'exemple. Libre à vous d'installer les produits que vous aimez.

Taille des fontes GTK

Le but de ce client diskless est de réaliser un lecteur multimédia. Certaines des applications installées ci-dessus utilisent le toolkit GTK en version 1 ou 2. Dans le cas de cette maquette, le lecteur est branché sur une télévision à tube cathodique. Or, ce type d' “écran” a une très mauvaise définition. Pour favoriser la lecture des informations affichées dans les différents menus, il peut être intéressant de modifier la taille par défaut des fontes.

Pour modifier la taille par défaut des fontes pour les applications GTK+, créez comme suit le fichier ~player/.gtkrc :

style "gtk-default-cp1251" {
       fontset = "-*-helvetica-medium-r-normal--14-*-*-*-*-*-iso8859-1,\
                  -*-arial-medium-r-normal--14-*-*-*-*-*-iso8859-1,\
                  -*-helvetica-medium-r-normal--14-*-*-*-*-*-microsoft-cp1251,\
                  -*-arial-medium-r-normal--14-*-*-*-*-*-microsoft-cp1251,*-r-*
"
}
class "GtkWidget" style "gtk-default-cp1251"

Pour modifier la taille par défaut des fontes pour les applications GTK2, créez comme suit le fichier ~player/.gtkrc-2.0 :

gtk-font-name="Helvetica 13"

Désactiver le compte root du client

A l'aide de la commande vipw(8), modifiez comme suit le fichier /etc/master.passwd :

root:*lock*:0:0:daemon:0:0:Charlie &:/root:/sbin/nologin

Liens

ANNEXES

Compiler un noyau pour le client

Sur les vieilles versions d'OpenBSD le noyau GENERIC ne supportait pas les systèmes de fichiers root et swap sur NFS. Pour l'activer, il fallait compiler un noyau spécifique. Les étapes de cette section sont maintenant facultatives, car les noveaux noyaux GENERIC sont capables via le daemon bootparamd de savoir l'emplacement des systèmes de fichiers root et swap.

La compilation du noyau s'effectue sur la machine serveur.

Mettre à jour l'arbre des sources

# cd /usr
# export CVSROOT=anoncvs@anoncvs.skyrock.com:/cvs/openbsd
# export CVS_RSH=/usr/bin/ssh
# cvs -z 5 -q update -rOPENBSD_4_0 -Pd src

Configurer le noyau pour le support 'root on nfs'

# cd /usr/src/sys/arch/i386/conf
# cp GENERIC DISKLESS

Editez le fichier DISKLESS, et modifiez comme suit la ligne suivante :

config          bsd       swap  generic

en

config          bsd       root on nfs swap on nfs

Enregistez les modifications, puis quittez.

Compiler le nouveau noyau

# cd /usr/src/sys/arch/i386/conf
# config DISKLESS
# cd ../compile/DISKLESS
# make clean && make depend && make bsd
# exit

Installer le nouveau noyau

Le noyau sera chargé en mémoire lors de la “phase 2” par le “programme de démarrage”. Le “programme de démarrage” télécharge le noyau, du serveur de démarrage vers le client, via le protocole TFTP. Le nouveau noyau doit donc être copié dans l'arborescence servie par le serveur TFTP, ici /tftpboot.

Procédez comme suit :

# cd /diskless/player/root
# mv /usr/src/sys/arch/conf/compile/DISKLESS/bsd  /tftpboot/player/bsd
# chown root:wheel /tftpboot/player/bsd
# chmod 644 /tftpboot/player/bsd
# gzip -9 /tftpboot/player/bsd

Nettoyer l'arborescence des sources

La compilation d'un noyau génère de nombreux fichiers temporaires qu'il vaut mieux supprimer. Exécutez les commandes suivantes :

# cd /usr/src/sys
# make clean

Vous pouvez sauvegarder le fichier de configuration de ce noyau :

# cp /usr/src/sys/arch/conf/i386/DISKLESS /root
# cp /usr/src/sys/arch/conf/i386/DISKLESS /diskless/player/root/root

Configuration noyau DISKLESS2

Cette configuration supprime la majorité des périphériques et options du noyau GENERIC. diskless2.txt

 
doc/openbsd/diskless.txt · Dernière modification: 2009/12/23 22:36 (édition externe)     Haut de page