Pourquoi Linux autorise-t-il 'init = / bin / bash'?
J'ai lu ceci, les réponses disent que c'est KERNEL qui exécute ce programme d'initialisation.
Puis j'ai commencé à me demander, Linux est généralement livré avec un initramfs, qui finira par monter et pivot_root sur le véritable système de fichiers racine. Que signifie donc cet init
argument? Le chemin dans les initramfs? Ou comme je l'ai deviné, ce n'est pas lu par le noyau mais par init d'initramfs pour exécuter le vrai init.
De plus, l' root=UUID=xxxx
argument est-il vraiment lu par le noyau ou simplement par init d'initramfs pour trouver le vrai système de fichiers racine?
Il semble que je puisse passer n'importe quel argument que je veux en tant qu'arguments du noyau, donc sont-ils tous lus par le noyau ou au moins certains d'entre eux n'ont de sens que pour les programmes de l'espace utilisateur?
la source
ld-linux.so
ELF ou un script trop récursif ou quoi que ce soit ne peut tout simplement pas être exécuté?/init
démarrer à partir d'un disque virtuel, vous pouvez utiliser lerdinit=/path/to
paramètre de démarrage.Passer des arguments de noyau personnalisés est une façon de personnaliser un système lors d'une installation de KickStart, par exemple un serveur PXE pourrait définir:
où
lab
est ensuite utilisé dans la configuration KickStart pour faire des choses différentes de celles des autres versions du système:Ici pour configurer une disposition de système de fichiers différente de celle utilisée sur d'autres types de système. Espérons que des étiquettes différentes soient utilisées pour les personnalisations locales par rapport à celles utilisées par le noyau, étant donné l'espace de noms unique impliqué.
la source