Instalação do Kickstart do CentOS 7 ISO - “Painel está morto”

2

EDIT: Voltei a tentar isso genericamente e vejo o mesmo problema. Para reproduzir, siga meus passos abaixo. Estou começando a pensar que pode ser um problema com o hardware, mas não tenho certeza.

Ao instalar um ISO do CentOS 7 usando o kickstart, recebo um erro dizendo "Painel está morto" sem registros adicionais. Basicamente, eu pego o ISO do CentOS 7 e adicionei um arquivo de kickstart. Ao instalar com isso no VirtualBox, tudo funciona bem. Quando eu tento instalá-lo em hardware real com várias interfaces, recebo o erro "Painel está morto" depois que todos os pacotes são instalados.

Nãoseioquepoderiaseroproblema.Algumascoisasqueeutentei:

  • Nãohálogsgeradosqueindiquemoproblema.Inclusiveadicioneialinhalogging--level=debugaokickstart,masnãohavianadadevalorparaver.
  • Nãoháetapadepós-instalação(removiissodoksdesdequeesseéoúltimologantesqueoproblemasejavisto),portanto,essenãopodeseroproblema.
  • EuviemalgumlugarnawebquealguémdissequeháumadiferençaentreosISOsdoCentOS6e7,masnãohaviainformaçõesadicionaisparaindicarquantitativamentequaisseriamessasdiferenças.

Aquiestãoasinstruçõescompletassobrecomosereproduzir.Sevocêpuderveroqueestoufazendodeerrado,euagradeceriamuito.

Obrigado!

Instruçõescompletassobrecomoreproduzir

MinhamáquinadeproduçãoéumservidoratualizadodoCentOS7.Sevocêestáperdendoalgumaplicativo,tenhocertezaquevocêpodeinstalá-lofacilmentecomoyum.

Ospassosbásicossão:

  • Crieumdiretóriodetrabalho
  • Crieumarquivodekickstart
  • Atualizaroisolinux.cfg
  • Downloaddepacotes
  • Criarrepositório
  • CrieoISO

Criardiretóriodetrabalho

CopieioISOdoCentOS7parameudiretóriotemporárioeomonteiparaobtertodososarquivos:

>cd/tmp>wgethttp://centos.mirror.iweb.ca/7/isos/x86_64/CentOS-7-x86_64-DVD-1503-01.iso...hourslater...>mkdirCentOS7-CD>sudomount-l/tmp/CentOS-7-x86_64-DVD-1503-01.iso/tmp/CentOS7-CDmount:blockdevice/tmp/CentOS-7-x86_64-DVD-1503-01.isoiswrite-protected,mountingread-only

Copieitodososarquivosparaumdiretóriodetrabalho.

>cd/tmp/>cp-rCentOS7-CD/CentOS7

ArquivodeKickstart

Adicionemeuarquivodekickstart:

>cat<<@@EOF@@>/tmp/CentOS7/ks.cfg#version=RHEL7#Systemauthorizationinformationauth--enableshadow--enablemd5#InstallOSinsteadofupgradeinstall#Rebootafterinstallationreboot--eject#Licenseagreementeula--agreed#Usetextmodeinstalltext#Firewallconfigurationfirewall--disabledfirstboot--disableignoredisk--only-use=sda#Keyboardlayouts#oldformat:keyboardus#newformat:keyboard--vckeymap=us--xlayouts='us'#Systemlanguagelangen_CA.UTF-8#Installationlogginglevellogging--level=debug#Networkinformation%include/tmp/network.ks#UseCDROMinstallationmediacdromrepo--name="CentOS" --baseurl=cdrom:sr0
# Use Network installation
#url --url=http://centos.mirror.iweb.ca/7/os/x86_64/

# Root password
rootpw --plaintext password
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# System timezone
timezone Etc/UTC --isUtc
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel 
# Disk partitioning information
part / --fstype="ext4" --size=10000
part /data --fstype="ext4" --size=18461
part /info --fstype="ext4" --size=2000
part /boot --fstype="ext3" --size=256
part swap --fstype="swap" --size=2048

%packages --nobase --excludedocs
@core
-aic94xx-firmware
-alsa-*
-iwl*-firmware
-ivtv-firmware
-libertas-*-firmware
-btrfs-progs
-cronie-anacron
-cronie
-crontabs
-ModemManager-glib
-NetworkManager*
-postfix
-wpa_supplicant
%end

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

%pre
interface=$(ip addr | grep -i broadcast | awk '{ print $2 }' | head -1 | sed 's/://g')
echo "network --bootproto=dhcp --device=${interface} --onboot=on" > /tmp/network.ks
%end
@@EOF@@

Observação: se você estiver usando essas instruções e recortando e colando, poderá receber ">" como prefixo de todas as linhas. Use o seguinte para removê-los.

