Jump to content

Boot from Lan


 Share

Recommended Posts

Bonsoir tout le monde,

 

depuis quelques temps je m'interroge sur l'utilisation du PXE, c'est à dire l'option boot on lan de nos cheres cartes réseaux, et malgré mes recherches je n'arrive pas a trouver un sujet clair parlant du sujet.

 

Histoire d'eclairicir la chose, j'expose mes intentions, je dispose d'un pc qui me sers uniquement a passer des films, qui fonctionne avec Geexbox (~6mo), avec un disque dur de 350mo plutôt bruyant. Ma question c'est de savoir s'il n'existe pas un moyen de faire booter ce pc en se passant de disque.

Ainsi est il forcé d'utiliser un serveur linux ? faut il remplacer le role de serveur DHCP du routeur ?

Je précise que la geexbox est bootable de tout support pour peu que l'ordi le supporte, et detecte tout le necessaire directement, en se chargant dans la ram (une fois lancé, le support devient donc inutile, en gros j'eteins le disque une fois lancé, mais ca reste des manips evitables...).

 

Merci a ceux qui pourront m'apporter des détails/explications/solutions.

Link to comment
Share on other sites

Salut

 

Le mode bootable des cartes réseaux n'est actif que si une epprom est fixée dessus.

 

Sans epprom il est néanmoins tout à fait possible de faire booter un PC diskless.

 

Pour celà on utilise un programme (genre LTSP) en faisant booter le PC sur une disquette qui contient la ROM de la carte réseau. Attention ! il y a des limitations quand à la taille de la ROM pouvant être utilisée. De mémoire (j'avais travailler la dessus dans la boite où je bossais ça fait plus d'un an...) les roms supérieures à 32ko ne sont pas supportée (pour des raisons de contraintes de place dans la mémoire allouée au démarrage du système (une grande partie de la mémoire est utilisée par le bios et par les fonctions étendues du bios).

 

Il faut ensuite effectivement avoir un serveur Linux de l'autre coté avec installé un logiciel genre LTSP (c'est celui que j'avais utilisé à l'époque...y en a peut être d'autres depuis). En effet je crois pas qu'il soit possible de chargé un Terminal Server directement au boot (et de toute façon faudrait avoir un server avec Windows 2000 server ou 2003).

 

Sur le serveur Linux faut ensuite avoir le serveur DHCP de l'autre coté (si c'est ton routeur qui joue ce rôle ça devrait fonctionner sans problème). Il faut également un demon tftp pour pouvoir charger en mémoire vive le noyau LSTP ainsi qu'un serveur NFS pour le système de fichier.

 

Après ça tu devrais pouvoir utiliser ton PC sans disque...

Link to comment
Share on other sites

J'ai malheureusement pas encore eu le temps d'approfondir mes recherches, en tout cas je te remercie de tes explications, si je m'en sors un jour j'hesiterais pas a en faire part. J'ai un P75 all-in-one (ecran et UC tout attaché) qui traine, avec un vieux linux ca peut ptetre le faire :heu:

 

Mais je finirais par le faire, y a bien un gars qu'a du trouver une solution détaillée sur le net.

Il me semble qu'il serait "faisable" d'appliquer tout ca a partir d'un windows, malheureusement la faible présence de ce systeme a pas trop du pousser les gens a develloper autour.

Link to comment
Share on other sites

Salut

 

Si ça t'interresse je dois avoir quelques part sur un cd la procedure que j'avais faite pour mon boss de l'époque. Si je la retrouve je pourrais te l'envoyer.

Link to comment
Share on other sites

Bon très bien je vais le mettre ici.

 

Attention je préviens, soyez indulgents, ce fût l'une de mes premières procédures (trop de blabla, mal organisé...mais j'étais jeune et innocent =) )...Donc la forme est vraiment à chier et j'ai pas envis de m'la retapper :D

 

 

 

 

 

Projet LTSP :

 

Principes et objectifs :

 

 

La problématique posée fut de mettre au point système analogue à un terminal X : Autrement dit un PC diskless bootant sous la carte réseau et chargeant les informations nécessaires à partir d’un autre PC.

2 questions se sont alors posées immédiatement : Comment booter sur la carte réseau sachant que nos cartes sont dépourvues d’EPROM ? Comment charger les informations nécessaires ?

 

Après diverses recherches, nous avons pu répondre à ces 2 questions majeures. Ainsi, en ce qui concerne le boot du terminal, nous avons réalisé une disquette bootable possédant la rom de la carte réseau. Pour le chargement des informations nécessaires, nous utiliserons LTSP, un projet terminal serveur sous Linux développé par l’équipe du site www.ltsp.org.

 

