Nous vous avons montré comment démarrer en réseau Ubuntu LiveCD. Dans cet article, nous montrerons comment rendre certains autres utilitaires amorçables sur le réseau, ce qui vous donnera les connaissances nécessaires pour répliquer la procédure pour d’autres utilitaires que vous utilisez.
cet article n’est pas destiné aux débutants, mais vous êtes invités à continuer à lire!
Aperçu
Ce guide vise à vous donner les outils avec lesquels vous pourrez convertir des utilitaires pour devenir PXEable. Bien que malheureusement, il ne soit pas possible de convertir un outil sous le soleil, nous ne serions pas des geeks si nous n’essayions pas au moins.
Comme mentionné dans le guide «Comment démarrer en réseau (PXE) The Ubuntu LiveCD», si vous n’utilisez pas déjà Ubuntu comme votre outil numéro un pour le dépannage, les diagnostics et les procédures de secours, qu’attendez-vous?
Cela dit, il faut reconnaître qu’il y a des choses qui ne peuvent tout simplement pas être faites dans Ubuntu LiveCD (comme les mises à niveau du BIOS), ou que vous utilisez déjà un outil différent que vous aimez et que vous préférez continuer à utiliser pour une raison quelconque.
Recommandations, hypothèses et conditions préalables
- Il est supposé que vous avez déjà configuré le serveur FOG comme expliqué dans notre section «Qu’est-ce que le démarrage réseau (PXE) et comment l’utiliser?» guider.
- Vous verrez le « VIGUEUR»Utilisé comme éditeur, c’est principalement parce qu’il est largement disponible sur les plateformes Linux. Vous pouvez utiliser n’importe quel autre éditeur de votre choix.
- le CD de démarrage ultime (UBCD) est utilisé à titre d’exemple, car contrairement à certaines autres collections d’utilitaires, il est gratuit à télécharger et les programmes qu’il regroupe sont gratuits.
Pourquoi ne pas simplement utiliser ISO sur PXE?
C’est souvent la première question posée lorsque l’on parle de PXEing. La réponse courte est que s’il est techniquement possible de prendre une image ISO et de la PXE sur les machines clientes, presque toujours le contenu de ladite ISO s’attendra à ce que sa manifestation physique soit accessible dans le lecteur de CDROM physique. Par conséquent, quel que soit le contenu de ladite ISO, il essaiera de rechercher les fichiers «post boot-sector» dans le lecteur de CDROM physique de la machine cliente, ne les trouvera pas et démarrera.
Les deux moyens de surmonter ce problème sont:
- Gravez l’ISO et placez-le dans le lecteur de CDROM de la machine cliente – Bien que simple, utiliser des CD, c’est exactement ce que nous essayons d’éviter …
- Ouvrez l’ISO et modifiez la façon dont le programme fonctionne en son sein, de sorte qu’il utilise un CD-ROM qui sait comment rechercher l’ISO dans la RAM – Assez complexe et différent pour chaque type de programme amorçable. IE pas la même procédure pour Linux, WinPE ou UBCD pour n’en citer que quelques-uns.
Étant donné que les deux éléments ci-dessus vont à l’encontre de l’objectif de «simplement utiliser une ISO», c’est pourquoi nous ne recommandons pas de poursuivre cet effort.
La méthode Kernel
Bien que très rare, le programme que vous essayez de démarrer n’a besoin que d’un noyau pour fonctionner. Un exemple typique de ceci est « memtest86 +». Memtest est livré avec la plupart des CD d’installation des distributions Linux et avec FOG. Comme Memtest a seulement besoin de pouvoir communiquer avec les capacités les plus basiques du matériel testé, c’est-à-dire la mémoire (RAM), et peut fonctionner très bien sans même prendre entièrement en charge le matériel sur lequel il fonctionne (IE, il testera la mémoire, même s’il ne connaît pas son type, sa vitesse, etc.), il n’a besoin de rien d’autre et peut fonctionner de manière totalement autonome.
L’entrée de menu PXE pour memtest peut sembler aussi simple que:
LABEL Run Memtest86+
kernel fog/memtest/memtest
append -
Dans cet exemple, « LABEL Run Memtest86 + » définit le nom de l’entrée, le « kernel fog / memtest / memtest » indique à PXElinux où prendre le noyau qui sera envoyé au client et « append – » dit à PXElinux d’ignorer options de démarrage supplémentaires à partir de l’héritage *.
La méthode Kernel + Initrd
Cette méthode est de loin la plus utilisée et la plus répandue pour plusieurs raisons:
- De nos jours, de nombreux utilitaires proviennent du monde Linux.
- Parce que Linux a un excellent support matériel et est libre d’utilisation, de plus en plus d’entreprises se rendent compte que Linux est une excellente base pour construire leurs programmes propriétaires.
Utilisons l’utilitaire CPUstress d’UBCD comme exemple.
Dans la structure des fichiers UBCD, cet utilitaire se trouve dans le répertoire «ubcd / boot / cpustress». Les fichiers que nous recherchons s’appellent « bzImage»Qui est le« noyau »et« initrd.gz »qui est le« disque RAM initial ». Si vous utilisez la configuration FOG que nous avons créée, nous vous recommandons de copier le répertoire sous «/ tftpboot / howtogeek / utils». Une fois cela fait, éditez le fichier «/tftpboot/howtogeek/menus/utils.cfg» et ajoutez-y l’entrée de démarrage qui se trouve dans les entrées de menu de l’UBCD. cela peut être trouvé dans «ubcd / menus / syslinux / cpu.cfg». Avec les ajustements pour la configuration FOG, l’entrée de menu devrait ressembler à:
MENU LABEL StressCPU V2.0 (requires CPU with SSE)
TEXT HELP
Torture-test your CPU in order to make sure that you don't have overheating
problems. Requires SSE-equipped x86 CPUs. Executes a special version of the
Gromacs innerloops that mixes SSE and normal assembly instructions to heat
your CPU as much as possible.
ENDTEXT
KERNEL howtogeek/utils/cpustress/bzImage
INITRD howtogeek/utils/cpustress/initrd.gz
APPEND root=/dev/ram0 ramdisk_size=12000 noapic ubcdcmd=stresscpu2
Où :
- MENU LABEL – définit le nom de l’entrée
- TEXT HELP – Cette directive facultative donne un texte d’aide qui sera affiché dans le menu pour fournir des informations sur l’entrée sélectionnée.
- KERNEL – Spécifie l’emplacement du fichier «kernel» dans le répertoire TFTPD.
- INITRD – le même que ci-dessus uniquement pour le fichier «initrd».
- APPEND – Spécifie les paramètres supplémentaires qui doivent être transmis au programme démarré.
Quelques points à noter sont:
- Les geeks hardcore remarqueraient que nous avons remplacé la directive originale de «LINUX» par «KERNEL». C’est parce que: A. cela rend l’exemple plus facile à lire. B. Dans cet exemple, cela n’a pas vraiment d’importance.
Cela dit, généralement lorsque la directive «LINUX» est utilisée, il est préférable de la laisser ainsi car elle indique à pxelinux / syslinux que nous n’utilisons pas n’importe quel noyau mais un noyau Linux. - Nous avons délibérément retiré la directive «calme» des paramètres annexés. Cela est dû à un changement dans la façon dont Syslinux gère le paramètre «silencieux» dans les versions récentes.
- Il est possible de changer le fonctionnement du programme «StressCPU», en changeant simplement le paramètre ajouté «ubcdcmd». Donc, pour utiliser les autres fonctions, il suffit de copier l’entrée et de remplacer «stresscpu2» par: cpuinfo, cpuburn ou mprime24.
Bien qu’il s’agisse d’un exemple très simple, cela devrait suffire à vous permettre de démarrer.
La méthode Kernel + Initrd + NFS
Cette méthode est celle que nous avons utilisée dans le guide «How To Network Boot (PXE) The Ubuntu LiveCD». Cette méthode s’appuie sur la précédente et utilise le fait que certaines distributions Linux prennent en charge le montage de leur «système de fichiers racine» à partir de NFS. Le guide Ubuntu est un excellent exemple, mais soyez assuré que nous en avons déjà un autre prévu dans un proche avenir. « Gardez les yeux ouverts pour un champignon noir».
La méthode MEMDISK
MEMDISK est un utilitaire distribué avec le package Syslinux. Le but de cet utilitaire est de vous permettre d’émuler un «disque» (se référant principalement aux disquettes) en utilisant son image. La façon dont fonctionne cet utilitaire consiste à se connecter à l’emplacement dans la RAM qui spécifie comment communiquer avec le lecteur de disquette (gestionnaire d’interruption AKA) et le pointe vers un nouvel emplacement géré par le programme MEMDISK. Avec cette méthode, le «noyau» est l’utilitaire MEMDISK et le «initrd» est le fichier d’image de disquette (.img).
La seule chose à noter est que FOG est livré avec une version «memdisk» compatible avec la version pxelinux.0 qu’il utilise. Par conséquent, il est recommandé de ne pas copier le fichier «memdisk» accompagnant le fichier «img» depuis leur source.
Comme cette méthode est déjà largement utilisée, même pour les utilitaires réguliers et les BootCD, la plupart du temps, il suffit de trouver le fichier «IMG» sur le BootCD, de le copier dans le répertoire TFTPD du serveur PXE et de copier l’entrée de menu ISOlinux dans le menu PXElinux.
Ils disent que «parler n’est pas cher», voyons comment adapter l’un des utilitaires qui utilisent la méthode MEMDISK d’UBCD, pour qu’il fonctionne à partir de PXE.
L’utilitaire TestMemIV, peut être trouvé sur la structure de fichier UBCD à «ubcd / images / testmem4.img.gz». Comme nous avons déjà l’utilitaire de disque memdisk, il suffit de copier le fichier «img» dans le répertoire «howtogeek / utils /». Avec les ajustements pour la configuration FOG, l’entrée de menu devrait ressembler à:
MENU LABEL TestMemIV
TEXT HELP
Tests system memory and memory on Nvidia video cards.
ENDTEXT
LINUX memdisk
INITRD howtogeek/utils/testmem4.img.gz
Bien qu’il s’agisse d’un exemple de fichier image de disquette autonome d’UBCD, la plupart des autres programmes UBCD utilisent la même image de base pour commencer à travailler (fdubcd.img.gz) et utilisez le paramètre ajouté «ubcdcmd» pour démarrer automatiquement un programme à partir de le post-démarrage du CDROM. Cela signifie que vous ne pourrez pas convertir la plupart de leurs utilitaires pour qu’ils soient amorçables en réseau sans une ingénierie inverse majeure. Bien qu’une telle ingénierie inverse soit possible (comme on peut le voir ici) et est un excellent exercice de geek, cela dépasse le cadre de ce guide.
Cela dit, vous disposez maintenant des outils pour exécuter cette procédure pour cet utilitaire de diagnostic ésotérique OEM ou de mise à niveau du BIOS.