Instrucciones completas sobre cómo reproducir

Instrucciones completas sobre cómo reproducir

EDITAR:Volví a intentar esto de forma genérica y veo el mismo problema. Para reproducir, siga mis pasos a continuación. Estoy empezando a pensar que podría ser un problema de hardware, pero no estoy seguro.

Al instalar una ISO de CentOS 7 usando kickstart, aparece un error que dice "El panel está muerto" sin registros adicionales. Básicamente, tomé la ISO de CentOS 7 y agregué un archivo kickstart. Al instalar esto en VirtualBox, todo funciona bien. Cuando intento instalarlo en hardware real con múltiples interfaces, aparece el error "El panel está inactivo" después de instalar todos los paquetes.

ingrese la descripción de la imagen aquí

No sé cuál podría ser el problema. Algunas cosas que he probado:

  • No se generan registros que indiquen el problema. Incluso agregué la logging --level=debuglínea al kickstart, pero no había nada de valor que ver.
  • No hay ningún paso posterior a la instalación (lo eliminé del ks ya que es el último registro antes de que se detecte el problema), por lo que ese no puede ser el problema.
  • Vi en algún lugar de la web que alguien dijo que hay una diferencia entre los ISO de CentOS 6 y 7, pero no había información adicional para indicar cuantitativamente cuáles podrían ser esas diferencias.

Aquí están las instrucciones completas sobre cómo reproducirlo. Si puedes ver lo que estoy haciendo mal, te lo agradecería mucho.

¡Gracias!

Instrucciones completas sobre cómo reproducir

Mi máquina de producción es un servidor CentOS 7 actualizado. Si te falta alguna aplicación, estoy seguro de que puedes instalarla fácilmente con yum.

Los pasos básicos son:

  • Crear un directorio de trabajo
  • Crear un archivo kickstart
  • Actualizar isolinux.cfg
  • Descargar paquetes
  • Crear repositorio
  • Crear la ISO

Crear directorio de trabajo

Copié la ISO de CentOS 7 en mi directorio temporal y la monté para obtener todos los archivos:

>cd /tmp
>wget http://centos.mirror.iweb.ca/7/isos/x86_64/CentOS-7-x86_64-DVD-1503-01.iso
... hours later ...
>mkdir CentOS7-CD
>sudo mount -l /tmp/CentOS-7-x86_64-DVD-1503-01.iso /tmp/CentOS7-CD
mount: block device /tmp/CentOS-7-x86_64-DVD-1503-01.iso is write-protected, mounting read-only

Copié todos los archivos en un directorio de trabajo.

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

Archivo de inicio

Agregue mi archivo kickstart:

>cat << @@EOF@@ > /tmp/CentOS7/ks.cfg
#version=RHEL7
# System authorization information
auth --enableshadow --enablemd5
# Install OS instead of upgrade
install
# Reboot after installation
reboot --eject
# License agreement
eula --agreed
# Use text mode install
text
# Firewall configuration
firewall --disabled
firstboot --disable
ignoredisk --only-use=sda
# Keyboard layouts
# old format: keyboard us
# new format:
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_CA.UTF-8
# Installation logging level
logging --level=debug
# Network information
%include /tmp/network.ks

# Use CDROM installation media
cdrom
repo --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@@

Nota: Si utiliza estas instrucciones y corta y pega, es posible que aparezca "> " anteponiendo cada línea. Utilice lo siguiente para eliminarlos.

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

Intenté limitar la cantidad de paquetes instalados, de ahí todas las exclusiones en la %packagessección.

ISOLINUX.CFG

A continuación, edite mi archivo isolinux.cfg y agréguelo inst.ks=cdrom:/dev/cdrom:/ks.cfga cada línea adjunta y haga que la versión que no es de prueba sea la predeterminada.

>cd /tmp/CentOS7/isolinux/
>sed -i 's|\(LABEL=\S*\)|\1 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

Agregar paquetes

Empíricamente determiné que hay 240 paquetes para agregar para mi instalación mínima. Hice esto realizando una instalación de red en VirtualBox con los siguientes cambios en el archivo 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/

Así que comenté la instalación del CDROM y en su lugar utilicé el repositorio de red. La instalación tardó 10 minutos. Una vez completado, inicié sesión para obtener la lista de paquetes instalados:

VB> rpm -qa > pkg.list

Copié este archivo nuevamente a mi máquina de producción y obtuve las ubicaciones para descargar estos archivos:

> 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

Esto tarda unos minutos en completarse, ya que descarga todos los paquetes.

Crear repositorio

Crear el repositorio es una tarea sencilla.

>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 .

Crear la 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/

Respuesta1

¡Finalmente resolví mi propio problema! Pondré esto como respuesta para que si alguien más lo ve sepa la causa. Sin embargo, supongo que sólo los canadienses se verán afectados...

Resulta que el problema estaba en la lang en_CA.UTF-8línea del archivo kickstart. Cambié esto lang en_US.UTF-8y la instalación se completa normalmente. Quizás haga otra pregunta sobre cómo usarlo, en_CApero al menos resolví esta.

¡Gracias!

Para quien esté interesado, como lo resolví fue haciendo esto:

  • Creé un DVD con CentOS-7-x86_64-DVD-1503-01.iso.
  • Pon esto en mi servidor y arrancó.
  • Cuando se le preguntó, cambió la línea de configuración de grub y textla agregó
  • Durante la instalación de Anaconda, configuré la instalación mínima a través de la red.
  • La instalación se completó y anaconda-ks.cfgse creó un archivo en/root/
  • Copié este archivo y lo usé exactamente como mi propia plantilla para mi ks.cfgarchivo.
  • También volví a crear los directorios Packagesy repodatasegún el conjunto de paquetes instalados en esta instalación.
  • ¡Creé una nueva iso con el nuevo archivo kickstart y la instalación funcionó!
  • Línea por línea, cambié las diferencias en el nuevo archivo ks.cfg para que coincidiera con el antiguo (el problemático), recreé la ISO e intenté la instalación.
  • Descubrí dolorosamente que la única línea que causó el error fue la lang en_CA.UTF-8línea.

Respuesta2

La cuestión parece estar bastante clara, por así decirlo. Tenga en cuenta que el panel está inactivo cuando se ejecuta el script posterior a la instalación.

Prefiero cortar esa sección del archivo ks o, mejor aún, registrarla para comprender qué salió mal exactamente.

Para iniciar sesión, puede usar la directiva --log /path/to/logfile en su kickstart. Una vez que reciba el mensaje del panel, simplemente cambie a uno de los TTY y verifique los registros.

Entonces la sección ofensiva es %post.

Espero que esto ayude.

información relacionada