Beschleunigen Sie Ihren Boot-Prozeß

aus einer Sammlung von IKerekes

Dies ist eine kurze Anleitung zur Verkürzung Ihrer Bootzeit. Es ist keine vollständige Erklärung des Bootprozesses sondern gibt Ihnen lediglich ausreichende Informationen (hoffe ich zumindest) zum Verständnis warum dies helfen kann.

Der Boot-Prozeß

Die meisten Computersysteme können nur Code ausführen, der im Speicher gefunden wird (ROM oder RAM), aber moderne Betriebssysteme werden meistens auf Festplatten gespeichert (oder gelegentlich auf Live-CDs, USB-Flash Laufwerken, etc.). Wenn ein Computer eingeschaltet wird, hat er kein Betriebssystem im Speicher. Im Gegensatz zum Betriebssystem kann die Computerhardware alleine keine komplizierten Tätigkeiten, wie das Starten eines Programms von der Festplatte, ausführen, also entsteht das scheinbar unlösbare Problem wie man das Betriebssystem in den Speicher lädt. Die Lösung ist ein spezielles kleines Programm zu verwenden, genannt Bootstrap Loader oder Bootloader. Dieses Programm hat nicht die volle Funktionalität eines Betriebssystems, aber ist maßgeschneidert zum Laden von genügend anderer Software, um das Betriebssystem zu starten. Häufig werden Bootloader mit mehrfachen Stadien verwendet, in denen einige kleine Programme ablaufen bis das Letzte von ihnen das Betriebssystem startet.

In modernen Computern beginnt der Bootstrap-Prozess wenn die CPU Software, die an einer vorbestimmten Adresse in ROM (z.B., im BIOS) vorhanden ist, ausführt. Die CPU ist so entworfen, dass sie diese Software nach einer Rücksetzung ohne weitere Hilfe ausführen kann. Diese Software enthält rudimentäre Funktionalität, um nach für den Bootprozess geeigneten Geräten zu suchen und ein kleines Programm von einem speziellen Festplattenabschnitt (am allgemeinsten der Bootsektor oder Master Boot Record) zu laden. Der Bootprozeß wird über den Bootloader, der im MBR der ersten Bootvorrichtung liegt, gesteuert.

Die Initrd und das Booten des Betriebssystems

In diesem Dokument beziehe ich mich auf die Bootloader Grub (Grand Unified Bootloader) oder Lilo (Linux Loader), und gehe davon aus, dass die Bootvorichtung ein IDE-Festplattenlaufwerk mit bereits installiertem PCLinuxOS ist.

Wie viele unter Ihnen bereits wissen, lädt der Bootloader den Kernel und die initrd (Initial Ram Disk) der Installation. Diese kümmern sich dann um die Prozesse zum Starten des Betriebssystems. Die Datei initrd.img ist normalerweise eine Verknüpfung zu einer .img Datei, die spezifisch für den verwendeten Kernel ist. Diese Datei wird bei der Kernelinstallation erzeugt und in etwa den Namen „initrd-<kernel_version>.img“. Zur Ansicht der initrd Dateien Ihres Computers geben Sie das folgende in einem Terminal ein:

ls -l /boot/init*

Dies sollte Ihnen in etwa so etwas anzeigen

[root@localhost boot]# ls -l /boot/init*
root root 124605 Jul 19 07:09 /boot/initrd-2.6.16.27.dev2.img
root root 25 Aug 7 07:43 /boot/initrd.img ->initrd-2.6.16.27.dev2.img

Beachten Sie im zweiten Eintrag die vorhin besprochene Verknüpfung.

Die spezifische initrd enthält ein anfängliches root Dateisystem mit genügend Code, um das Betriebssystem mit diesem Kernel zu starten. Bei der Erzeugung dieser Datei werden die Informationen in der installkernel Datei (/etc/sysconfig/installkernel) verwendet - insbesondere für benötigte zusätzliche Treiber der vorhandenen Hardware. Während der ursprünglichen Installation lud die Live-CD alle vorhandenen Treiber, um zu garantieren, dass möglichst alle Hardware benutzt werden kann. Die meisten Maschinen benötigen nur einen Bruchteil dieser Treiber, die meisten Treiber sind also überflüssig und können entfernt werden. Folglich sollte das Entfernen dieser Treiber den Bootprozeß beschleunigen.

Erstellung einer spezifischen Initrd

