Hvad er netværksstart (PXE), og hvordan kan du bruge det?

Har du nogensinde haft brug for at foretage fejlfinding eller diagnosticere en problematisk computer, og du har glemt, hvor hjælpecd'en er? Vi viser dig, hvordan du bruger netværksstart (PXE) med FOG til at gøre dette problem til fortiden.

Billede af h.koppdelaney

Oversigt over PXE

PXE (Pre eXecution Environment), kærligt udtalt Pixie (som i fe støv), er en metode til at have en slutcomputer (klient) opstart ved kun at bruge sit netværkskort. Denne opstartsmetode blev oprettet helt tilbage i 1999, og så længe den pågældende computer er tilsluttet netværket (og understøtter denne standard), er det muligt at omgå den normale opstartsprocedure (IE Power on -> BIOS -> HD / CD) og lav nogle smarte ting fra fejlfinding til brug af liveOS og endda re-billedbehandling af maskinen ... men vi kommer foran os, lad os komme tilbage til begyndelsen.

Når du bruger PXE, ændres opstartsprocessen fra den normale rækkefølge til:

Tænd -> BIOS -> Netværkskortets PXE-stak -> Network Boot Program (NBP) downloadet ved hjælp af TFTP fra server til klientens RAM -> NBP's ansvar for at udføre det næste trin (alias 2. trin opstart).

Ved hjælp af "PXElinux" NBP er det muligt at konfigurere serveren til mere end blot et PXE-startprogram til vores klienter. På en måde er det den hemmelige ingrediens, der gør det muligt for os at udføre alt det ovenstående og derefter noget. For en mere detaljeret forklaring af hele processen, dens historie og nogle af de infrastrukturmuligheder, den og gPXE (som er en mere udviklet fætter) muliggør, se dette foredrag på YouTube fra deres udviklere. Nedenfor er også en video af en opsætning fra 2008, der hurtigt gennemgår nogle af boot-mulighederne.

Mål

Denne guide vil være den første i en række guider om PXEing. I denne vejledning lægger vi det fundament, som vi vil bygge på i fremtidige artikler.

Anbefalinger, antagelser og forudsætninger

  • Klientmaskinen, du tester med, understøtter opstart af PXE, og du ved, hvordan du aktiverer den.
  • Denne vejledning blev skrevet og testet ved hjælp af Debian Squeeze, Ubuntu-server 9.10 og Linux Mint10. Derfor antages det, at du også har et Debian-baseret system at arbejde med.
  • Det kan være en god idé at se, hvordan du opsætter software RAID til en simpel filserver, og hvordan du opsætter netværkslinkaggregering (802.3ad), fordi disk- og netværksbåndbreddekrav til denne type server kan blive rigtig høj virkelig hurtig. Det anbefales stærkt at bygge på fundamentet for en server med høj modstandsdygtighed til dets netværk og diskundersystemer.
  • Du vil se mig bruge VIM som redigeringsprogram, det er bare fordi jeg er vant til det ... du kan bruge en hvilken som helst anden editor, du gerne vil have.

Installation - Det tunge løft ved at udnytte FOG

FOG er en gratis open source-computerkloningsløsning oprettet af * Chuck Syperski og Jian Zhang. FOG tager regelmæssigt tilgængelig software (som Apache, MySQL og tftpd-hpa for at nævne et par stykker) og pakker dem i en gratis og produktiseret PC Lifecycle management-løsning (PCLM). Ved hjælp af denne gratis PCLM er det muligt at sikkerhedskopiere en computertilstand ved at billedgøre den, implementere programmer og indstillinger (IE Firefox, Office, printere osv.) Og konfigurationspolitikker (IE automatisk logoff og pauseskærmindstillinger) for at nævne nogle få gennem en central webgrænseflade.


Bemærk : Et interview med Chuck og Jian om FOG er tilgængeligt på Tightwad Tech.

Brug af FOG som grundlaget for din PXE-server er en god genvej til at have alle de nødvendige dele som TFTP, og hvis det er nødvendigt DHCP på plads uden at skulle installere og konfigurere dem manuelt, samtidig med at du giver dig al FOGs funktionalitet som en bonus .