Matériel et software :

 

-serveur test : Bi-Pentium 3, 256Mo de RAM , RedHat 8

 

-Terminal test : Pentium 2 350, 128 Mo de RAM, diskless, carte réseau Realtek 8139b

 

-LTSP version 3.0 contenant les packages suivants :

-Ltsp_core-3.0.9 contenant les instructions primordiales de LSTP

-ltsp_kernel-3.0.5 correspondant au noyau Linux qui sera récupéré par le terminal

-ltsp_X_core-3.0.4 et ltsp_X_fonts-3.0.0 nécessaire à l’ouverture d’une session X sur le terminal

 

-serveur/client TFTP : tftp-hpa-0.32.tar.gz

 

-L’image de la disquette bootable contenant la ROM de la carte Ethernet (réalisée par rom-0-matic)

 

La procédure exacte d’installation est donnée en annexe 1

 

 

Protocole d'installation

 

1/Extraction des tar.gz

 

>tar [xfz] xxxxx.tar.gz

 

2/Installation le LTSP version 3.0

 

>./install.sh

 

3/Initialisation de LTSP

 

>cd /opt/ltsp/templates

 

>./ltsp_initialise

 

4/Configuration LSTP

 

·DHCPd

 

Le fichier de configuration se trouve dans /etc/dhcpd_conf

 

# Sample configuration file for ISCD dhcpd

#

# Make changes to this file and copy it to /etc/dhcpd.conf

#

ddns-update-style none;

 

default-lease-time 600;

max-lease-time 7200;

 

option subnet-mask 255.255.0.0;

option broadcast-address 172.20.255.255;

option routers 172.20.255.254;

option domain-name-servers 172.20.255.254;

option domain-name "yourdomain.com";

option root-path "172.20.255.254:/opt/ltsp/i386";

 

option option-128 code 128 = string;

option option-129 code 129 = text;

 

shared-network WORKSTATIONS {

subnet 172.20.0.0 netmask 255.255.0.0 {

}

}

 