Um den Bootprozeß mit der Erstellung einer spezifischen initrd Datei zu beschleunigen können Sie entweder:

  • Einen neuen Kernel installieren
  • oder

  • Einen vorhandenen Kernel reinstallieren

Der kleine Unterschied in der verwendeten Methode ist, dass bei einer bereits vorhandenen Kernel-spezifischen Datei initrd-<kernel_version>.img keine neue initrd Datei bei der Reinstallation dieses Kernels erzeugt wird. Die Neuerstellung der initrd.img Datei können Sie erzwingen, indem Sie die vorhandene initrd-<kernel_version>.img Datei dieses Kernels umbenennen oder löschen.

Kurzgefasst, werden die Informationen der Datei installkernel (genauer gesagt in der Zeile „INITRDOPTS=“) zur Erzeugung einer initrd-<kernel_version>.img Datei für den zu (re-)-installierenden Kernel verwendet. Erinnern Sie sich auch an die Datei initrd.img, die lediglich eine Verknüpfung zur Datei initrd-<kernel_version>.img ist.

Wenn eine Datei initrd-<kernel_version>.img für den zu installierenden Kernel existiert, ändern Sie deren Namen.

Die Datei /etc/sysconfig/installkernel als root öffnen und die „INITRDOPTS=“ Zeile auf Ihre Bedürfnisse abändern. Ich empfehle die Datei initrd-<kernel_version>.img umzubenennen, denn dann können Sie diese bei einem eventuellen Fehler wieder verwenden. Wenn Sie sicher sind, dass alles funktioniert können Sie sie löschen.

Seien Sie sehr vorsichtig, dass Sie keinen Treiber löschen, den Ihre Installation verwendet.

Nachdem Sie die Datei installkernel zu Ihrer Zufriedenheit bearbeitet haben, kann sie nun von der Kernelinstallation verwendet werden, um eine initrd-<kernel_version>.img Datei für diesen Kernel zu erzeugen. Dies geschieht automatisch bei jeder (Re-) Installation eines Kernels.

Also

  • Wählen Sie den gewünschten Kernel aus.
  • Geben Sie einer für diesen Kernel spezifischen initrd-<kernel-version>.img Datei, falls diese existieren sollte, einen anderen Namen.
  • Bearbeiten Sie Zeile „INITRDOPTS=“ in /etc/sysconfig/installkernel (wie im Beispiel unten).
  • (Re-)-Installieren Sie Ihren ausgewählten Kernel.
  • Starten Sie den Computer neu.

Das ist schon alles. Sie booten jetzt ohne die zusätzlichen Treiber, die Sie nicht benötigen.

Das folgende ist nur ein Beispiel meines Computers und gilt nicht generell, denn Ihr Computer verwendet andere Hardware.

Inhalt der alten Installkernel Datei in der Zeile InitrdOpts

INITRDOPTS=" --with libata --with sd_mod --with ata_piix --with scsi_mod --with sr_mod --with sg --with aic7xxx --with BusLogic --with ahci --with sata_qstor --with sata_sis --with sata_sx4 --with sata_uli --with sx8 --with sata_sis --with sata_nv --with sata_promise --with sata_sil --with sata_svw --with sata_via --with sata_vsc --with scsi_transport_spi "

Dies enthält alle sata und scsi Festplattentreiber. Sie benötigen aber nur die Treiber für Ihre Hardware. Wenn Sie zum Beispiel den „sata_sil“ Treiber benötigen, würde die Zeile so aussehen:

INITRDOPTS=" --with sata_sil"

Wenn Sie weder sata noch scsi sondern nur eine IDE Festplatte haben, sähe der Inhalt der neuen Installkernel Datei InitrdOpts Zeile so aus:

INITRDOPTS= ""

Wenn Sie Ihren Festplattentreiber nicht kennen, gehen Sie zu PCLinux Kontrollzentrum>Hardware>Ihre System Hardware, wählen Sie dort Ihre Festplatte aus und lesen dann die Informationen im rechten Fensterteil. Weitere ausführliche Information über das Laden des Betriebssystems und initrd können hier gefunden werden:-

http://en.wikipedia.org/wiki/Bootloader

http://en.wikipedia.org/wiki/Initrd

Selbstverständlich gelten die üblichen Warnhinweise - Änderungen an Ihrem Betriebssystem geschehen auf Ihre eigene Gefahr.

Top Weiter