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
/disklessest 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 :
- La PROM charge un programme de démarrage (
boot program) - Le programme de démarrage charge le noyau (
kernel) - Le noyau monte via NFS le système de fichiers racine (
root) et laswap
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 :
- obtient l'adresse IP du client par le protocole RARP.
- obtient le nom du client et l'adresse IP du serveur en broadcastant une requête
RPC / BOOTPARAMS / WHOAMIavec l'adresse IP du client. - obtient le chemin, sur le serveur, de la racine système du client via une requête
RPC / BOOTPARAMS / GETFILEavec le nom du client. - obtient le
root file handlevia une requêtemountd(8)avec le chemin, sur le serveur, du système racine du client. - obtient le
kernel file handlevia une recherche NFS sur leroot file handle. - charge le noyau via une lecture NFS sur le
kernel file handle. - 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 :
- 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.
- le noyau obtient le
NFS file handle rooten utilisant la même procédure que celle décrite aux points 3, 4 et 5 de la phase précédente. - 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. - 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 serveurtftpainsi que le chemin du fichier à télécharger partftp.tftpd: serveur pour le protocole ipv4Trivial 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 serveurinetd.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 deswap) 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(voirsysctl(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