group {

use-host-decl-names on;

option log-servers 172.20.255.254;

 

host ws001 {

hardware ethernet 00:48:54:66:a8:57;

fixed-address 172.20.0.3;

filename "/tftpboot/lts/vmlinuz-2.4.19-ltsp-1";

## option option-128 e4:45:74:68:00:00; #This is NOT a MAC address

## option option-129 "NIC=ne IO=0x300";

 

 

Il est important de bien faire corréler les paramètres attribués à eth1 et les paramètres de configuration DHCP.

 

-le nom d’host de la machine cliente est défini par « host XXXX {…. »

 

-hardware Ethernet correspond à l’adresse MAC de la carte réseau cliente

 

-FileName désigne le path du noyau à charger

 

-les lignes 128,129 (en commentaire) ne sont utiles que dans le cas d’une utilisation de carte réseau ISA

 

Il est également nécessaire de créer dans /etc un fichier dhcpd.leases qui servira de fichier log dhcp.

 

·Lts config

 

[Default]

SERVER = 172.20.255.254

XSERVER = auto

X_MOUSE_PROTOCOL = "PS/2"

X_MOUSE_DEVICE = "/dev/psaux"

X_MOUSE_RESOLUTION = 400

X_MOUSE_BUTTONS = 3

XkbLayout = "fr"

USE_XFS = N

LOCAL_APPS = N

RUNLEVEL = 5

 

 

Ne pas oublier de stipuler l’adresse du serveur correspondant à l’ip d’eth1.

 

5/Serveur TFTP

 

Dans le répertoire où TFTP décompressé :

 

>./configure

 

>./make

 

Pour lancer le démon :

 

>in.tftpd –l ( sert à paramétrer le tftpd en mode écoute)

 

>in.tftpd (lance le serveur)

 

6/Serveur NFS

 

pour lancer/arrêter le démon NFS :

 

>cd etc/init.d

 

>./nfs [start/stop/status]

Il faut rajouter dans etc/exports la ligne “/opt/ltsp/i386

 

Fonctionnement

 

Boot du terminal :

 

La disquette de boot n’est pas obligatoire dans le cas d’une carte réseau possédant une puce ROM. Il suffit à ce moment là de configurer le bios pour booter sur la carte.

La ROM contenue dans la disquette est chargée en mémoire vive, dans la partie de 1 Mo allouée automatiquement au démarrage du système. Ceci entraîne donc une limitation de la taille de la ROM. En effet, 360 ko sont alloués au Bios, ce qui ne laisse donc que 640 ko. Néanmoins, une très grande partie de cet espace est utilisée par les fonctions étendues du bios. Ainsi la limitation de la taille de la ROM a été fixée à 48ko.

On distingue 4 tailles de ROM en fonction de l’eprom, et de la carte : 8ko, 16ko, 32ko ,64ko. En pratique donc, les ROM de 8, 16 et 32 k sont supportée.

 

Connexion avec le serveur :

 

La première étape est de donner à la carte réseau une adresse ip. En effet le protocole choisi est tcp/ip (utilisé par tftp, nfs ect..). Pour obtenir cette ip, le terminal envois sur tout le réseau son adresse MAC. Si le serveur DHCP possède dans son fichier de configuration l’adresse MAC du terminal demandeur, il lui attribue l’adresse ip correspondante (stipulée dans le même fichier de configuration).

 

Chargement du noyau :

 

Une fois la connexion établie et le paramétrage tcp/ip effectué, le noyau est transmit par le serveur via FTP au terminal qui le charge en mémoire vive.

 

Système de fichier :

 

Le démon NFS permet au terminal de savoir que son système de fichier et présent sur le disque du serveur. Le répertoire crée lors de l’installation de LTSP (/opt/ltsp/i386) est alors accessible au terminal (à condition de paramétrer la variable exports). Ce répertoire contient l ‘arborescence UNIX nécessaire (/dev, /proc, /etc, /sbin, /bin, /tmp et /var)

 

Utilisation Pratique et perspectives :

 

Ce projet Terminal Serveur sous Linux est particulièrement intéressant pour l’entreprise : En effet, il permettrait d’homogénéiser le parc de certains services, et ce à moindre coût. Les Postes clients n’ont plus besoin d’être performants puisqu’ils ne sont qu’une interface sur le serveur. Il est en effet envisageable de faire tourner des applications sur certains postes obsolètes, sans contrainte pour l’utilisateur.

 

L’upgrade des Machines, qui constitue une charge importante pour l’entreprise, serait mieux contrôlé, plus ciblé et plus efficace pour les services demandeurs de configurations performantes (pour les webdesigners par exemple).

Néanmoins, il faut de puissants serveurs capables de faire tourner plusieurs sessions en parallèle et de traiter l’ensemble des informations facilement.

 

Du fait des contraintes du réseau actuel et des serveurs utilisés, seul un parc faisant tourner une application légère voir moyenne pourrait être constitué de la sorte. Hors certains services comme la réservation sont dans ce cas de figure (utilisation intensive de Filemaker)

De plus, ce projet LTSP pourrait permettre, lors de migrations de serveurs Windows vers Linux, de remplacer Terminal Server sous Windows (payant) par LTSP.

 

En pratique, LTSP c’est montré particulièrement intéressant tant au niveau des performances que de la flexibilité qu’il apporte : en effet il s’est montré particulièrement efficace sur la Machine de test.

Ceci dit, le terminal test était une machine relativement puissante. Il serait intéressant d’effectuer un test sur une machine de faible performance (sur un pentium 133 par exemple).

Il est à noter que la puissance du terminal a une influence, ne serait ce que pour la nature des packages incorporés. En effet, nous n’avons testé que les modules de base alors que certaines extensions sont applicables en cas d’utilisation de terminaux puissants. Certains packages permettent d’utiliser la mémoire et la puissance du processeur pour faire tourner une partie des applications localement et ainsi alléger la charge du serveur.

Il existe également d’autres types de packages non testés permettant de faire fonctionner une webcam ou un scanner.

 

Problèmes rencontrés :

 

Ils furent nombreux pour ce projet, en raison d’un manuel en ligne mal conçu et manquant d’information.

 

La principale difficulté fut rencontrée au niveau de l’image bootable de la disquette. Plusieurs tests de cartes réseaux différentes ont été nécessaires. Nous avons également recompilé les sources nécessaires à la création de l’image et même testé une autre méthode via netboot mais sans résultat. Au final, le problème à été résolu sans explication claire et précise : le câble RJ45 ou un port du hub défaillant est suspecté mais sans preuve concrète.

La compilation des sources d’etherboot à poser problème en raison de la version du GCC (compilateur). En effet, le GGC utilisé pour RedHat 8 est une version 3.x.x, qui diffère grandement des versions antérieures comme par exemple la version 2.9. Netboot quant à lui posait des problèmes de compatibilité avec les cartes.

 

L’autre difficulté rencontrée est due à la configuration des différents paramètres DHCP et NFS. Les renseignements fournis par le manuel sont peu explicites à ce sujet. Il a donc été nécessaire d’effectuer des recherches supplémentaires

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...