Bootvorgang: Unterschied zwischen den Versionen

Aus Mikiwiki
Zur Navigation springen Zur Suche springen
Zeile 17: Zeile 17:


== FAQ ==
== FAQ ==
=== Bootvorgang beschleunigen ===
Einige Methoden zur Beschelunigung des Bootvorgangs wurden von Phil Endecott beschrieben:
* Diagnose des Ist-Zustands mit Hilfe von [[Bootchart]] und [[Bootgraph]]. Bei Endecott vergingen von GRUB bis zur Anzeige des XDM-Anmeldefensters 33 Sekunden.
* Erste einfache Massnahmen sind: Verringerung des GRUB-Timeouts auf ein Minimum, Entfernung ungenutzter Dienste, Booten mit höchster CPU-Frequenz (bei regelbaren Prozessoren)
* [[Kernel]]-Tuning: Endecott setzt einen Kernel ohne Initrd oder Initramfs sowie mit einkompilierten Hardwaretreibern ein, sodass das zeitaufwändige Laden von Kernel-Modulen wegfällt.
* Auch das Coldplugging (das Erstellen der Gerätedateien durch [[Udev]]) frisst normalerweise Zeit. Endecott stellt ein Skript zur Verfügung, das die einmal von Udev erstellten Einträge im Verzeichnis "/dev" speichert und in Zukunft automatisch ohne Udev-Detektionsvorgang erzeugt.
* Zu den weiteren Verfahren gehört Disk-Readahead, was allerdings nur geringe Zeitersparnis bringt. Auch beim Stellen der Systemuhr mit [[hwclock]] (was Debian zweimal tut) lässt sich ein wenig Zeit gewinnen. X wird früher, die Netzwerkgeräte dagegen werden später gestartet, als Debian es in der Standardeinstellung tut.
* Endecotts gesamte Zeitersparnis betrug 19 Sekunden, womit Debian also in 14 Sekunden bootete.


=== SUSE Linux ab Diskette booten ===
=== SUSE Linux ab Diskette booten ===

Version vom 3. Mai 2009, 00:49 Uhr

Als Bootvorgang (auch: Booten, Hochfahren, Starten; engl. to boot, to bootstrap) wird das Laden des Betriebssystems bezeichnet, wie es beispielsweise nach dem Einschalten eines Rechners erforderlich ist.

Der Bootvorgang eines Linux-Rechners sieht wie folgt aus:

  • Das BIOS lädt den Bootloader
  • Der Bootloader startet den Linux-Kernel
  • Der Linux-Kernel initialisiert die zu diesem Zeitpunkt wesentliche Hardware. Wesentlich für die Zeitspanne dieses Vorgangs sind die einkompilierten Treiber und Subsysteme.
  • Der Linux-Kernel stösst den ersten Prozess im Userland namens "Init" an
  • Der Init-Prozess startet über ein komplexes System von Skripten weitere Prozesse, um abhängig vom eingestellten Runlevel einen bestimmten Zustand herzustellen.

Durch bestimmte Parameter erfährt der Kernel, auf welcher Partition das root-Dateisystem liegt und mit welcher grafischen Auflösung er booten soll. Ausserdem können Modulparameter angegeben werden - Informationen, die dem Kernel sagen, mit welchen Optionen er einen Treiber für bestimmte Hardware laden soll. Alle Startparameter, die der Kernel nicht kennt, ignoriert er und gibt sie an den ersten gestarteten Prozess (init) weiter. Ist der Parameter in den Startskripten des Systems definiert, reagiert "init" entsprechend darauf.

Fie meisten Linux-Distributionen verwenden für den Bootvorgang das SysV-Init-System. Zwar nutzen Ubuntu und Fedora inzwischen Upstart, nutzen es aber nicht nativ, um Prozesse zu parallelisieren. Init-NG und Apples Launchpad wären Alternativen. Wem das nicht reicht, nutzt einfach Suspend oder Hibernate.

Mit dmesg können die Bootmeldungen nachträglich angesehen werden, sobald das Betriebssystem erfolgreich gebootet wurde.

Bootchart klinkt sich als Init-Prozess ein und misst die Zeit jedes Prozesses.

FAQ

Bootvorgang beschleunigen

Einige Methoden zur Beschelunigung des Bootvorgangs wurden von Phil Endecott beschrieben:

  • Diagnose des Ist-Zustands mit Hilfe von Bootchart und Bootgraph. Bei Endecott vergingen von GRUB bis zur Anzeige des XDM-Anmeldefensters 33 Sekunden.
  • Erste einfache Massnahmen sind: Verringerung des GRUB-Timeouts auf ein Minimum, Entfernung ungenutzter Dienste, Booten mit höchster CPU-Frequenz (bei regelbaren Prozessoren)
  • Kernel-Tuning: Endecott setzt einen Kernel ohne Initrd oder Initramfs sowie mit einkompilierten Hardwaretreibern ein, sodass das zeitaufwändige Laden von Kernel-Modulen wegfällt.
  • Auch das Coldplugging (das Erstellen der Gerätedateien durch Udev) frisst normalerweise Zeit. Endecott stellt ein Skript zur Verfügung, das die einmal von Udev erstellten Einträge im Verzeichnis "/dev" speichert und in Zukunft automatisch ohne Udev-Detektionsvorgang erzeugt.
  • Zu den weiteren Verfahren gehört Disk-Readahead, was allerdings nur geringe Zeitersparnis bringt. Auch beim Stellen der Systemuhr mit hwclock (was Debian zweimal tut) lässt sich ein wenig Zeit gewinnen. X wird früher, die Netzwerkgeräte dagegen werden später gestartet, als Debian es in der Standardeinstellung tut.
  • Endecotts gesamte Zeitersparnis betrug 19 Sekunden, womit Debian also in 14 Sekunden bootete.

SUSE Linux ab Diskette booten

# umount /dev/fd0
# dd if=/media/cdrom/boot/bootdsk1 of=/dev/fd0
# dd if=/media/cdrom/boot/bootdsk2 of=/dev/fd0
# dd if=/media/cdrom/boot/bootdsk3 of=/dev/fd0

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen