Wie funktioniert die CentOS-Installation von innen?

9

Ich versuche, den Inhalt der ISO-Image-Datei einer Linux-Distribution und den Ablauf der Installation zu verstehen. Hier spreche ich speziell über CentOS 6.4 in seiner Minimalversion.

Also wird ISOLINUX ausgelöst und ich bekomme das Menü angezeigt. Dann drücke ich auf Installieren.

Es lädt den Kernel und das initrd-Dateisystem.

Meine Fragen sind:

  1. Wie wird Anaconda gerufen?

  2. Welche Rolle spielt die Datei images / install.img? (Wer ruft an / montiert es?)

  3. Installiert Anaconda Packages / *. U / min? Wenn ich dort eine hinzufügen wollte, kann ich und würde es installiert werden?

Spredzy
quelle
@Livinglifeback - Wenn Sie diesen Thread als Antwort zusammenfassen, würde dies der StackExchange-Site einen Mehrwert verleihen?
EightBitTony
1
Hinweis für zukünftige Besucher: Dies, insbesondere # 3, variiert von Verteilung zu Verteilung und sogar in derselben Verteilung. Vergleichen Sie zB das Ubiquity-Installationsprogramm von Ubuntu mit dem alternativen Installationsprogramm.
strugee
1
@EightBitTony Ich fing an, es zusammenzufassen, aber ich glaube nicht, dass ich die Frage vollständig beantworten kann. Ich denke, der Link könnte ihnen helfen, mehr zu lernen.
Livinglifeback
@Livinglifeback Danke, es hat mir tatsächlich geholfen, das Problem besser zu lösen. Ich recherchiere immer noch, um meine eigene Frage vollständig beantworten zu können. Wenn ich dazu in der Lage bin, werde ich die Antwort posten, die ich gefunden habe. Link wurde geschätzt :)
Spredzy

Antworten:

16

Ich bin einer der Anaconda-Autoren / Betreuer. Ich könnte viel zu detailliert darauf eingehen, wie der Installer startet, aber ich werde versuchen, mich kurz zu fassen.

(Beachten Sie, dass dies nur für RHEL / CentOS 6.x oder Fedora 14 und früher gilt. Das Installationsprogramm wurde zwischen Fedora 15, 16 und 17 fast vollständig neu geschrieben , sodass die Dinge jetzt ganz anders sind.)

  1. Wie wird Anaconda gerufen?
  2. Welche Rolle spielt die Datei images / install.img? (Wer ruft an / montiert es?)

Das initrd.imgauf dem Installationsmedium ist das sogenannte Stage1- Image. Es enthält ein Programm namens loader, dessen einzige Aufgabe darin besteht, zu finden und zu laden images/install.img.

install.imgist das Stage2- Bild. Hier lebt Anaconda tatsächlich - es ist ein Squashfs-Image, das das Root-Dateisystem des Installationsprogramms enthält.

Es gibt viele verschiedene Möglichkeiten für den Loader, sie zu finden install.img, aber wenn Sie von einer DVD booten, ist dies ganz einfach: Der Loader bemerkt die Installations-DVD, stellt sie bereit und wird images/install.imgals Root-Dateisystem bereitgestellt.

Sobald das Stage2-Image gemountet ist, startet der Loader Anaconda, das dann Xorg startet und eine Shell tty2und all das nette Zeug anlegt, und das Installationsprogramm startet wirklich .

3. Installiert Anaconda Packages / *. U / min? Wenn ich dort eine hinzufügen wollte, kann ich und würde es installiert werden?

Nein, es wird nicht einfach alles dort installiert. Mithilfe der comps.xmlDatei (in repodata/) wird entschieden, welche Paketgruppen verfügbar sind (und welche Pakete in diesen Gruppen enthalten sind). Auf diese Weise wird die Benutzeroberfläche für die Paketauswahl ausgefüllt.

Wenn Sie dem Packages/Verzeichnis etwas hinzufügen (z. B. wenn Sie versuchen, ein benutzerdefiniertes DVD-Image zu erstellen) und möchten, dass es installiert werden kann, müssen Sie createrepodas repodata/Verzeichnis neu generieren . So können Sie Ihre Pakete zumindest per Kickstart installieren.

Wenn sie in der Benutzeroberfläche angezeigt werden sollen, müssen Sie sie ebenfalls bearbeiten comps.xml.

Wälder
quelle
1

Wenn Sie von der CD booten, erhalten Sie den ISOLINUX-Bootloader, der den Linux-Kernel und die ursprüngliche Ramdisk lädt. Damit startet Anaconda, das seine verschiedenen Teile wie die install.img lädt. Anaconda kümmert sich dann um die Installation der verschiedenen Pakete usw.

Der einfachste Weg, Anaconda dazu zu bringen, zusätzliche Pakete zu installieren (oder zusätzliche Konfigurationen vorzunehmen), besteht darin, ein Kickstart-Skript zu schreiben. Ein Kickstart-Skript teilt Anaconda mit, welche Pakete installiert werden sollen, wie das Betriebssystem konfiguriert werden soll usw. Um anaconda anzuweisen, ein bestimmtes Kickstart-Skript zu verwenden, können Sie an der ISOLINUX-Eingabeaufforderung "install ks = http://example.com/my_kickstart.ks " eingeben. Anschließend wird diese Kickstart-Datei (in diesem Beispiel von einem Webserver) heruntergeladen und anhand dieser Datei ermittelt, welche Pakete installiert werden sollen.

Weitere Informationen zu Kickstart-Skripten finden Sie unter http://fedoraproject.org/wiki/Anaconda/Kickstart

jsmith
quelle
0

Wenn Sie die Installations-CD starten, werden der Kernel und initrd wie erwähnt geladen. Dadurch wird im Grunde ein minimales Linux-System in den Arbeitsspeicher Ihres Computers geladen. Anaconda wird beim Booten als Dienst ausgeführt und das Programm wird gestartet. Anaconda findet dann Ihre Festplatten und stellt sie als / mnt / sysimage bereit. Anaconda installiert Packages / *. RPM von der Installations-CD und Sie könnten dem Packages-Verzeichnis eine RPM hinzufügen und dann die ISO neu brennen, aber Anaconda würde immer noch nicht wissen, dass sie installiert werden muss. Was das Hacken von Anaconda angeht, damit das Programm nach der Drehzahl sucht, habe ich keine Antwort.

Jeight
quelle