28Jun

So richten Sie bootfähige Netzwerkdisketten mithilfe von PXE ein

click fraud protection

Wir haben Ihnen gezeigt, wie Sie die Ubuntu LiveCD im Netzwerk booten können. In diesem Artikel zeigen wir Ihnen, wie Sie andere Dienstprogramme im Netzwerk bootfähig machen können. Dadurch erhalten Sie das Wissen, die Prozedur für andere Dienstprogramme zu replizieren, die Sie möglicherweise verwenden.

Hinweis: Dieser Artikel ist nicht auf Anfänger ausgerichtet, aber Sie können gerne weiter lesen!

Bild von Steve Jurvetson

Überblick

Dieses Handbuch soll Ihnen die Tools zur Verfügung stellen, mit denen Sie Dienstprogramme in PXEable konvertieren können. Während es leider nicht möglich ist, irgendein Werkzeug unter die Sonne zu bringen, wären wir keine Geeks, wenn wir es nicht zumindest versuchen würden.

Wie auf dem Leitfaden "How To Network Boot( PXE) Der Ubuntu LiveCD" erwähnt, worauf warten Sie noch, wenn Sie Ubuntu nicht bereits als Ihr "Nummer Eins" -Tool für die Fehlersuche, Diagnose und Rettung verwenden?

Damit muss man anerkennen, dass es Dinge gibt, die einfach nicht innerhalb der Ubuntu LiveCD gemacht werden können( wie BIOS-Upgrades), oder dass Sie bereits ein anderes Tool benutzen, das Sie mögen und das Sie aus welchem ​​Grund auch immer weiter verwenden möchten.

instagram viewer

-Empfehlungen, Annahmen und Voraussetzungen

  • Es wird vorausgesetzt, dass Sie den FOG-Server bereits eingerichtet haben, wie in unserem Leitfaden "Was ist ein Netzwerk-Start( PXE) und wie können Sie ihn verwenden?"
  • Das Programm "VIM", das als Editor verwendet wird, wird hauptsächlich deshalb verwendet, weil es auf Linux-Plattformen weit verbreitet ist. Sie können jeden anderen Editor verwenden, den Sie möchten.
  • Die Ultimate Boot CD( UBCD) wird als Beispiel verwendet, da sie im Gegensatz zu anderen Utility-Sammlungen kostenlos heruntergeladen werden kann und die gebündelten Programme kostenlos verwendet werden können.

Warum nicht einfach ISO über PXE verwenden?

Dies ist oft die erste Frage, wenn man über PXEing spricht. Die kurze Antwort ist, dass, während es technisch möglich ist, ein ISO-Image zu erstellen und PXE zu den Client-Rechnern zu bringen, fast immer den Inhalt dieser ISO erwartet, dass die physische Manifestation von sich aus im physischen CD-ROM-Laufwerk verfügbar ist. Daher wird der Inhalt des besagten ISOs versuchen, nach den Post-Boot-Sektor-Dateien in dem physischen CD-ROM-Laufwerk des Client-Rechners zu suchen, sie nicht zu finden und zum Booten fehlzuschlagen.

Die zwei Wege, dieses Problem zu überwinden, sind:

  • Brennen Sie das ISO und legen Sie es in das CDROM-Laufwerk des Client-Computers - Während einfach, nicht mit CDs, ist genau das, was wir versuchen zu vermeiden. ..
  • Öffnen Sie die ISO und änderndie Art, wie das Programm darin arbeitet, so dass es einen CDROM -Treiber verwendet, der weiß, wie man im RAM nach der ISO sucht - ziemlich komplex und für jede Art von bootfähigem Programm unterschiedlich. I.E.nicht das gleiche Verfahren für Linux, WinPE oder UBCD um nur einige zu nennen.

Da beide der oben genannten das Ziel "nur mit einer ISO" zu besiegen, sind wir nicht empfehlen, dieses Vorhaben zu verfolgen.

Die Kernel-Methode

Obwohl es sehr selten ist, benötigt das Programm, das versucht zu booten, möglicherweise nur einen Kernel, um zu funktionieren. Ein typisches Beispiel hierfür ist "memtest86 +".Memtest wird mit den meisten Installations-CDs für Linux-Distributionen und mit FOG ausgeliefert. Da Memtest nur mit den grundlegendsten Fähigkeiten der getesteten Hardware kommunizieren kann, ist I.E.der Speicher( RAM), und kann gut funktionieren, ohne auch nur die Hardware zu unterstützen, auf der es läuft( IE wird den Speicher testen, auch wenn es seinen Typ, Geschwindigkeit & etc nicht kennt), hat es nicht nötigalles andere und kann völlig autonom arbeiten.

