Como criar uma imagem ISO personalizada no CentOS

20

Estou tentando criar uma imagem ISO personalizada que instalaria o RPMS mínimo necessário, juntamente com alguns RPM gravados personalizados do meu aplicativo. e Também deseja executar algumas etapas pós-instalação, como configurar meu aplicativo e a configuração da VPN etc.

Vi alguns dos links no google, mas eles apontam para a criação de repositório e ISO a partir do disco montado ou da imagem ISO.

Obrigado Ramesh

Ramesh Kumar
fonte
você também pode usar kickstart redhat para este trabalho mais fácil e mais flexível escolha Mais informações aqui access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/...
fyarci

Respostas:

45
  1. Crie um diretório para montar sua fonte.

    mkdir /tmp/bootiso
    
  2. Montar em loop o ISO de origem que você está modificando. (Baixe do Red Hat / CentOS.)

    mount -o loop /path/to/some.iso /tmp/bootiso
    
  3. Crie um diretório de trabalho para sua mídia personalizada.

    mkdir /tmp/bootisoks
    
  4. Copie a mídia de origem para o diretório de trabalho.

    cp -r /tmp/bootiso/* /tmp/bootisoks/
    
  5. Desmonte o ISO de origem e remova o diretório.

    umount /tmp/bootiso && rmdir /tmp/bootiso
    
  6. Altere as permissões no diretório de trabalho.

    chmod -R u+w /tmp/bootisoks
    
  7. Copie o script Kickstart que foi modificado para os pacotes e %postpara o diretório de trabalho.

    cp /path/to/someks.cfg /tmp/bootisoks/isolinux/ks.cfg
    
  8. Copie quaisquer RPMs adicionais para a estrutura de diretórios e atualize os metadados.

    cp /path/to/*.rpm /tmp/bootisoks/Packages/.
    cd /tmp/bootisoks/Packages && createrepo -dpo .. .
    
  9. Adicione o kickstart às opções de inicialização.

    sed -i 's/append\ initrd\=initrd.img/append initrd=initrd.img\ ks\=cdrom:\/ks.cfg/' /tmp/bootisoks/isolinux/isolinux.cfg
    
  10. Crie o novo arquivo ISO.

    cd /tmp/bootisoks && \ 
    mkisofs -o /tmp/boot.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -V "CentOS 7 x86_64" -R -J -v -T isolinux/. .
    
  11. (Opcional) Use isohybridse você quiser ddo arquivo ISO em uma chave USB inicializável.

    isohybrid /tmp/boot.iso
    
  12. Adicione uma soma de verificação MD5 (para permitir o teste de mídia).

    implantisomd5 /tmp/boot.iso
    

Se você precisar de mais ajuda para criar o script Kickstart , sugiro começar com a documentação oficial da Red Hat.

Aaron Copley
fonte
11
É possível que você tenha perdido ou danificado a etapa 4, então?
Aaron Copley
3
@AaronCopley sim, você provavelmente está certo. Também encontrei o seguinte: github.com/joyent/mi-centos-7, que me ajudou.
sivann
11
Na etapa 9, acredito que você deve fornecer o último parâmetro. (ponto) para indicar o diretório atual. Comportamento padrão estranho, mas sem isso, o mkisofs cria um arquivo iso que contém apenas os arquivos do diretório superior e nenhum subdiretório e além.
Hshib
2
Eu também tive problema com a etapa 4. Com esse uso do comando "cp", ele não copia os arquivos ocultos .discinfo e .treeinfo. Sem eles, o iso criado falha durante a instalação, reclamando que "CD / ROM não foi encontrado".
Hshib
11
Você pode copiar tudo com um único comando com - "cp -r / tmp / bootiso /. / Tmp / bootisoks /" (isso é um pouco complicado - observe um único. Depois de / tmp / bootiso /)
hshib