Décrire en détail le processus de démarrage d'un système Linux

14

Je prépare un document en détail montrant la lumière sur la séquence de démarrage de Linux dès la pression du bouton de mise sous tension de l'hôte jusqu'à l'apparition de l'invite de connexion.

Ce serait formidable si nous pouvions combiner et rassembler ces bonnes réponses ici en un seul lieu de référence. Veuillez inclure tous les détails qui méritent d'être notés lors du démarrage. Une fois que le document sera complet de tous les points, je posterai également les détails du document ici et mettrai à jour le lien dans la question.

Veuillez considérer tous les scénarios possibles comme le démarrage à partir du disque, le démarrage à partir de l'USB, le démarrage à partir du réseau sur un client sans disque où le rootfs (/) est sur le réseau.

Nikhil Mulley
la source
3
A en juger par cela (y compris les références) et cela , vous proposez un projet assez énorme ...
sr_
4
Est-ce que cela ressemble à une question de devoirs / thèse à quelqu'un d'autre?
Shadur
1
Ne devrait-il pas alors être signalé comme wiki communautaire?
utilisateur inconnu
4
Je pense que c'est beaucoup trop large pour une question sur SE, il y a d'énormes variations entre les distributions et les configurations.
Gilles 'SO- arrête d'être méchant'
1
pouvez-vous s'il vous plaît poster le document préparé par vous
Abhishek

Réponses:

7

Vous voulez une séquence de démarrage de Linux ou simplement une séquence de démarrage de PC ... car il n'y a pas de différence entre le démarrage de Linux depuis usb / cdrom / hdd ... Linux démarre toujours à partir de MBR où le chargeur de démarrage est ...

Processus de démarrage Linux:

  1. Au fur et à mesure que le courant monte, le BIOS prend le contrôle
  2. Le BIOS exécute des autotests, comprenant généralement des tests de mémoire superficiels.
  3. Le BIOS charge ensuite le premier secteur du disque à utiliser pour le démarrage et lui transfère le contrôle.
  4. Le code MBR varie. Une version sera chaînée au code dans le premier secteur de la partition de démarrage (Windows), une autre chargera un chargeur de démarrage. Le démarrage de Windows procède du code et des informations de la partition de démarrage.
  5. le chargeur de démarrage choisit l'emplacement et la version du noyau
  6. bootloader prépare le noyau et l'image initrd en mémoire, transfère le contrôle au noyau
  7. chargement des modules du noyau
  8. découvrir le matériel et charger des modules de noyau supplémentaires pour le prendre en charge
  9. recherche de disques
  10. Montage R / O de / partition afin qu'il puisse potentiellement être vérifié et réparé
  11. init processus d'apparition
  12. / etc / inittab lire et exécuter
  13. monter tous les FS à partir de / etc / fstab
  14. niveaux d'exécution en cours d'exécution (basés sur le niveau d'exécution par défaut dans / etc / inittab) ou une autre méthode d'initialisation telle que systemd ou upstart
  15. rc.local
  16. invite de connexion
Sebastian Szary
la source
Merci @Sebastian, c'était une bonne liste. Je recherche des étapes détaillées pour l'exemple 1: ce qui charge les informations mbr, avant cela, comment les instructions post et bios circulent-elles; 2. pourquoi r / o montage de / partition et puis à nouveau lire / écrire mount / partition .. quel est le processus 0 dans tout ce processus .. mais merci pour la réponse.
Nikhil Mulley
@Nikhil concernant le processus 0 ... il n'y a pas un tel processus, après le chargement du noyau Vous avez le processus 1, qui est le processus init. Concernant le reste des points: 1. vérifiez ibm.com/developerworks/library/l-linuxboot/index.html 2. parce que d'abord il faut vérifier les fichiers, ensuite vous pouvez commencer à écrire dessus ... c'est plutôt pour des raisons de sécurité. ..
Sebastian Szary
Il n'y a pas de MBR sur les disquettes ou les cdroms. Le processus de démarrage pour les cdroms implique un fichier catalogue qui décrit une ou plusieurs images multisectorielles que le bios peut choisir de charger et d'exécuter.
psusi
Que faire si les modules du noyau sont sur un ext3système de fichiers et que le ext3module du noyau n'est pas encore chargé? De plus, que se passe-t-il si le noyau lui-même est sur un système de fichiers que le chargeur de démarrage ne reconnaît pas? Comment les éléments suivants sont-ils chargés en séquence, chargement kernel, chargement bootloader, /bootrépertoire de montage , /etc/fstabfichier de lecture , etc.
yegle
3

Essayez d'installer et d'utiliser bootchart .

Alexandre
la source
1
merci pour le pointeur, je cherche en fait à présenter un document de flux de visualisation de ce qui se passe pendant le démarrage et dans quel type de prise de décision est impliqué.
Nikhil Mulley
1
merci @Alexander Je l'ai installé sur mon fedora et il fournit des png très détaillés
Abhishek