====== Bootmanager und Bootprozess ====== Was passiert eigentlich beim Start von [[linux:Linux]]? Und was sind Bootmanager? Darum soll er hier gehen. Siehe auch: [[linux:bootmanager absichern|Bootmanager absichern]]. ===== Bootparameter des Kernels ===== Wenn man den [[Grub]]-Bootmanager verwendet, kann man diese auch im Bootmenu eingeben: - beim Start ESC drücken - gewünschten Eintrag (beginnend mit "Kernel") mit den Pfeiltasten auswählen - "e" und "Enter" drücken und den Eintrag entsprechend abändern - anschließend "Enter" und "b" um diesen Eintrag zu starten Gültige Optionen findet man in den Quellen der Kernel unter ''[[http://www.kernel.org/doc/Documentation/kernel-parameters.txt|Documentation/kernel-parameters.txt]]'' (z. B. VESA only: xforcevesa; Failsafe-boot: acpi=off noapic nolapic edd=on nodmraid nomodeset). Permanente Änderungen sollten dann in der Konfigurationsdatei dauerhaft abgelegt werden. ===== initrd ===== Die "initrd" ist eine Art Dateisystem das Treiber und Einstellungen für den Start enthält. Tatsächlich ist es ein cpio-Archiv das mit gzip gepackt wurde. Eine manuelle Bearbeitung würde in etwa so aussehen: cat initrd.gz | gzip -d | cpio -i rm initrd.gz # make changes find | cpio -H newc -o | gzip > ../initrd-neu ===== Bootprozess ===== Der Bootvorgang läuft in der folgenden Reihenfolge ab: - Der Bootmanager (heute meist [[Grub]]) lädt und startet den Kernel. - Der Kernel startet das Programm ''/sbin/init'' - ''init'' wertet die Dabei ''/etc/inittab'' aus - ''init'' führt ein Script zur Systeminitialisierung aus ([[debian:Debian]],[[ubuntu:Ubuntu]]: ''/etc/init.d/rcS'' ; Fedora, [[rhel:red hat enterprise linux|Red Hat]]: ''/etc/rc.d/rc.sysinit'' ; [[suse:suse|(Open)Suse]]: ''/etc/init.d/boot'') - ''/etc/init.d/rc'' oder ''/etc/rc.d/rc'' wird ausgeführt, das sich um den Start der Skripte in Verzeichnis des jeweiligen [[linux:Runlevels]] (z.B. bei [[linux:Runlevel]] 2 in ''/etc/rc2.d'') kümmert. Diese wert von der kleinsten zur höchsten Nummer ausgeführt. :!: [[ubuntu:Ubuntu]] benutzt ab Version 6.10 statt ''init'' die Alternative ''upstart'', daher ist auch ''/etc/inittab'' nicht vorhanden. ==== Links ==== * [[http://www.kernel.org/doc/Documentation/kernel-parameters.txt|Kernel Parameters]] * [[http://duartes.org/gustavo/blog/post/kernel-boot-process|The Kernel Boot Process]] * [[http://www-128.ibm.com/developerworks/linux/library/l-linuxboot/?ca=dgr-btw12LinuxBoot|Inside the Linux boot process]] * [[http://www-128.ibm.com/developerworks/linux/library/l-initrd.html?ca=dgr-btw12LinuxInitialRam|Linux initial RAM disk (initrd) overview]] * [[http://wiki.ubuntuusers.de/Booten|Booten bzw. Bootoptionen]] * [[http://wiki.ubuntuusers.de/Bootsplash|Bootsplash-Screen]] * [[http://www.netsplit.com/2010/05/27/dependency-based-event-based-init-daemons-and-launchd/|Dependency-based & Event-based init daemons and launchd]] ==== Bootprozess beschleunigen ==== * [[https://wiki.ubuntu.com/Teardown|Teardown]] * [[http://ubuntuforums.org/showthread.php?t=89491|HowTo: Speed up ubuntu boot process - the way you can feel it. - updated]] ===== Bootmanager ===== Man braucht die Bootmanager um verschiedene Kernel oder andere Betriebssystem zu booten, diese kann man beim Start des Rechners auswählen. Die Bootmanager installieren sich meist in den MBR (Master Boot Record) der Festplatte bzw. in den Bootsektor z.B. einer Diskette. :!: Windows überschreibt beim Installieren generell erstmal den MBR, deshalb sollte man bei einer Neuinstallation (wenn andere Betriebssysteme parallel durch einen anderen Bootmanager wie [[Grub]] gestartet werden) vorher den **MBR sichern**: unter Linux mit dd if=/dev/hda of=/tmp/mbr.save bs=512 count=1 [[http://wiki.ubuntuusers.de/GRUB|Quelle: Ubuntuusers-Wiki]]. Für Startskripte beim Bootvorgang siehe [[Runlevels]]. ==== Grub ==== Siehe eigene Seite zu [[Grub]]. ==== Lilo ==== Ein alter, mittlerweise kaum noch verwendeter, Bootmanager. Lilo ist nämlich nicht in der Lage aus einem Dateisystem zu lesen, stattdesen wird eine Liste von Datenblöcken gespeichert, die alle relevanten Dateien (Kernel, initrd) enthalten. Daher muss bei **jedem** Kernelupdate (oder bei Veränderungen an initrd-Dateien) lilo neu in den Bootsektor installiert werden, sonst started das System nicht mehr. In der Konfigurationsdatei ''/etc/lilo.conf'' steht das Installationsziel. Deinstallieren kann sich lilo anhand der gespeicherten Sicherheitskopie ''/boot/boot.0300'' und dem Befehl ''lilo -u''. Unter [[debian:Debian]] kann das Script ''liloconfig'' zur Konfiguration benutzt werden. ==== ISOLINUX ==== ISOLINUX ist ein Bootmanager der hauptsächlich für das booten von Wechselmedien (CDs) benutzt wird. ==== Plop Boot Manager ==== Mit dem [[http://www.plop.at/de/bootmanager.html#iso|Plop Boot Manager]] kann man alten Rechnern (durch eine boot-CD) beibringen von einem USB-Datenträger zu starten: * Aktuelle Version ziehen, z. B.: http://download.plop.at/files/bootmngr/plpbt-5.0.10.zip * http://download.plop.at/files/bootmngr/plpbt-createiso.zip Unter [[windows:Windows]]: plpcfgbt stm=hidden cnt=on cntval=1 dbt=usb plpbt.bin create-iso.bat ==== XOSL ==== FIXME ===== Netboot mit PXE ===== * [[http://www.tecchannel.de/pc_mobile/linux/1774588/installation_uebers_netzwerk/index.html|Netinstall ohne Boot-Medium - Workshop: Linux-Installation über LAN]]