26.6Kernel-Boot-Optionen
Nicht immer, wenn ein Detail im Kernel geändert werden soll, muss der Kernel gleich neu kompiliert werden! Es gibt zwei Möglichkeiten, ohne ein Neukompilieren auf den Kernel Einfluss zu nehmen:
-
Zum einen können Sie mit dem Bootloader während des Systemstarts Parameter an den Kernel übergeben. Dieser Mechanismus ist Thema dieses Abschnitts.
-
Zum anderen können Sie eine Reihe von Kernelfunktionen dynamisch – also im laufenden Betrieb – verändern. Diese Art des Eingriffs ist insbesondere zur Steuerung von Netzwerkfunktionen gebräuchlich und wird in Abschnitt 26.7, »Kernelparameter verändern«, beschrieben.
Bei der Konfiguration von GRUB können Sie in der Zeile linux bzw. in der Datei /etc/default/grub Kernel-Boot-Optionen angeben. Derartige Optionen können Sie auch interaktiv beim Start eines Linux-Installationsprogramms oder beim Start von GRUB über die Tastatur eintippen (siehe Abschnitt 24.2, »GRUB-Bedienung (Anwendersicht)«). Die Syntax für die Angabe von Optionen sieht so aus:
Die Parameter zu einer Option müssen ohne Leerzeichen angegeben werden. Mehrere Optionen müssen durch Leerzeichen voneinander getrennt werden, nicht durch Kommata. Hexadezimale Adressen werden in der Form 0x1234 angegeben. Ohne vorangestelltes 0x wird die Zahl dezimal interpretiert.
Kernel-Boot-Optionen helfen oft dabei, Hardware-Probleme zu umgehen. Wenn der Linux-Kernel beispielsweise aufgrund eines fehlerhaften BIOS nicht erkennt, wie viel RAM Ihr Rechner hat, geben Sie den korrekten Wert mit dem Parameter mem= an.
Beachten Sie, dass die beim Linux-Start angegebenen Parameter nur Einfluss auf die in den Kernel integrierten Treiber haben! Parameter für Kernelmodule müssen dagegen in der Datei /etc/modprobe.conf bzw. in den Verzeichnissen /etc/modprobe.d oder /etc/modules-load.d angegeben werden.
Dieser Abschnitt beschreibt nur die wichtigsten Kernel-Boot-Optionen. Weitere Informationen erhalten Sie mit man bootparam sowie auf den folgenden Seiten:
http://www.tldp.org/HOWTO/BootPrompt-HOWTO.html
http://www.kernel.org/doc/Documentation/kernel-parameters.txt
Wichtige Kernel-Boot-Optionen
-
root=/dev/sdb3: Die root-Option gibt an, dass nach dem Laden des Kernels die dritte primäre Partition des zweiten SCSI/SATA-Laufwerks als Systempartition für das Root-Dateisystem verwendet werden soll. Analog können natürlich auch andere Laufwerke und Partitionen angegeben werden.
Wenn die Partition mit einem Label bezeichnet ist, kann die Systempartition auch in der Form root=LABEL=xxx angegeben werden. Insbesondere Fedora und Red Hat machen von dieser Möglichkeit Gebrauch. Als Name für die Systempartition wird üblicherweise das Zeichen / verwendet. Bei ext-Partitionen ermitteln Sie den Partitionsnamen mit e2label bzw. verändern ihn mit tune2fs.
Eine weitere Variante ist die Angabe der Systempartition durch root=UUID=n, wobei n die UUID der Festplattenpartition ist. Diese Identifikationsnummer ermitteln Sie mit /lib/udev/vol_id partition.
-
ro: Die Option ro gibt an, dass das Dateisystem vorerst read-only gemountet werden soll. Das ist (in Kombination mit einer der beiden folgenden Optionen) praktisch, wenn ein defektes Dateisystem manuell repariert werden muss.
-
init: Nach dem Kernelstart wird ein Programm gestartet, das je nach Distribution den Init-V-Prozess, Upstart oder Systemd steuert (siehe Kapitel 25, »Das Init-System«). Wenn Sie dies nicht wollen, können Sie mit der Option init ein anderes Programm angeben.
Mit init=/bin/sh erreichen Sie beispielsweise, dass eine Shell gestartet wird. Die Option kann Linux-Profis helfen, ein Linux-System wieder zum Laufen zu bringen, wenn bei der Init-Konfiguration etwas schiefgegangen ist. Beachten Sie, dass das root-Dateisystem nur read-only zur Verfügung steht. (Das können Sie mit mount -o remount ändern, siehe Abschnitt 23.8, »Verwaltung des Dateisystems (mount und /etc/fstab)«.) Beachten Sie außerdem, dass in der Konsole das US-Tastaturlayout gilt und dass die PATH-Variable noch leer ist.
-
single oder emergency: Wenn Sie eine der zwei obigen Optionen verwenden, startet der Rechner im Single-User-Modus. Genau genommen werden diese Optionen nicht vom Kernel ausgewertet, sondern so wie alle unbekannten Optionen an das erste vom Kernel gestartete Programm weitergegeben (siehe Kapitel 25, »Das Init-System«).
-
initrd=name: initrd gibt den Namen der zu ladenden Initial-RAM-Disk-Datei an. Wenn Sie keine Initrd-Datei verwenden möchten, geben Sie initrd= oder noinitrd an.
-
ipv6.disable=1: Diese Option deaktiviert alle IPv6-Funktionen des Kernels.
-
reserve=0x300,0x20: Diese Option gibt an, dass die 32 Bytes (hexadezimal 0x20) zwischen 0x300 und 0x31F von keinem Hardware-Treiber angesprochen werden dürfen, um darin nach irgendwelchen Komponenten zu suchen. Die Option ist bei manchen Komponenten notwendig, die auf solche Tests allergisch reagieren. Sie tritt im Regelfall in Kombination mit einer zweiten Option auf, die die exakte Adresse der Komponente angibt, die diesen Speicherbereich für sich beansprucht.
-
pci=bios|nobios: Diese Option steuert, ob das BIOS zur Hardware-Erkennung der PCI-Komponenten verwendet werden soll oder nicht. (PCI ist das Bussystem zur Erweiterung von PCs durch Steckkarten.) Wenn die automatische Hardware-Erkennung durch den Kernel nicht funktioniert, hilft manchmal pci=bios.
-
pci=nommconf: Diese Option deaktiviert MMCONFIG für die PCI-Konfiguration. Das vermeidet Probleme bei manchen PCI-Express-Systemen.
-
quiet: Diese Option bewirkt, dass während des Kernelstarts keine Meldungen auf dem Bildschirm dargestellt werden.
-
video=1024x768: Mit dieser Option kann per Kernel Mode Setting (KMS) die gewünschte Grafikauflösung eingestellt werden, falls der Kernel nicht selbst die optimale Auflösung wählt, z.B. wenn das Video-Signal über einen KVM-Switch geleitet wird. Wenn Sie auch die Farbtiefe (z.B. 24 Bit) und die Bildfrequenz angeben möchten, sieht die Syntax so aus: video=1280x800-24@60
Die Einstellung der Grafikdaten funktioniert nur bei KMS-kompatiblen Treibern. Die video-Einstellung gilt normalerweise für alle angeschlossenen Monitore. Wenn Sie die Auflösung nur für einen einzelnen Monitor ändern möchten, geben Sie den entsprechenden Signalausgang an, z.B. video=VGA-1:1024x768.
-
nomodeset: Diese Option deaktiviert das Kernel Mode Setting (KMS).
SMP-Optionen
SMP steht für Symmetric Multiprocessing und bezeichnet die Fähigkeit des Kernels, mehrere CPUs bzw. CPU-Cores gleichzeitig zu nutzen. Sollten dabei Probleme auftreten, können die folgenden Optionen hilfreich sein:
-
maxcpus=1: Wenn Sie bei einem Multiprozessorsystem Boot-Probleme haben, können Sie mit dieser Option die Anzahl der genutzten Prozessoren auf 1 reduzieren. Der Wert 0 entspricht der Option nosmp.
-
nosmp: Diese Option deaktiviert die SMP-Funktionen. Der Kernel nutzt nur eine CPU.
-
noht: Diese Option deaktiviert die Hyper-Threading-Funktion. (Dank Hyper-Threading verhalten sich manche CPUs so, als stünden mehrere Cores zur Verfügung. Daraus ergibt sich eine etwas höhere Rechenleistung, wenngleich die Steigerung nicht so hoch ist wie bei echtem SMP.)
-
nolapic: APIC steht für Advanced Programmable Interrupt Controller und bezeichnet ein Schema, um Hardware-Interrupts an die CPUs weiterzuleiten. Bei aktuellen Kernelversionen wird APIC immer aktiviert. Wenn Sie Probleme mit APIC vermuten, verhindern Sie durch nolapic, dass der Kernel den lokalen APIC aktiviert bzw. nutzt.
-
noapic: Diese Option reicht etwas weniger weit als nolapic und deaktiviert nur den IO-Teil von APIC.
-
lapic: Diese Option aktiviert APIC explizit. Das ist dann notwendig, wenn APIC durch das BIOS deaktiviert ist, aber dennoch genutzt werden soll.
ACPI-Optionen
Das Energieverwaltungssystem ACPI (Advanced Configuration and Power Interface) ist nicht nur für das Ein- und Ausschalten verantwortlich, sondern auch für den sparsamen Umgang mit Energie, für die Verwaltung verschiedener Hibernate-Modi etc. Im Folgenden sind die wichtigsten Optionen zur Steuerung ACPI-Funktionen des Kernels zusammengefasst:
-
acpi=on/off: Diese Option (de)aktiviert die ACPI-Funktionen im Kernel.
-
acpi=oldboot: Damit werden die ACPI-Funktionen nur während des Boot-Vorgangs genutzt. Sobald der Rechner läuft, werden die ACPI-Funktionen aber nicht mehr verwendet.
-
pci=noacpi: Diese Option deaktiviert die Interrupt-Zuweisungen durch ACPI.
-
noresume: Diese Option bewirkt, dass vorhandene Hibernate-Daten in der Swap-Partition ignoriert werden. Sie ist also dann sinnvoll, wenn der Rechner nicht mehr richtig aufwacht, z.B., weil die Hibernate-Daten defekt sind.