Der PXE-Menüeintrag für Memtest sieht möglicherweise so einfach aus:

LABEL Ausführen von Memtest86 +
Kernel-Nebel /memtest/ memtest
Anhängen -

In diesem Beispiel legt der "LABEL Run Memtest86 +" den Namen des Eintrags fest, den "Kernel-Nebel /memtest/ memtest"teilt PXElinux mit, wo der Kernel zu verwenden ist, der vom Client gesendet wird, und "append -" weist PXElinux an, zusätzliche Startoptionen von * Vererbung zu ignorieren.

* Hinweis: Abhängig von Ihrer Konfiguration ist dies möglicherweise nicht erforderlich und wird in FOG nicht verwendet.

Die Kernel + Initrd-Methode

Diese Methode ist bei weitem die am häufigsten verwendete und aus mehreren Gründen weit verbreitete Methode:

  • Viele Utilities kommen heutzutage aus der Linux-Welt.
  • Da Linux über eine hervorragende Hardware-Unterstützung verfügt und frei verwendet werden kann, erkennen immer mehr Unternehmen, dass Linux eine hervorragende Basis für die Entwicklung eigener Programme darstellt.

Verwenden Sie als Beispiel das CPUstress-Dienstprogramm von UBCD.

In der UBCD-Dateistruktur befindet sich dieses Dienstprogramm im Verzeichnis "ubcd /boot/ cpustress".Die Dateien, nach denen wir suchen, heißen "bzImage", was der "Kernel" ist, und "initrd.gz", was die "initial ram disk" ist. Wenn Sie das von uns erstellte FOG-Setup verwenden, empfehlen wir Ihnen, das Verzeichnis unter "/tftpboot/howtogeek/ utils" zu kopieren. Sobald dies erledigt ist, bearbeiten Sie die Datei "/tftpboot/howtogeek/menus/ utils.cfg" und fügen Sie den Boot-Eintrag zu den Menüeinträgen des UBCD hinzu. Dies kann in "ubcd /menus/syslinux/ cpu.cfg" gefunden werden. Mit den Einstellungen für das FOG-Setup sollte der Menüeintrag wie folgt aussehen:

MENU LABEL StressCPU V2.0( erfordert CPU mit SSE)
TEXT HILFE
Torture-Test Ihre CPU, um sicherzustellen, dass Sie keine Überhitzung
habenProbleme. Benötigt SSE-ausgestattete x86-CPUs. Führt eine spezielle Version der
Gromacs-Innenschleifen aus, die SSE und normale Montageanweisungen mischen, um
Ihre CPU so weit wie möglich zu erhitzen.
ENDTEXT
KERNEL HowTogeek


INTRD howtogeek /utils/cpustress/ initrd.gz
APPEND root = /dev/ ram0 ramdisk_size = 12000 noapic ubcdcmd = stresscpu2

Wo:

  • MENU LABEL - setzt den Namen des Eintrags
  • TEXT HELP - Diese optionale Anweisung gibt HilfeText, der im Menü angezeigt wird, um Informationen zum ausgewählten Eintrag bereitzustellen.
  • KERNEL - Gibt den Speicherort der "Kernel" -Datei im TFTPD-Verzeichnis an.
  • INITRD - das gleiche wie oben nur für die "initrd" -Datei.
  • APPEND - Gibt zusätzliche Parameter an, die an das gestartete Programm übergeben werden sollen.

Ein paar Dinge zu beachten sind:

  • Hardcore-Geeks würden bemerken, dass wir die ursprüngliche Anweisung von "LINUX" durch "KERNEL" ersetzt haben. Dies liegt an: A. Dies macht das Beispiel leichter lesbar. B. In diesem Beispiel spielt es keine Rolle.
    Wenn das gesagt wird, normalerweise wenn die Anweisung "LINUX" verwendet wird, ist es besser, es so zu belassen, weil es pxelinux / syslinux mitteilt, dass wir nicht irgendeinen Kernel benutzen, sondern einen Linux-Kernel.
  • Wir haben die "Ruhe" -Richtlinie bewusst aus den angehängten Parametern genommen. Dies liegt an einer Änderung in der Art und Weise, wie Syslinux den Parameter "quiet" in neueren Versionen behandelt.
  • Es ist möglich, den Betrieb des Programms "StressCPU" zu ändern, indem einfach der angehängte Parameter "ubcdcmd" geändert wird. Um die anderen Funktionen zu verwenden, muss man nur den Eintrag kopieren und "stresscpu2" ersetzen: cpuinfo, cpuburn oder mprime24.

