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 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:
Como é chamado o Anaconda ?
Qual é a função do arquivo images / install.img? (Quem chama / monta?)
O Anaconda instala Packages / *. Rpm? Se eu quisesse adicionar um, posso, e ele seria instalado?
Respostas:
Sou um dos autores / mantenedores da Anaconda. Eu poderia entrar em muitos detalhes sobre como o instalador inicializa, mas tentarei ser breve.
(Observe que isso se aplica apenas ao RHEL / CentOS 6.x ou Fedora 14 e versões anteriores; o instalador foi quase completamente reescrito entre o Fedora 15, 16 e 17; portanto, as coisas estão muito diferentes agora.)
A
initrd.img
mídia de instalação é o que chamamos de imagem stage1 . Ele contém um programa chamadoloader
, cuja única tarefa é encontrar e carregarimages/install.img
.install.img
é a imagem stage2 . É aqui que o Anaconda realmente vive - é uma imagem squashfs que contém o sistema de arquivos raiz do instalador.Existem várias maneiras diferentes de encontrar o carregador
install.img
, mas quando você inicializa a partir do DVD, é simples: o carregador percebe o DVD do instalador, monta e montaimages/install.img
como seu sistema de arquivos raiz.Depois que a imagem stage2 é montada, o carregador inicia o Anaconda, que inicia o Xorg e coloca um shell
tty2
e todas essas coisas legais, e o instalador realmente inicia.Não, não basta instalar tudo lá. Ele usa o
comps.xml
arquivo (inrepodata/
) para decidir quais grupos de pacotes estão disponíveis (e quais pacotes estão nesses grupos) - é assim que a interface do usuário de seleção de pacotes é preenchida.Se você adicionar algo ao
Packages/
diretório (por exemplo, se estiver tentando criar uma imagem de DVD personalizada) e desejar que ele seja instalável, será necessário usarcreaterepo
para regenerar orepodata/
diretório. Isso permitirá que você instale seus pacotes via kickstart, pelo menos.Se você precisar que eles apareçam na interface do usuário, precisará editar
comps.xml
também.fonte
Ao inicializar a partir do CD, você obtém o gerenciador de inicialização ISOLINUX, que carrega o kernel do Linux e o ramdisk inicial. Isso inicia o Anaconda, que carrega várias partes, como o install.img. O Anaconda então cuida da instalação dos vários pacotes, etc.
A maneira mais fácil de fazer o Anaconda instalar pacotes adicionais (ou fazer configurações adicionais) é escrevendo um script de kickstart. Um script de kickstart informa ao Anaconda quais pacotes instalar, como configurar o sistema operacional e assim por diante. Para dizer ao anaconda para usar um script de kickstart específico, digite "install ks = http://example.com/my_kickstart.ks " no prompt do ISOLINUX. Ele fará o download do arquivo kickstart (de um servidor da Web neste exemplo) e o utilizará para saber quais pacotes instalar.
Mais detalhes sobre os scripts do kickstart estão disponíveis em http://fedoraproject.org/wiki/Anaconda/Kickstart
fonte
Quando você inicializa o CD de instalação, ele carrega o Kernel e o initrd, como você mencionou. Isso basicamente carrega um sistema Linux mínimo na memória do seu computador. O Anaconda é executado como um serviço na inicialização e o programa é iniciado. O Anaconda encontra seus HDs e os monta como / mnt / sysimage. O Anaconda instala Packages / *. Rpm a partir do CD de instalação e você pode adicionar um RPM ao diretório Packages e re-gravar o iso, mas o Anaconda ainda não saberia que precisava ser instalado. Quanto a hackear o Anaconda para fazer o programa procurar o RPM, não tenho uma resposta.
fonte