Beschreiben Sie ausführlich den Startvorgang eines Linux-Systems

14

Ich bereite ein detailliertes Dokument vor, in dem die Startsequenz von Linux vom Drücken der Einschalttaste auf dem Host bis zur Anmeldeaufforderung beleuchtet wird.

Es wäre großartig, wenn wir die richtigen Antworten hier in einem einzigen Bezugspunkt zusammenfassen und zusammenfassen könnten. Bitte geben Sie alle Details an, die Sie während des Startvorgangs beachten sollten. Sobald das Dokument vollständig ist, werde ich auch hier die Dokumentdetails veröffentlichen und den Link in der Frage aktualisieren.

Bitte berücksichtigen Sie alle möglichen Szenarien wie das Booten von der Festplatte, das Booten von USB, das Booten vom Netzwerk auf einem Client ohne Festplatte, auf dem sich das rootfs (/) im Netzwerk befindet.

Nikhil Mulley
quelle
3
Geht man von diesem (einschließlich Referenzen) und dies , schlagen Sie ein ziemlich großes Projekt ...
sr_
4
Fühlt sich dies für andere als Hausaufgabe / Abschlussarbeit an?
Shadur
1
Sollte es dann nicht als Community-Wiki gekennzeichnet werden?
Benutzer unbekannt
4
Ich denke, dies ist viel zu umfassend für eine Frage zu SE, da es große Unterschiede zwischen Distributionen und Konfigurationen gibt.
Gilles 'SO- hör auf böse zu sein'
1
kannst du bitte das von dir vorbereitete dokument posten
abhishek

Antworten:

7

Sie möchten die Startsequenz von Linux oder nur die Startsequenz eines PCs ... da es keinen Unterschied zwischen dem Starten von Linux über USB / CD-ROM / HDD gibt ... Linux bootet immer von einem MBR, auf dem sich der Bootloader befindet ...

Linux-Bootvorgang:

  1. Mit dem Einschalten erhält das BIOS die Kontrolle
  2. Das BIOS führt Selbsttests durch, in der Regel einschließlich flüchtiger Speichertests.
  3. Das BIOS lädt dann den ersten Sektor der Festplatte, der zum Booten verwendet werden soll, und überträgt die Steuerung darauf.
  4. Der MBR-Code variiert. Eine Version verkettet sich mit dem Code im ersten Sektor der Bootpartition (Windows), eine andere lädt einen Bootloader. Der Windows-Start erfolgt anhand von Code und Informationen in der Startpartition.
  5. Der Bootloader wählt den Speicherort und die Version des Kernels
  6. Der Bootloader bereitet den Kernel und das initrd-Image im Speicher vor und überträgt die Kontrolle an den Kernel
  7. Laden von Kernelmodulen
  8. Erkennen der Hardware und Laden zusätzlicher Kernelmodule, um dies zu unterstützen
  9. auf der Suche nach Festplatten
  10. R / O-Mount von / Partition, damit diese möglicherweise überprüft und repariert werden kann
  11. Init-Prozess-Spawn
  12. / etc / inittab lesen und ausführen
  13. Mounten aller FSes aus / etc / fstab
  14. runlevels running (basierend auf dem Standard-Runlevel in / etc / inittab) oder eine andere init-Methode wie systemd oder upstart
  15. rc.local
  16. Anmeldeaufforderung
Sebastian Szary
quelle
Danke @Sebastian, das war eine gute Liste. Ich suche nach detaillierten schritten zum beispiel 1: was lädt mbr info, davor wie ist post und bios anweisungen fließen; 2. warum r / o mount von / partition und dann wieder read / write mount / partition .. was ist prozess 0 in diesem ganzen prozess .. aber danke für die antwort.
Nikhil Mulley
@ Nikhil in Bezug auf Prozess 0 ... es gibt keinen solchen Prozess, nach dem Laden des Kernels haben Sie Prozess 1, der Init-Prozess ist. In Bezug auf den Rest der Punkte: 1. Überprüfen Sie ibm.com/developerworks/library/l-linuxboot/index.html. 2. Da zuerst Dateien überprüft werden müssen, können Sie damit beginnen, darauf zu schreiben. Dies geschieht eher aus Sicherheitsgründen. ..
Sebastian Szary
Es gibt keinen MBR auf Disketten oder CD-ROMs. Der Startvorgang für CD-ROMs umfasst eine Katalogdatei, die ein oder mehrere Multisektor-Images beschreibt, die das BIOS laden und ausführen kann.
Psusi
Was ist, wenn sich die Kernelmodule in einem ext3Dateisystem befinden und das ext3Kernelmodul noch nicht geladen ist? Was ist, wenn sich der Kernel selbst auf einem Dateisystem befindet, das der Bootloader nicht erkennt? Wie werden die folgenden Dinge in der Reihenfolge geladen, Laden kernel, Laden bootloader, Mounten von /bootVerzeichnissen, Lesen von /etc/fstabDateien usw.
Yegle
3

Versuchen Sie, Bootchart zu installieren und zu verwenden .

Alexander
quelle
1
danke für den hinweis, ich freue mich tatsächlich darauf, ein visualisierendes Flussdokument darüber zu präsentieren, was während des Bootens passiert und welche Art von Entscheidungsfindung involviert ist.
Nikhil Mulley
1
danke @Alexander Ich habe es auf meinem Fedora installiert und es bietet sehr detaillierte PNG
Abhishek