Da vores mål er at tilføje funktionalitet til dette allerede fantastiske system, vil vi ikke dække, hvordan man bruger FOG selv eller dets installationsprocedure i dybden. FOGs wiki med deres skriftlige og video-vejledninger er tilstrækkelig robust til at få detaljerede oplysninger, hvis du vil nørde igennem det. De sammenfattede trin er:

  • sudo mkdir -p /opt/fog-setup

  • Download the latest FOG packagefrom sourceforge to the directory created in the previous step.
  • Extract the package and start the installation.


    sudo tar -xvzf fog*

  • You will be prompted several times by the installer:


    3. What is the IP address to be used by this FOG Server? [server-IP-detected-on-eth0] – Enter.


    10. Acknowledge and follow the on screen instructions for MySQL.


    11. Leave the MySQL password blank for the root account.



    Image from the FOG wiki.

  • Go to the Fog address with your browser and follow the on screen instructions.

*Note:  Assuming you do NOT have another DHCP  or that it is not setup to handle PXE. If you want to configure your existing DHCP, see Configure DHCP for PXE.

As far as installing FOG goes, that should be it. Again, while FOG is a great system, using it, is not the focus of this guide, and we encourage you to head over to it’s wiki so you can get a better grasp of FOG’s abilities and how it can help you to manage your clients lifecycle.

If all when well you should be able to PXE boot your client machine (usually F12) and get greeted by FOG’s default menu.


As a quick “taste of things to come” you may select the “Run Memtest86+” option and get greeted by the Memtest program we covered in our “Diagnose PC Hardware Problems with an Ubuntu Live CD” guide.

File and directory Structures

As stated earlier, our aim is to extend FOG’s abilities and to that end we will need to add some files and directories.

Create the subdirectory structure:

sudo mkdir -p /tftpboot/howtogeek/menus

These sub-directories will serve as templates for all the pictures, programs and configurations we will use to extend FOG.

Adjusting the “default” configuration file

We will build a new main menu, and put all of the FOG functions into their own sub-menu.

Copy the /tftpboot/pxelinux.cfg/default configuration file into howtogeek/menus/fog.cfg

sudo cp /tftpboot/pxelinux.cfg/default /tftpboot/howtogeek/menus/fog.cfg

Now edit the content of the original “default” file:

sudo vim /tftpboot/pxelinux.cfg/default

Make its content look like this:

DEFAULT vesamenu.c32


LABEL FOG


KERNEL vesamenu.c32


APPEND howtogeek/menus/fog.cfg

LABEL Utils MENU

LABEL Linux


LABEL fog.local

When we finish, this configuration will give you 3 sub-menus: “Utilities”, “Manual FOGing”, “Linux stuff”.

Create the “master” file

The master file allows us to make global changes to the look and feel of the menus without reentering them individually over and over. Things like the default background picture, border stile, position Etc’, will all be consolidated in this master.cfg file.

Create the file:

sudo vim /tftpboot/pxelinux.cfg/master.cfg

Make it’s content look like:

MENU BACKGROUND fog/genie.png

MENU MARGIN 0

The configuration above, will create the purple borders and highlighting, if you whish to have a different look and feel, simply change the values.


To set a background picture, put a picture in the “/tftproot” directory and point the “MENU BACKGROUND” to the picture’s relative path (we recommend using pictures with resolution of 640*480). For example the full path for the above configured picture would be: “/tftproot/fog/bg.png“.

Connect the FOG sub-menu to the main menu

Because we made a simple copy of the original configuration file into the menus sub-directory (keeping its color schema, timeouts and alike), if you go into this sub-menu now from the PXE booted client, it would work, but you will not be able to return to the main menu without rebooting the machine.

So edit the /tftpboot/howtogeek/menus/fog.cfg file:

sudo vim /tftpboot/howtogeek/menus/fog.cfg

Add this entry after the “menu color title” entry and before the FOG functions:

LABEL back

Create the sub menu skeletons

We have created 4 sub-menus, three of them are up to us to fill. To do so, lets create the template that we will be building on.

Create the template file:

sudo vim /tftpboot/howtogeek/menus/template.cfg

Make this its content:


  

MENU INCLUDE /pxelinux.cfg/master.cfg

Lets set the stage for additional sub-menus, which will be covered in future guides:


  

cd /tftpboot/howtogeek/menus/

That’s it, the basic layout is now ready and from now on, we only need to build upon it, which we will in future guides. Until these future guides arrive, you are encouraged to get familiar with FOG as it is an exciting ride upon it’s self.

Update: The future is here :)

How To Network Boot (PXE) The Ubuntu LiveCD

Go FOG yourself