>sed -i 's|^> ||' /tmp/CentOS7/ks.cfg

Eu tentei limitar o número de pacotes instalados, portanto, todas as exclusões na seção %packages .

ISOLINUX.CFG

Em seguida, edite meu arquivo isolinux.cfg e adicione inst.ks=cdrom:/dev/cdrom:/ks.cfg a cada linha de acréscimo e torne a versão sem teste o padrão.

>cd /tmp/CentOS7/isolinux/
>sed -i 's|\(LABEL=\S*\)| inst.ks=cdrom:/dev/cdrom:/ks.cfg|' isolinux.cfg
# Delete the old default (check)
>sed -i '/menu default/d' isolinux.cfg
# Add the new default (linux)
>sed -i '0,/  kernel vmlinuz/s//  menu default\n&/' isolinux.cfg

Adicionar Pacotes

Eu determinei empiricamente que existem 240 pacotes para adicionar à minha instalação mínima. Fiz isso realizando uma instalação de rede no VirtualBox com as seguintes alterações no arquivo de kickstart:

# Use CDROM installation media
#cdrom                                    # <-- comment this out for ntwk install
#repo --name="CentOS" --baseurl=cdrom:sr0 # <-- comment this out for ntwk install
# Use Network installation
url --url=http://centos.mirror.iweb.ca/7/os/x86_64/

Então eu comentei a instalação do CDROM e, em vez disso, usei o repositório de rede. A instalação levou 10 minutos. Depois de concluído, fiz o login para obter a lista de pacotes instalados:

VB> rpm -qa > pkg.list

Copiei este arquivo de volta para minha máquina de produção e obtive os locais para fazer o download desses arquivos:

> cd /tmp/CentOS7
> rm -rf Packages
> cd Packages
# Copy the pkg.list from the VB server to this location
> cat pkg.list | xargs yumdownloader --urls | grep "^http" > pkg.urls
> wget -nv -nc -i pkg.urls

Demora alguns minutos para concluir o download de todos os pacotes.

Criar repositório

Criar o repositório é uma tarefa simples.

>cd /tmp/CentOS7
>mv repodata/*comps.xml.gz comps.xml.gz
>gzip -d comps.xml
>rm -rf repodata
>mkdir repodata
>cp comps.xml repodata/
>createrepo -g repodata/comps.xml .

Crie o ISO

>cd /tmp
>mkisofs -o custom.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -V 'CentOS 7 x86_64' -boot-load-size 4 -boot-info-table -R -J -v -T CentOS7/
    
por Trenin 05.10.2015 / 15:28

2 respostas

3

Eu finalmente resolvi meu próprio problema! Vou colocar isso como resposta para que, se alguém mais vir, eles saibam a causa. No entanto, eu suponho que apenas os canadenses serão afetados ...

Acontece que o problema era com a linha lang en_CA.UTF-8 no arquivo de kickstart. Alterei isso para lang en_US.UTF-8 e a instalação é concluída normalmente. Eu posso fazer outra pergunta sobre como usar o en_CA , mas pelo menos eu resolvi esse aqui.

Obrigado!

Para quem estiver interessado, como resolvi isso ao fazer isso:

  • Eu criei um DVD com o CentOS-7-x86_64-DVD-1503-01.iso sobre ele
  • Coloque isso no meu servidor e inicialize
  • Quando perguntado, alterei a linha de configuração do grub e adicionei text a ele
  • Durante a instalação do anaconda, configurei a instalação mínima pela rede.
  • Instalação concluída e um arquivo anaconda-ks.cfg foi criado em /root/
  • copiei esse arquivo e usei-o exatamente como meu próprio modelo para o arquivo ks.cfg .
  • Eu também criei novamente os diretórios Packages e repodata com base no conjunto de pacotes instalados nesta instalação.
  • Criamos um novo iso com o novo arquivo de kickstart e a instalação funcionou!
  • Linha por linha, alterei as diferenças no novo arquivo ks.cfg para corresponder ao antigo (problemático), recriou o ISO e a tentativa de instalação.
  • Dolorosamente descobriu que a única linha que causou o erro foi a linha lang en_CA.UTF-8 .
por 16.10.2015 / 15:53
1

A questão parece estar bem clara, como posso dizer. Observe que o painel está morto quando o script de pós-instalação é executado.

Prefiro cortar essa seção do arquivo ks ou, melhor ainda, registrá-la para entender exatamente o que deu errado.

Para registrar você pode usar a diretiva --log / path / to / logfile no seu kickstart. Depois de receber a mensagem do painel, basta alternar para um dos TTYs e verificar os registros.

Portanto, a seção ofensiva é% post.

Espero que isso ajude.

    
por 05.10.2015 / 18:30