Comment fonctionne l'installation CentOS de l'intérieur?


9

J'essaie de comprendre le contenu du fichier image ISO d'une distribution Linux et comment le processus d'installation se déroule. Ici, je parle spécifiquement de CentOS 6.4 dans sa version minimale.

Donc ISOLINUX est déclenché, et j'obtiens le menu affiché. Ensuite, je clique sur installer.

Il charge le noyau et le système de fichiers initrd.

Mes questions sont:

  1. Comment Anaconda est-elle appelée?

  2. Quel est le rôle du fichier images / install.img? (Qui appelle / monte-le?)

  3. Anaconda installe-t-il les packages / *. Rpm? Si je voulais en ajouter un, puis-je, et serait-il installé?



@Livinglifeback - si vous résumiez ce fil comme réponse, cela ajouterait-il de la valeur au site StackExchange?
EightBitTony

1
Remarque pour les futurs visiteurs: cela, en particulier # 3, varie d'une distribution à l'autre et même dans la même distribution. Comparez, par exemple, le programme d'installation Ubiquity d'Ubuntu et son programme d'installation alternatif.
strugee

1
@EightBitTony J'ai commencé à le résumer cependant, je ne pense pas que je serais en mesure de répondre complètement à la question. Je pense que le lien pourrait les aider à en savoir plus.
Livinglifeback

@Livinglifeback Merci, cela m'a aidé à mieux cerner le problème. J'étudie toujours pour pouvoir répondre pleinement à ma propre question. Lorsque je pourrai le faire, je posterai la réponse que j'aurais trouvée. Lien apprécié :)
Spredzy

Réponses:


16

Je suis l'un des auteurs / mainteneurs d'Anaconda. Je pourrais entrer dans trop de détails sur la façon dont l'installateur démarre, mais je vais essayer d'être bref.

(Notez que cela ne s'applique qu'à RHEL / CentOS 6.x ou Fedora 14 et versions antérieures; le programme d'installation a été presque entièrement réécrit entre Fedora 15, 16 et 17, donc les choses sont très différentes maintenant.)

  1. Comment Anaconda est-elle appelée?
  2. Quel est le rôle du fichier images / install.img? (Qui appelle / monte-le?)

Le initrd.imgsur le support d'installation est ce que nous appelons l' image stage1 . Il contient un programme appelé loader, dont le seul travail est de rechercher et de charger images/install.img.

install.imgest l' image stage2 . C'est là qu'Anaconda vit réellement - c'est une image squashfs qui contient le système de fichiers racine de l'installateur.

Il existe de nombreuses façons différentes pour le chargeur de trouver install.img, mais lorsque vous démarrez à partir d'un DVD, c'est simple: le chargeur remarque le DVD d'installation, le monte et se monte en images/install.imgtant que système de fichiers racine.

Une fois que l'image stage2 est montée, le chargeur démarre Anaconda, qui démarre ensuite Xorg et met un shell dessus tty2et toutes ces belles choses, et l'installateur démarre vraiment .

3. Anaconda installe-t-il les packages / *. Rpm? Si je voulais en ajouter un, puis-je l'installer?

Non, il n'y a pas que tout installé là-bas. Il utilise le comps.xmlfichier (in repodata/) pour décider quels groupes de packages sont disponibles (et quels packages se trouvent dans ces groupes) - c'est ainsi que l'interface utilisateur de sélection de packages est remplie.

Si vous ajoutez quoi que ce soit au Packages/répertoire (comme si vous essayez de créer une image DVD personnalisée) et que vous souhaitez qu'il soit installable, vous devrez utiliser createrepopour régénérer le repodata/répertoire. Cela vous permettra au moins d'installer vos packages via kickstart.

Si vous en avez besoin pour apparaître dans l'interface utilisateur, vous devrez également les modifier comps.xml.


1

Lorsque vous démarrez à partir du CD, vous obtenez le chargeur de démarrage ISOLINUX, qui charge le noyau Linux et le disque virtuel initial. Cela démarre Anaconda, qui charge ses différentes pièces, comme install.img. Anaconda se charge ensuite d'installer les différents packages, etc.

Le moyen le plus simple pour qu'Anaconda installe des packages supplémentaires (ou fasse une configuration supplémentaire) est d'écrire un script kickstart. Un script kickstart indique à Anaconda quels packages installer, comment configurer le système d'exploitation, etc. Pour indiquer à anaconda d'utiliser un script kickstart particulier, vous pouvez taper "install ks = http://example.com/my_kickstart.ks " à l'invite ISOLINUX. Il téléchargera ensuite ce fichier kickstart (à partir d'un serveur Web dans cet exemple) et l'utilisera pour savoir quels packages installer.

Plus de détails sur les scripts kickstart sont disponibles sur http://fedoraproject.org/wiki/Anaconda/Kickstart


0

Lorsque vous démarrez le CD d'installation, il charge le noyau et initrd comme vous l'avez mentionné. Cela charge essentiellement un système Linux minimal dans la mémoire de votre ordinateur. Anaconda s'exécute en tant que service au démarrage et le programme se lance. Anaconda trouve ensuite vos disques durs et les monte en tant que / mnt / sysimage. Anaconda installe les packages / *. Rpm à partir du CD d'installation et vous pouvez ajouter un RPM au répertoire Packages, puis recréer l'iso, mais Anaconda ne sait toujours pas qu'il doit être installé. En ce qui concerne le piratage d'Anaconda pour que le programme recherche le RPM, je n'ai pas de réponse.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.