Während dies ein sehr einfaches Beispiel ist, sollte es genug sein, um Sie in Gang zu bringen.

Die Kernel + Initrd + NFS-Methode

Diese Methode ist die, die wir im Leitfaden "How To Network Boot( PXE) Die Ubuntu LiveCD" verwendet haben. Diese Methode baut auf der vorherigen auf und nutzt die Tatsache, dass einige Linux-Distributionen unterstützen, dass ihr "Root-Dateisystem" von NFS gemountet wird. Der Ubuntu-Leitfaden ist ein hervorragendes Beispiel, aber seien Sie versichert, dass wir bereits ein weiteres für die nahe Zukunft geplant haben."Halten Sie Ihre Augen offen für einen schwarzen Pilz".

Die MEMDISK-Methode

MEMDISK ist ein Dienstprogramm, das mit dem Syslinux-Paket verteilt wird. Der Zweck dieses Hilfsprogramms ist es, Ihnen zu ermöglichen, eine "Diskette"( die sich hauptsächlich auf Disketten bezieht) zu emulieren, indem Sie ihr Image verwenden. Die Art und Weise, wie dieses Dienstprogramm funktioniert, besteht darin, den Speicherort im RAM einzuhängen, der angibt, wie mit dem Diskettenlaufwerk( A.K.A. Interrupt-Handler) kommuniziert wird, und es an einen neuen Speicherort zu verweisen, der vom MEMDISK-Programm gehandhabt wird. Bei dieser Methode ist der "Kernel" das Dienstprogramm MEMDISK und "Initrd" ist die Disketten-Image-Datei( .img).

Zu beachten ist, dass FOG eine "memdisk" -Version enthält, die mit der verwendeten pxelinux.0-Version kompatibel ist. Daher wird empfohlen, die Datei "memdisk", die die Datei "img" begleitet, nicht von ihrer Quelle zu kopieren.

Da diese Methode bereits sehr häufig verwendet wird, ist es selbst für reguläre Dienstprogramme und BootCDs meistens einfach, die "IMG" -Datei auf der BootCD zu finden, sie in das Server-TFTPD-Verzeichnis des PXE zu kopieren und den ISOlinux-Menüeintrag zu kopierenzum PXElinux-Menü.
Sie sagen "Sprechen ist billig", also schauen wir uns an, wie wir eines der Dienstprogramme anpassen können, die die MEMDISK-Methode von UBCD verwenden, um von PXE aus zu arbeiten.

Das Dienstprogramm TestMemIV befindet sich in der UBCD-Dateistruktur unter "ubcd /images/ testmem4.img.gz".Da wir bereits das Dienstprogramm memdisk disk haben, muss man nur die Datei "img" in das Verzeichnis "howtogeek /utils/" kopieren. Mit den Einstellungen für das FOG-Setup sollte der Menüeintrag wie folgt aussehen:

MENU LABEL TestMemIV
TEXT HILFE
Testet Systemspeicher und Speicher auf Nvidia Grafikkarten.
ENDTEXT
LINUX memdisk
INITRD howtogeek /utils/ testmem4.img.gz

Während dies ein Beispiel für eine eigenständige Disketten-Image-Datei von UBCD ist, verwenden die meisten anderen UBCD-Programme das gleiche Basis-Image, um mit der Arbeit zu beginnen( fdubcd.img.gz) und verwenden Sie den angehängten Parameter "ubcdcmd", um ein Programm von der CDROM nach dem Booten automatisch zu starten. Dies bedeutet, dass Sie die meisten ihrer Dienstprogramme nicht ohne großen Reverse Engineering in ein Netzwerk-Boot-Programm konvertieren können. Während ein solches Reverse Engineering möglich ist( wie hier zu sehen ist) und eine ausgezeichnete Geek-Übung ist, würde es den Rahmen dieses Leitfadens sprengen.

Mit dem oben genannten haben Sie nun die Werkzeuge, um dieses Verfahren für dieses esoterische OEM-Diagnose- oder BIOS-Upgrade-Programm durchzuführen.

Und so, verschlossen hinter dem Tor des Blutes und hinter der Halle des Feuers, erwartet die Tapferkeit, dass der Held des Lichts erwacht. ..