28Jun

Hoe installeer je Network Bootable Utility Discs met behulp van PXE

We hebben je laten zien hoe je de Ubuntu LiveCD op het netwerk opstart. In dit artikel laten we zien hoe u een ander opstartbaar hulpprogramma voor hulpprogramma's kunt maken. Dit geeft u de kennis om de procedure te repliceren voor andere hulpprogramma's die u mogelijk gebruikt.

Opmerking: dit artikel is niet gericht op beginners, maar je bent van harte welkom om verder te lezen!

Afbeelding door Steve Jurvetson

Overzicht

Deze handleiding is bedoeld om u de tools te geven waarmee u hulpprogramma's kunt converteren naar PXEable. Hoewel het helaas niet mogelijk is om gereedschap in de zon te zetten, zouden we geen nerds zijn als we het niet op zijn minst zouden proberen.

Zoals vermeld in de handleiding "How To Network Boot( PXE) The Ubuntu LiveCD", Als u Ubuntu nog niet gebruikt als uw nummer één "go to" voor het oplossen van problemen, diagnose en reddingstools, waar wacht u dan nog op?

Dat gezegd hebbende, moet je erkennen dat er dingen zijn die simpelweg niet gedaan kunnen worden binnen de Ubuntu LiveCD( zoals BIOS-upgrades), of dat je al een andere tool gebruikt die je leuk vindt en liever om welke reden dan ook blijft gebruiken.

Aanbevelingen, veronderstellingen en vereisten

  • Er wordt van uitgegaan dat u de FOG-server al hebt ingesteld zoals uitgelegd in onze gids "Wat is netwerk-booten( PXE) en hoe kunt u het gebruiken?".
  • Je zult het "VIM" -programma zien als de editor, dit komt vooral omdat het algemeen beschikbaar is op Linux-platforms. U mag elke andere editor gebruiken die u wilt.
  • De Ultimate Boot CD( UBCD) wordt als een voorbeeld gebruikt, in tegenstelling tot sommige andere hulpprogramma's, is het gratis te downloaden en zijn de programma's die het bundelt gratis te gebruiken.

Waarom niet alleen ISO gebruiken over PXE?

Dit is vaak de eerste vraag die gesteld wordt als we het hebben over PXEing. Het korte antwoord is dat, hoewel technisch gezien, het mogelijk is om een ​​ISO-image te nemen en PXE het naar de client-machines, bijna altijd zal de inhoud van die ISO verwachten dat de fysieke manifestatie van zichzelf toegankelijk is in de fysieke CDROM-drive. Daarom, wat de inhoud van die ISO ook is, het zal proberen te zoeken naar de "post boot-sector" -bestanden in het fysieke CDROM-station van de client-machine, zal ze niet vinden en mislukt om op te starten.

De twee manieren om dit probleem te verhelpen zijn:

  • Verbrand de ISO en plaats deze in het CD-ROM-station van de clientcomputer - Hoewel eenvoudig, Niet die CD's gebruikt, is precies wat we proberen te vermijden. ..
  • ISO openen en wijzigende manier waarop het programma erin werkt, zodat het een CDROM -stuurprogramma gebruikt dat weet hoe de ISO in RAM moet worden opgezocht - tamelijk complex en anders voor elk type opstartbaar programma. D.W.Z.niet dezelfde procedure voor Linux, WinPE of UBCD om er maar een paar te noemen.

Aangezien beide bovengenoemde nederlagen het doel van "alleen maar het gebruik van een ISO" hebben, is dit de reden waarom we niet aanbevelen dit streven na te streven.

De Kernel-methode

Hoewel zeer zelden, heeft het programma dat u probeert op te starten mogelijk slechts een kernel nodig om te functioneren. Een typisch voorbeeld hiervan is "memtest86 +".Memtest wordt geleverd met de meeste Linux-distributies installatie-CD's en met FOG.Aangezien Memtest alleen maar hoeft te communiceren met de meest basale mogelijkheden van de geteste hardware, heeft I.E.het geheugen( RAM), en kan prima werken zonder zelfs de hardware waarop het draait volledig te ondersteunen( IE zal het geheugen testen, zelfs als het zijn type, snelheid & etc niet kent) hoeft het nietiets anders en kan volledig autonoom werken.

