Come funziona l'installazione CentOS dall'interno?


9

Sto cercando di capire il contenuto del file immagine ISO di una distribuzione Linux e come avviene il processo di installazione. Qui sto parlando specificamente di CentOS 6.4 nella sua versione minima.

Quindi ISOLINUX viene attivato e viene visualizzato il menu. Quindi ho premuto Installa.

Carica il kernel e il filesystem initrd.

Le mie domande sono:

  1. Come si chiama Anaconda ?

  2. Qual è il ruolo del file images / install.img? (Chi lo chiama / monta?)

  3. Anaconda installa pacchetti / *. Rpm? Se volessi aggiungerne uno lì, posso e sarebbe installato?



@Livinglifeback - se riassumi quel thread come una risposta, aggiungerebbe valore al sito StackExchange?
EightBitTony,

1
Nota per i futuri visitatori: questo, in particolare il n. 3, varia da distribuzione a distribuzione e anche nella stessa distribuzione. Confronta ad esempio il programma di installazione Ubiquity di Ubuntu e il suo programma di installazione alternativo.
strugee,

1
@EightBitTony Ho iniziato a riassumere, tuttavia, non credo di essere in grado di rispondere completamente alla domanda. Penso che il link potrebbe aiutarli a saperne di più.
Livinglifeback il

@Livinglifeback Grazie in realtà mi ha aiutato a circondare di più il problema. Sto ancora indagando per poter rispondere pienamente alla mia domanda. Quando sarò in grado di farlo, posterò la risposta che avrei trovato. Il link è stato apprezzato :)
Spredzy il

Risposte:


16

Sono uno degli autori / manutentori di Anaconda. Potrei entrare troppo nei dettagli su come si avvia il programma di installazione, ma proverò ad essere breve.

(Nota che questo vale solo per RHEL / CentOS 6.xo Fedora 14 e precedenti; l'installer è stato quasi completamente riscritto tra Fedora 15, 16 e 17, quindi le cose sono molto diverse ora.)

  1. Come si chiama Anaconda?
  2. Qual è il ruolo del file images / install.img? (Chi lo chiama / monta?)

Il initrd.imgsupporto di installazione è ciò che chiamiamo immagine stage1 . Contiene un programma chiamato loader, il cui unico lavoro è trovare e caricare images/install.img.

install.imgè l' immagine stage2 . Qui è dove vive effettivamente Anaconda : è un'immagine squashfs che contiene il filesystem di root dell'installatore.

Ci sono molti modi diversi per trovare il caricatore install.img, ma quando si avvia dal DVD è semplice: il caricatore nota il DVD di installazione, lo monta e monta images/install.imgcome il suo filesystem di root.

Una volta che l'immagine stage2 è montata, il caricatore avvia Anaconda, che quindi avvia Xorg e mette una shell su tty2tutta quella roba carina, e il programma di installazione si avvia davvero .

3. Anaconda installa pacchetti / *. Rpm? Se volessi aggiungerne uno lì, posso e sarebbe installato?

No, non installa solo tutto lì. Usa il comps.xmlfile (in repodata/) per decidere quali gruppi di pacchetti sono disponibili (e quali pacchetti sono in quei gruppi) - ecco come viene compilata l'interfaccia utente di selezione dei pacchetti.

Se aggiungi qualcosa alla Packages/directory (come se stai provando a creare un'immagine DVD personalizzata) e vuoi che sia installabile, dovrai createreporigenerarlo repodata/. Ciò ti consentirà di installare i tuoi pacchetti almeno tramite kickstart.

Se hai bisogno che vengano visualizzati nell'interfaccia utente, dovrai anche modificarli comps.xml.


1

Quando si avvia dal CD, si ottiene il bootloader ISOLINUX, che carica il kernel Linux e il ramdisk iniziale. Questo inizia Anaconda, che carica i suoi vari pezzi, come install.img. Anaconda si occupa quindi di installare i vari pacchetti, ecc.

Il modo più semplice per fare in modo che Anaconda installi pacchetti aggiuntivi (o esegua ulteriori configurazioni) è scrivere uno script kickstart. Uno script kickstart dice ad Anaconda quali pacchetti installare, come configurare il sistema operativo e così via. Per dire ad anaconda di usare un particolare script kickstart, puoi digitare "install ks = http://example.com/my_kickstart.ks " al prompt ISOLINUX. Quindi scaricherà quel file kickstart (da un server Web in questo esempio) e lo userà per sapere quali pacchetti installare.

Maggiori dettagli sugli script kickstart sono disponibili su http://fedoraproject.org/wiki/Anaconda/Kickstart


0

Quando si avvia il CD di installazione, carica il kernel e initrd proprio come menzionato. Questo in pratica carica un sistema Linux minimale nella memoria del tuo computer. Anaconda viene eseguito come servizio all'avvio e il programma viene avviato. Anaconda quindi trova i tuoi HD e li monta come / mnt / sysimage. Anaconda installa Pacchetti / * .rpm dal CD di installazione e potresti aggiungere un RPM alla directory Pacchetti e quindi ri-masterizzare l'iso, ma Anaconda non saprebbe ancora che doveva essere installato. Per quanto riguarda l'hacking di Anaconda per fare in modo che il programma cerchi l'RPM, non ho una risposta.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.