LPIC101/101.2 Das System starten: Unterschied zwischen den Versionen

Aus Foxwiki
Bastianvierich (Diskussion | Beiträge)
Bastianvierich (Diskussion | Beiträge)
Zeile 69: Zeile 69:


*die Imagedatei findet man in der Datei /boot/initrd
*die Imagedatei findet man in der Datei /boot/initrd
*zur Erstellung einer initialen Ramdisk kann man folgende Befehle verwenden
*zur Erzeugung einer initialen Ramdisk kann man folgende Befehle verwenden
* unter RedHat:
* unter RedHat:
     mkinitrd
     mkinitrd

Version vom 1. November 2019, 11:49 Uhr

Das System starten

Allgemeines:

  • grundsätzliche Funktionstüchtigkeit des Systems durch Power-on-Self-Test:
  • Test des Arbeitsspeichers auf seine Grösse und prinzipielle Funktionstüchtigkeit
  • nach der Initialisierung aller Hardwarekomponenten, sucht das BIOS nach einem Betriebssystem oder einem Programm, das ein Betriebssystem laden kann
  • im BIOS ist eine genaue Suchreihenfolge hinterlegt und diese beinhaltet meist Diskettenlaufwerke, Festplatten, CD-ROMS, SCSI-Adapter, USB-Geräte und zudem bootfähige Netzwerkkarten

Startvorgang auf Festplatten

  • bei Linux kann man drei primäre und eine erweiterte Partition konfigurieren, diese erweiterte Partition kann ihrerseits logische Partitionen enthalten, die ebenfalls nicht von der Partitionstabelle verwaltet werden
  • diese Patitionstabelle befindet sich im sogenannten MBR (Master Boot Record)
  • MBR gehört selbst keiner Partition an sondern ist eigenständig und ist genau 512 Byte gross und befindet sich am Anfang einer Festplatte im Sektor 0, Spur 0
  • das BIOS liest dort ein Ladeprogramm in hexadezimaler Schreibweise, nämlich GRUB 2 und im unteren Bereich die Partitionstabelle
  • je nach Betriebssystem läuft der Startvorgang in zwei unterschiedlichen Möglichkeiten ab:
  1. wenn ein Bootloader vorgefunden wurde gibt, gibt das BIOS die Kontrolle an diesen ab und beendet sich
  2. wenn kein Bootloader vorhanden ist, konsultiert das BIOS die Partitionstabelle: hier sucht das BIOS nach einer startfähigen Partition (diese Partitionstabelle beginnt in der 5. Zeile von unten mit 8020 und endet mit 55aa; 55aa ist die Abschlussmarkierung)
  • die Partition die mit 80 beginnt ist die Startpartition
  • wenn kein Ladeprogramm im MBR vorliegt, folgt das BIOS nun diesem Verweis und und liest den Bootsektor der Partition aus
  • spätestens hier sollten sich Bootloader oder das Betriebssystem selbst befinden-> jetzt beginnt der Vorgang, den mann als das eigentliche Booten bezeichnet
  • Wenn Sie Ihren MBR auf dem Bildschirm ausgeben wollen, können Sie z. B. dieses Kommando verwenden:
    dd if=/dev/sda bs=512 count=1|od -h --endian=big

UEFI (Unified Extensible Firmware Interface)

  • bei modernen Hauptplatinen kommt nicht mehr BIOS sondern UEFI zu Einsatz
  • grundsätzlicher Verwendungszweck kommt aber dem des BIOS gleich
  • UEFI weist neue Funktionen auf:
    • hohe Grafikauflösungen im Setup-Programm
    • Unterstüzung von GUID-Partitionstabellen für Festplatten mit einer Grösse von bis 8 Zebibytes
    • Netzwerkanbindung zur Fernwartung
    • Integrationsmöglichkeit von Treibern auf Firmware-Ebene
    • integrierter Bootloader
    • Digital Rights Managment
  • UEFI benötigt eine eigene Partition, diese wird als EFI System Partition(ESP) bezeichnet
  • diese Partition wird von Betriebssystemen, die UEFI unterstützen während der Installation automatisch angelegt
  • benötigt FAT-Dateisystem
  • die EFI System Partition wird unter Linux im Verzeichnis /boot/efi bereitgestellt, enthält zumindest den Bootloader oder andere zum Start benötigte Dateien
  • GRUB zum Beispiel kann den Kernel auch laden, wenn er sich nicht in der ESP befindet
  • systemd-boot kann das nicht, dort muss der Kernel innerhalb der ESP liegen

Boot-Strap-Loader

  • dieser Ausdruck kommt von der Geschichte von Baron von Münchhausen, der in einen Sumpf gefallen sein soll und sich selber an den eigenen Haaren aus diesem Sumpf herausgezogen haben soll
  • beim Übersetzen der Münchhausen-Geschichte ins Englische wurde es so abgewandelt, dass sich der Baron am Stiefelgurt(Boot-Strap) aus dem Sumpf gezogen haben soll
  • so kann man sich das Hochziehen des Betriebssystem sinnbildlich vorstellen: ein Betriebssystem dient einerseits als Plattform um Software auszuführen, andererseits ist ein Betriebssystem selber Software
  • deshalb nennen wir den Begriff Boot-Strap-Loader, oder kurz Bootloader

Kernel Parameter

  • es gibt zwei Möglichkeiten dem Kernel beim Starten durch den Bootloader Parameter übergeben zu lassen:
    • Eintragen der Kernel-Parameter bei jedem Systemstart durch Eintragen dieser in die Konfigurationsdatei grub.cfg(z.B.in/boot/grub/grub.cfg)
        linux  /boot/vmlinuz-4.6.3 root=/dev/sda1 apm=off
  • oder übergeben der Parameter per "Hand" während des Systemstarts im Bootmenü durch Auswählen des gewünschten Eintrages bei GRUP2(diese sind nicht dauerhaft und werden beim nächsten Systemstart nicht mehr angewendet); zum Beispiel:
        init=/bin/bash   

wobei nicht der init-Prozess gestartet wird, sondern nur die Shell /bin/bash ohne eine Passwortabfrage, das Root-Dateisystem ist dann allerdings nur im Nur-lesen-Modus gemountet und muss durch den Befehl

        mount -o remount,rw /
        passwd root
  • erweitert werden; jetzt könnte man sein Kennwort ändern und den Computer wieder im normalen Modus neu starten


initramfs

  • die Imagedatei findet man in der Datei /boot/initrd
  • zur Erzeugung einer initialen Ramdisk kann man folgende Befehle verwenden
  • unter RedHat:
   mkinitrd


  • unter Debian:
   mkinitramfs

Startprotokollierung

  • Ausgaben die der Kernel während des Systemstarts ausgibt, Programmbefehl diese auszulesen
   dmesg |less
   grep kernel /var/log/messages | less
  • unter systemd um Protokollierung des Systems auszulesen
   journalctl -k