Het PXE menu-item voor memtest ziet er misschien zo simpel uit als:

LABEL Run Memtest86 +
kernel fog /memtest/ memtest
append -

In dit voorbeeld stelt de "LABEL Run Memtest86 +" de naam van het item in, de "kernel mist /memtest/ memtest"vertelt PXElinux waar de kernel naartoe moet die naar de client wordt gestuurd van en "append -" vertelt PXElinux om aanvullende opstartopties van * inheritance te negeren.

* Opmerking: afhankelijk van je opstelling is dit misschien niet eens nodig en wordt het in FOG zelfs niet gebruikt.

De Kernel + Initrd-methode

Deze methode is veruit de meest gebruikte en op grote schaal verspreid om een ​​aantal redenen:

  • Veel utilities komen tegenwoordig uit de Linux-wereld.
  • Omdat Linux geweldige hardware-ondersteuning heeft en gratis te gebruiken is, realiseren steeds meer bedrijven zich dat Linux een uitstekende basis is om hun eigen programma's op te bouwen.

Laat het USTCD CPUstress-gereedschap als een voorbeeld gebruiken.

Op de UBCD-bestandsstructuur bevindt dit hulpprogramma zich in de map "ubcd /boot/ cpustress".De bestanden die we zoeken, worden "bzImage" genoemd, wat de "kernel" is, en "initrd.gz" wat de "initiële ramschijf" is. Als u de FOG-setup gebruikt die we hebben gemaakt, raden we aan dat u de directory kopieert onder "/tftpboot/howtogeek/-utils".Als dat is gebeurd, bewerk je het bestand "/tftpboot/howtogeek/menus/ utils.cfg" en voeg je het bootitem toe aan de menu-items van de UBCD.dit is te vinden in "ubcd /menus/syslinux/ cpu.cfg".Met de aanpassingen voor de FOG-setup zou het menu-item er uit moeten zien als:

MENU LABEL StressCPU V2.0( vereist CPU met SSE)
TEKST HELP
Torture-test je CPU om er zeker van te zijn dat je geen oververhitting hebt
problemen. Vereist SSC-uitgeruste x86-CPU's. Voert een speciale versie uit van de
Gromacs-binnenloops die SSE en normale montage-instructies mixen om
uw CPU zo veel mogelijk te verwarmen.
ENDTEXT
KERNEL howtogeek /utils/cpustress/ bzImage
INITRD howtogeek /utils/cpustress/ initrd.gz
APPEND root = /dev/ ram0 ramdisk_size = 12000 noapic ubcdcmd = stresscpu2

Waar:

  • MENU LABEL - stelt de naam van het item in
  • TEXT HELP - Deze optionele richtlijn geeft hulptekst die in het menu wordt weergegeven om informatie te geven over het geselecteerde item.
  • KERNEL - Specificeert de locatie van het "kernel" -bestand in de TFTPD-directory.
  • INITRD - hetzelfde als hierboven alleen voor het "initrd" -bestand.
  • APPEND - Specificeert aanvullende parameters die moeten worden doorgegeven aan het opgestarte programma.

Een paar dingen om op te merken zijn:

  • Hardcore-geeks zouden opmerken dat we de oorspronkelijke richtlijn van "LINUX" vervangen door "KERNEL".Dit komt omdat: A. dit maakt het voorbeeld gemakkelijker te lezen. B. In dit voorbeeld maakt het niet echt uit.
    Met dat gezegd, is het beter om het zo te laten als de richtlijn "LINUX" wordt gebruikt, omdat het pxelinux / syslinux vertelt dat we niet zomaar elke kernel maar een Linux-kernel gebruiken.
  • We hebben de "stille" richtlijn opzettelijk uit de toegevoegde parameters gehaald. Dit is het gevolg van een wijziging in de manier waarop Syslinux de parameter "quiet" verwerkt in recente versies.
  • Het is mogelijk om de werking van het programma "StressCPU" te wijzigen door simpelweg de toegevoegde parameter "ubcdcmd" te wijzigen. Dus om de andere functies te gebruiken, hoeft men alleen de invoer te kopiëren en "stresscpu2" te vervangen door: cpuinfo, cpuburn of mprime24.

