OVH Cloud OVH Cloud

Diskless pas facile

5 réponses
Avatar
Nicolas Ecarnot
Bonjour,

Je tente de faire du diskless avec etherboot, DHCP, NFS...
Mon serveur est un FreeBSD5.1R mais je pense que ça n'a pas d'importance
dans les questions.

Pour l'instant, j'ai monté sur mon serveur tout ce qui était nécessaire
(dhcpd, bootpd, nfsd et root filesystem).

J'ai un petit pentium dans lequel j'ai mis une disquette crée avec
etherboot qui marche bien : Elle lance la requête DHCP, le serveur lui
répond, la station télécharge le kernel que j'ai compilé précédemment de
façon adéquate.

Une fois le kernel chargé (après que les tas de petits points ont fini
de s'afficher, genre ftp+hash), le mot 'done' apparait suivi d'un
curseur clignotant.
Il clignote pendant quelques seconde puis se transforme en curseur
plein.

L'observation par tcpdump des interactions entre le serveur et la
station montre qu'une fois que le curseur change d'apect, la station
commence à envoyer des requêtes de type NFS au serveur, mais celui-ci
lui répond :

monserveur.societe.com.nfs > xterm0.societe.com.1900131223: reply ok
28 lookup ERROR: No such file or directory

J'imagine donc que j'ai loupé un truc dans la config de mon serveur NFS,
alors je lui ouvre grandes les portes en mettant
/ -alldirs xterm0
dans mon /etc/exports

Mais le même comportement se répête.

Ce que je voudrais bien savoir, c'est *ce que demande* la station. Or
tcpdump ne me donne que les entêtes des paquets.
Alors je les regarde avec ethereal, mais là, je ne sais plus quoi lire
tellement les infos sont nombreuses (filtrées sur l'ip de la station),
et je ne connais pas le protocole NFS en détail pour savoir *quoi*
regarder.

Bref, comment diagnostiquer ce qui ne fonctionne pas ?

--
Nicolas Ecarnot

5 réponses

Avatar
Jacques Caron
Salut,

On 26 Nov 2003 16:22:43 GMT, Nicolas Ecarnot
wrote:

Ce que je voudrais bien savoir, c'est *ce que demande* la station. Or
tcpdump ne me donne que les entêtes des paquets.
Alors je les regarde avec ethereal, mais là, je ne sais plus quoi lire
tellement les infos sont nombreuses (filtrées sur l'ip de la station),
et je ne connais pas le protocole NFS en détail pour savoir *quoi*
regarder.

Bref, comment diagnostiquer ce qui ne fonctionne pas ?


Tu peux déjà booter le kernel en verbose, ça peut aider. Ensuite tu peux
restreindre les droits NFS pour le client sur le serveur, tu auras des
logs des accès refusés :-)

Sinon, pour la cause du problème, il y a plusieurs possibilités d'indiquer
le chemin NFS de la partition racine: soit dans la config du kernel, soit
via les paramètres BOOTP/DHCP (mais dans ce cas il faut mettre l'option
qui va bien dans le kernel).

Hop,

Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/

Avatar
Nicolas Ecarnot
Le Wed, 26 Nov 2003 17:37:36 +0100,
Jacques Caron disait :
Bref, comment diagnostiquer ce qui ne fonctionne pas ?


Tu peux déjà booter le kernel en verbose, ça peut aider. Ensuite tu peux


Comment booter un kernel BSD en verbose ? Est-ce que ça fait partie des
options de compilation du noyau ?

restreindre les droits NFS pour le client sur le serveur, tu auras des
logs des accès refusés :-)


Certes, mais pour l'instant, même en autorisant tout au max, il semble
quand même que la station aille chercher un fichier qui n'existe pas.
Ou alors la log est trompeuse, et le problème est ailleurs...

Sinon, pour la cause du problème, il y a plusieurs possibilités d'indiquer
le chemin NFS de la partition racine: soit dans la config du kernel, soit
via les paramètres BOOTP/DHCP (mais dans ce cas il faut mettre l'option
qui va bien dans le kernel).


J'ai spécifié le chemin du NFS root filesystem dans la config de dhcpd,
et dans le kernel de la station, j'ai rajouté l'option
"BOOTP_NFSROOT # NFS mount root filesystem using BOOTP info"
qui permet de faire ce que le commentaire explique, donc ça, ça va.

D'ailleurs, une fois bloquée, ma station est joignable par un ping, donc
elle a bien reçu son IP, et sa couche réseau semble ok.



Ok, ce qui m'arrangerait bien, c'est de trouver une méthode bien
verbeuse de voir ce qui se passe, et c'est vrai que sous linux, on avait
droit à des tartines de blabla bien utile.

Je continue mes recherches.

Et sinon, Nico LS, es-tu là ?

--
Nicolas Ecarnot


Avatar
Jacques Caron
On 26 Nov 2003 16:45:14 GMT, Nicolas Ecarnot
wrote:

Comment booter un kernel BSD en verbose ? Est-ce que ça fait partie des
options de compilation du noyau ?


Normalement un bon "-v" pendant le boot, mais avec etherboot je ne sais
pas si c'est possible si etherboot charge ton kernel directement, tu as
probablement intérêt à utiliser pxeboot entre les deux, ce qui te
permettra d'utiliser un loader.rc et autres choses amusantes de ce type.

restreindre les droits NFS pour le client sur le serveur, tu auras des
logs des accès refusés :-)


Certes, mais pour l'instant, même en autorisant tout au max, il semble
quand même que la station aille chercher un fichier qui n'existe pas.


Justement, si tu restreints les droits, il ira chercher ce même fichier,
mais ne pourra pas le faire, et dans ce cas tu auras un log d'erreur du
serveur NFS (ou de mountd plutôt, peut-être?) si je ne m'abuse...

Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/


Avatar
Nicolas Ecarnot
Le Wed, 26 Nov 2003 18:10:11 +0100,
Jacques Caron disait :
Normalement un bon "-v" pendant le boot, mais avec etherboot je ne sais
pas si c'est possible si etherboot charge ton kernel directement, tu as
probablement intérêt à utiliser pxeboot entre les deux, ce qui te
permettra d'utiliser un loader.rc et autres choses amusantes de ce type.


En effet, je ne sais pas si on peut le faire avec etherboot.
(J'imagine que ça dépend du type de noyau, et donc que c'est sans doute
plus du côté du noyau qu'il faut chercher.)
(Je cherche)

Pour PXE, j'ai peur qu'il ne me jette pour cause de noyau trop gros,
comme il le fait trop souvent.

Certes, mais pour l'instant, même en autorisant tout au max, il semble
quand même que la station aille chercher un fichier qui n'existe pas.


Justement, si tu restreints les droits, il ira chercher ce même fichier,
mais ne pourra pas le faire, et dans ce cas tu auras un log d'erreur du
serveur NFS (ou de mountd plutôt, peut-être?) si je ne m'abuse...


Ah YES ! Trop fort Jacques.
Je vais essayer ça par essais et erreurs.

A plus.

--
Nicolas Ecarnot


Avatar
Nicolas Le Scouarnec
Sinon, pour la cause du problème, il y a plusieurs possibilités d'indiquer
le chemin NFS de la partition racine: soit dans la config du kernel, soit
via les paramètres BOOTP/DHCP (mais dans ce cas il faut mettre l'option
qui va bien dans le kernel).


Ca m'interesse, c'est quoi la syntaxe pour préciser une racine NFS
directement dans la config du noyau ?

--
Nicolas Le Scouarnec
http://nlsn.free.fr (Slrnfr, Docs Linux/BSD, La grippe, ... )