Como a instalação do CentOS funciona internamente?

8

Estou tentando entender o conteúdo do arquivo de imagem ISO de uma distribuição Linux e como o processo de instalação ocorre. Aqui estou falando especificamente sobre o CentOS 6.4 em sua versão mínima.

Então ISOLINUX é acionado, e eu recebo o menu exibido. Então eu apertei instalar.

Carrega o kernel e o sistema de arquivos initrd.

Minhas perguntas são:

  1. Como o Anaconda é chamado?

  2. Qual é o papel do arquivo images / install.img? (Quem chama / monta isso?)

  3. O Anaconda instala Pacotes / *. rpm? Se eu quisesse adicionar um aí, eu poderia e seria instalado?

Qualquer link / recomendação é bem-vindo,

    
por Spredzy 22.06.2013 / 21:01

3 respostas

12

Sou um dos autores / mantenedores do Anaconda. Eu poderia entrar muito detalhadamente sobre como o instalador inicializa, mas tentarei ser breve.

(Note que isto só se aplica ao RHEL / CentOS 6.x ou ao Fedora 14 e versões anteriores; o instalador foi quase completamente reescrito entre o Fedora 15, 16 e 17, então as coisas estão bem diferentes agora.)

  1. How does Anaconda get called?
  2. What is the role of the images/install.img file ? (Who calls/mount it?)

O initrd.img na mídia de instalação é o que chamamos de imagem stage1 . Ele contém um programa chamado loader , cujo único trabalho é encontrar e carregar images/install.img .

install.img é a imagem de stage2 . É onde o Anaconda realmente vive - é uma imagem do squashfs que contém o sistema de arquivos raiz do instalador.

Há um muitas maneiras diferentes do carregador para encontrar install.img , mas quando você inicializa a partir do DVD é simples: o carregador nota o DVD do instalador, monta-o e monta images/install.img como seu sistema de arquivos raiz.

Uma vez que a imagem do stage2 é montada, o carregador inicia o Anaconda, que inicia o Xorg e coloca um shell no tty2 e todas essas coisas legais, e o instalador realmente é iniciado.

3. Does Anaconda installs Packages/*.rpm? If I wanted to add one in there can I and would it be installed ?

Não, não é só instalar tudo lá. Ele usa o arquivo comps.xml (em repodata/ ) para decidir quais grupos de pacotes estão disponíveis (e quais pacotes estão nesses grupos) - é assim que a UI de seleção de pacotes é preenchida.

Se você adicionar algo ao diretório Packages/ (como se estivesse tentando criar uma imagem de DVD personalizada) e quiser que ele seja instalável, será necessário usar createrepo para gerar novamente o repodata/ diretório. Isso permitirá que você instale seus pacotes pelo kickstart, pelo menos.

Se precisar que eles apareçam na interface do usuário, você também precisará editar comps.xml .

    
por 30.05.2014 / 19:16
1

Quando você inicializa a partir do CD, você obtém o gerenciador de inicialização ISOLINUX e carrega o kernel do Linux e o ramdisk inicial. Isso inicia o Anaconda, que carrega suas várias partes, como o install.img. O Anaconda cuida da instalação dos vários pacotes, etc.

A maneira mais fácil de fazer com que o Anaconda instale pacotes adicionais (ou faça configurações adicionais) é escrevendo um script de kickstart. Um script kickstart informa ao Anaconda quais pacotes instalar, como configurar o sistema operacional e assim por diante. Para dizer ao anaconda para usar um determinado script de kickstart, você pode digitar "install ks = link " no prompt do ISOLINUX. Em seguida, ele fará o download desse arquivo de kickstart (de um servidor da web neste exemplo) e o usará para saber quais pacotes instalar.

Mais detalhes sobre os scripts do kickstart estão disponíveis no link

    
por 20.05.2014 / 19:43
0

Quando você inicializa o CD de instalação, ele carrega o Kernel e initrd como você mencionou. Isso basicamente carrega um sistema Linux mínimo na memória de seus computadores. O Anaconda é executado como um serviço na inicialização e o programa é iniciado. O Anaconda então encontra seus HDs e os monta como / mnt / sysimage. O Anaconda instala o Packages / * .rpm do CD de instalação e você pode adicionar um RPM ao diretório Packages e então re-gravar o iso, mas o Anaconda ainda não saberia que precisava ser instalado. Na medida em que hacking o Anaconda para fazer o programa procurar pelo RPM, não tenho uma resposta.

    
por 10.10.2013 / 19:52