Der Bootprozess unter Linux kann, verglichen mit anderen Betriebssystemen, schon mal recht lang dauern. Jedoch lässt sich einiges beschleunigen.
1. BIOS:
- RAM-Test abschalten
- Evtl. Auto-detect von IDE-Geräten abschalten und manuell einstellen
2. Bootloader:
- Timeout runtersetzen
- Grub braucht einige Sekunden länger, wenn eine CD im Laufwerk liegt. Warum? Und kann man es abschalten?
- Das sollte nichts mit dem Bootloader zu tun haben. Das hängt eher an der boot-device-priority aus dem BIOS. Wenn man öfters mal CDs im Laufwerk haben sollte, dann kann man boot von CD/DVD einfach rausnehmen. Wenn man dann doch mal von CD/DVD booten muss, muss man es halt im BIOS wieder einstellen.
3. Linux:
- Kernel-Module:
- Nicht-modularen Kernel bauen. Bootet evtl. deutlich schneller (z.B. müssen bei einigen Distributionen bei jedem Start Modul-Abhängigkeiten überprüft werden, dies erspart man sich dadurch.)
- Module nicht automatisch via hardware-detection laden lassen sondern genau angeben, welche module geladen werden sollen und Hardware-Detection komplett abschalten
- Services:
- Unbenötigte Services abschalten, verkürzt nicht nur bootzeit, sondern spart auch Speicher und evtl. Rechenzeit während des Betriebs.
- Weniger wichtige Services erst starten, wenn alles andere (wichtige) bereits gestartet wurde. Z.B. ist es bei den meisten Desktop-Systemen nicht schlimm, wenn Services wie inetd, ssh, cron, cups, etc. erst gestartet werden, wenn alles andere bereits läuft.
- X11 starten, während boot noch läuft. Bei vielen Distributionen wird X11 als letztes gestartet. Unter umständen kann es Sinn machen X11 zu starten, während andere Services noch gestartet werden.
- Gleichzeitiges starten der Services. Einige Services haben Timeouts, während sie auf Input warten (z.B. ntpdate wartet auf zeitserver, dhclient auf ein dhcp-response, etc.). Würden sie im Hintergrund gestartet werden, könnten andere Services in diesen Timeouts die Rechenzeit nutzen.
Frage dazu: wo wird denn definiert welche Services wann gestartet werden? -- StephanRössig 2005-07-29 14:36:18
Beim "alten" SysVinit gibt es üblicherweise die verzeichnisse /etc/rcX.d, wobei X die Nummer des Runlevels ist. Dort wiederum befinden sich Symlinks, die nach /etc/init.d oder /etc/rc.d zeigen. z.B. S99xdm -> /etc/init.d/xdm. /etc/init.d/xdm enthält hierbei das Startscript für xdm. Die Nummer "S99" steht für "S = Starten bei betreten des Runlevels (es gibt auch K=Kill)" und die 99 steht einfach für die Reihenfolge.
Weblinks
http://initng.thinktux.net/index.php/Main_Page InitNG: ein Ersatz für das veraltete init, sieht vielversprechend aus. Jemand schon Erfahrung?
http://www.bootchart.org Eine Art Profiler oder Benchmark für die Schritte des Bootprozesses (mit grafischer Ausgabe!) Auch hiermit schon jemand Erfahrung?
- Hatte es schonmal installiert (den Profiler). Gibt's nicht viel dazu zu sagen. Funktioniert einwandfrei und macht schöne Graphen.
Gentoo
Für Gentoo gibt es auf http://de.gentoo-wiki.com/Boot-Zeit_deutlich_verringern eine Anleitung. Diese beschreibt die Umsetzung der hier genannten Tipps. Themen sind (bis jetzt) u.a. die Beschleunigung von modules-update, mount und env_update.