Hoewel dit een heel eenvoudig voorbeeld is, zou het genoeg moeten zijn om u op weg te helpen.

De methode Kernel + Initrd + NFS

Deze methode is de methode die we hebben gebruikt in de handleiding "How To Network Boot( PXE) The Ubuntu LiveCD".Deze methode bouwt voort op de vorige en maakt gebruik van het feit dat sommige Linux-distributies ondersteunen dat hun "rootbestandssysteem" is gemount vanuit NFS.De Ubuntu-gids is een uitstekend voorbeeld, maar wees gerust, we hebben er al een gepland voor de nabije toekomst."Houd je ogen open voor een zwarte paddestoel".

De MEMDISK-methode

MEMDISK is een hulpprogramma dat wordt gedistribueerd met het Syslinux-pakket. Het doel van dit hulpprogramma is om u in staat te stellen een "schijf" te emuleren( voornamelijk verwijzend naar diskettes) met behulp van de afbeelding ervan. De manier waarop dit hulpprogramma werkt, is om in te loggen op de locatie in het RAM-geheugen die aangeeft hoe te communiceren met de diskettedrive( A.K.A. Interrupt-handler) en wijst deze naar een nieuwe locatie die wordt afgehandeld door het MEMDISK-programma. Met deze methode is de "kernel" het MEMDISK-hulpprogramma en het "initrd" is het floppy image( .img) -bestand.

Het enige dat moet worden opgemerkt is dat FOG wordt geleverd met een "memdisk" -versie die compatibel is met de pxelinux.0-versie die wordt gebruikt. Daarom wordt aanbevolen om het "memdisk" -bestand dat bij het "img" -bestand hoort niet van hun bron te kopiëren.

Omdat deze methode al enorm wordt gebruikt, zelfs voor reguliere hulpprogramma's en BootCD's, is het meestal een kwestie van het vinden van het "IMG" -bestand op de BootCD, het naar de PXE-server-TFTPD-map kopiëren en het ISOlinux-menu-item kopiërennaar het PXElinux-menu.
Ze zeggen "talk is cheap" dus laten we eens kijken hoe we een van de hulpprogramma's die de MEMDISK-methode gebruiken vanuit UBCD kunnen aanpassen om te werken vanuit PXE.

Het hulpprogramma TestMemIV is te vinden op de UBCD-bestandsstructuur op "ubcd /images/ testmem4.img.gz".Aangezien we al over het memdisk-schijfhulpprogramma beschikken, hoeft u het "img" -bestand alleen naar de map "howtogeek /utils/" te kopiëren. Met de aanpassingen voor de FOG-setup zou het menu-item er als volgt uit moeten zien:

MENU LABEL TestMemIV
TEKST HELP
Test systeemgeheugen en geheugen op Nvidia-videokaarten.
ENDTEXT
LINUX memdisk
INITRD howtogeek /utils/ testmem4.img.gz

Hoewel dit een voorbeeld is van een op zichzelf staand diskettebestand van UBCD, gebruiken de meeste andere UBCD-programma's dezelfde basisafbeelding om te beginnen werken( fdubcd.img.gz) en gebruik de toegevoegde parameter "ubcdcmd" om een ​​programma automatisch op te starten vanaf het opstarten van de CDROM-post. Dit betekent dat je de meeste van hun hulpprogramma's niet kunt converteren om op te starten met een netwerk zonder enige belangrijke reverse engineering. Hoewel een dergelijke reverse engineering mogelijk is( zoals hier te zien is) en een uitstekende nerdoefening is, valt deze buiten het bestek van deze handleiding.

Met het bovenstaande gezegd, heb je nu de tools om deze procedure uit te voeren voor dat esoterische OEM-diagnose- of BIOS-upgradehulpprogramma.

En dus, wachtend achter de Gateway of Blood en voorbij de Hall of Fire, wacht Valor op de Hero of Light om te ontwaken. ..