Startpagina » hoe » Hoe installeer je Network Bootable Utility Discs met behulp van PXE

    Hoe installeer je Network Bootable Utility Discs met behulp van PXE

    We hebben je laten zien hoe je op het netwerk kunt opstarten met de Ubuntu LiveCD. In dit artikel laten we zien hoe u een ander opstartbaar hulpprogramma voor hulpprogramma's kunt maken, zodat u de procedure kunt repliceren voor andere hulpprogramma's die u mogelijk gebruikt.

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

    Afbeelding door Steve Jurvetson

    Overzicht

    Deze gids is bedoeld om je de tools te geven waarmee je hulpprogramma's kunt converteren om PXEable te zijn. 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 probleemoplossing, diagnose en reddingstool, waar wacht u nog op?

    Met dat gezegd, moet men 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 wilt gebruiken om welke reden dan ook.

    Aanbevelingen, veronderstellingen en vereisten

    • Er wordt van uitgegaan dat u de FOG-server al hebt ingesteld zoals uitgelegd in onze handleiding "Wat is netwerk-booten (PXE) en hoe kunt u het gebruiken?".
    • Je zult het "VIM" -programma zien dat als de editor wordt gebruikt, 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 voorbeeld gebruikt, in tegenstelling tot sommige andere hulpprogramma-verzamelingen, 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 wordt gesteld als je het hebt over PXEing. Het korte antwoord is dat hoewel technisch gezien het mogelijk is om een ​​ISO-image te maken en PXE het naar de client-machines, vrijwel altijd de inhoud van die ISO verwacht, dat de fysieke manifestatie van zichzelf toegankelijk zal zijn 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 CD-ROM-station van de client-machine, zal ze niet vinden en mislukken opstarten.

    De twee manieren om dit probleem op te lossen zijn:

    • Verbrand de ISO en plaats deze in het CD-ROM-station van de clientmachine - hoewel eenvoudig, Niet CD's gebruiken, is precies wat we proberen te vermijden ...
    • Open de ISO en verander de manier waarop het programma erin werkt, zodat het een CD-ROM gebruikt bestuurder die 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 bovenstaande het doel verslaan van "gewoon gebruik maken van een ISO", is dit de reden waarom we niet aanbevelen dit streven na te streven.

    De Kernel-methode

    Hoewel het zelden voorkomt, 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) heeft het niets nodig anders en kan volledig autonoom werken.

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

    LABEL Voer Memtest86 uit+
    kernel fog / memtest / memtest
    toevoegen -

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

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

    De methode Kernel + Initrd

    Deze methode is om een ​​aantal redenen verreweg de meest gebruikte en wijdverspreide methode:

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

    Laten we het USTCD CPUstress-gereedschap gebruiken als een voorbeeld.

    Op de UBCD-bestandsstructuur bevindt dit hulpprogramma zich in de map "ubcd / boot / cpustress". De bestanden waarnaar we op zoek zijn, worden "bzImage" genoemd, wat de "kernel" is, en "initrd.gz" wat de "initiële ramschijf" is. Als je de FOG-setup gebruikt die we hebben gemaakt, raden we aan dat je de map 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 als volgt uit moeten zien:

    MENU LABEL StressCPU V2.0 (vereist een CPU met SSE)
    TEKST HELP
    Torture-test je CPU om ervoor te zorgen 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 mengen om te verwarmen
    je CPU zoveel mogelijk.
    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
    • TEKSTHULP - Deze optionele instructie geeft Help-tekst 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 extra 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 het voorbeeld gemakkelijker leesbaar maakt. 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 gebruiken, maar een Linux-kernel.
    • We hebben de "stille" richtlijn opzettelijk uit de toegevoegde parameters gehaald. Dit is het gevolg van een verandering in de manier waarop Syslinux in recente versies met de "stille" parameter omgaat.
    • 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 maar de invoer te kopiëren en "stresscpu2" te vervangen door: cpuinfo, cpuburn of mprime24.

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

    De Kernel + Initrd + NFS-methode

    Deze methode is degene 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 specificeert hoe te communiceren met de floppydrive (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 ding om op te merken is dat FOG wordt geleverd met een "memdisk" -versie die compatibel is met de pxelinux.0-versie die het 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 grimmig 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ëren naar het PXElinux-menu.
    Ze zeggen "praten is goedkoop", dus laten we eens kijken hoe we een van de hulpprogramma's die de MEMDISK-methode gebruiken kunnen aanpassen vanuit UBCD, om te werken vanuit PXE.

    Het hulpprogramma TestMemIV is te vinden op de UBCD-bestandsstructuur op "ubcd / images / testmem4.img.gz". Omdat we al over het memdisk-schijfhulpprogramma beschikken, hoeft het "img" -bestand alleen naar de map "howtogeek / utils /" te worden gekopieerd. 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 floppy image-bestand van UBCD, gebruiken de meeste andere UBCD-programma's hetzelfde basisbeeld om te werken (fdubcd.img.gz) en de toegevoegde parameter "ubcdcmd" om een ​​programma automatisch 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 gids.

    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 op de Poort van Bloed en voorbij de Vuurzaal, wacht Valor op de Hero van Licht om te ontwaken ...