
BEARBEITEN:Ich habe es allgemein noch einmal versucht und sehe das gleiche Problem. Um es zu reproduzieren, folgen Sie meinen Schritten unten. Ich fange an zu glauben, dass es ein Problem mit der Hardware sein könnte, aber ich bin nicht sicher.
Wenn ich ein CentOS 7 ISO mit Kickstart installiere, erhalte ich die Fehlermeldung „Pane ist tot“ ohne zusätzliche Protokolle. Im Grunde nehme ich das CentOS 7 ISO und füge eine Kickstart-Datei hinzu. Wenn ich damit auf VirtualBox installiere, funktioniert alles einwandfrei. Wenn ich versuche, es auf echter Hardware mit mehreren Schnittstellen zu installieren, erhalte ich die Fehlermeldung „Pane ist tot“, nachdem alle Pakete installiert sind.
Ich weiß nicht, was das Problem sein könnte. Einige Dinge, die ich versucht habe:
- Es wurden keine Protokolle erstellt, die auf das Problem hinweisen. Ich habe die
logging --level=debug
Zeile sogar zum Kickstart hinzugefügt, aber es war nichts Wertvolles zu sehen. - Es gibt keinen Schritt nach der Installation (ich habe ihn aus dem KS entfernt, da dies das letzte Protokoll vor dem Auftreten des Problems war), das kann also nicht das Problem sein.
- Ich habe irgendwo im Internet gelesen, dass jemand sagte, es gäbe einen Unterschied zwischen den ISOs von CentOS 6 und 7, aber es gab keine zusätzlichen Informationen, die quantitativ aufzeigen, worin diese Unterschiede bestehen könnten.
Hier sind die vollständigen Anweisungen zur Reproduktion. Wenn Sie sehen, was ich falsch mache, wäre ich Ihnen sehr dankbar.
Danke!
Vollständige Anleitung zur Reproduktion
Meine Produktionsmaschine ist ein aktueller CentOS 7-Server. Wenn Sie Anwendungen vermissen, können Sie diese sicher problemlos mit yum installieren.
Die grundlegenden Schritte sind:
- Erstellen Sie ein Arbeitsverzeichnis
- Erstellen einer Kickstart-Datei
- Aktualisieren Sie isolinux.cfg
- Pakete herunterladen
- Repository erstellen
- Erstellen Sie die ISO
Arbeitsverzeichnis erstellen
Ich habe das CentOS 7 ISO in mein temporäres Verzeichnis kopiert und gemountet, um alle Dateien zu erhalten:
>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
Ich habe alle Dateien in ein Arbeitsverzeichnis kopiert.
>cd /tmp/
>cp -r CentOS7-CD/ CentOS7
Kickstart-Datei
Fügen Sie meine Kickstart-Datei hinzu:
>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@@
Hinweis: Wenn Sie diese Anweisungen befolgen und ausschneiden und einfügen, kann es sein, dass vor jeder Zeile ein „>“ steht. Entfernen Sie es wie folgt.
>sed -i 's|^> ||' /tmp/CentOS7/ks.cfg
Ich habe versucht, die Anzahl der installierten Pakete zu begrenzen, daher alle Ausschlüsse in diesem %packages
Abschnitt.
ISOLINUX.CFG
Bearbeiten Sie als Nächstes meine Datei isolinux.cfg, fügen Sie inst.ks=cdrom:/dev/cdrom:/ks.cfg
jeder Anfügezeile etwas hinzu und machen Sie die Nicht-Testversion zum Standard.
>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
Pakete hinzufügen
Ich habe empirisch ermittelt, dass für meine Minimalinstallation 240 Pakete hinzugefügt werden müssen. Dies habe ich getan, indem ich eine Netzwerkinstallation auf VirtualBox mit den folgenden Änderungen an der Kickstart-Datei durchgeführt habe:
# 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/
Also habe ich die CD-ROM-Installation auskommentiert und stattdessen das Netzwerk-Repository verwendet. Die Installation dauerte 10 Minuten. Nach Abschluss habe ich mich angemeldet, um die Liste der installierten Pakete abzurufen:
VB> rpm -qa > pkg.list
Ich habe diese Datei zurück auf meinen Produktionscomputer kopiert und die Speicherorte zum Herunterladen dieser Dateien ermittelt:
> 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
Dies dauert einige Minuten, da alle Pakete heruntergeladen werden.
Repository erstellen
Das Erstellen des Repository ist eine einfache Aufgabe.
>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 .
Erstellen Sie die 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/
Antwort1
Ich habe endlich mein eigenes Problem gelöst! Ich werde dies als Antwort hinzufügen, damit jeder, der es sieht, die Ursache kennt. Ich gehe jedoch davon aus, dass nur Kanadier betroffen sein werden ...
Es stellte sich heraus, dass das Problem an der lang en_CA.UTF-8
Zeile in der Kickstart-Datei lag. Ich habe diese geändert lang en_US.UTF-8
und die Installation wird normal abgeschlossen. Ich werde vielleicht noch eine Frage zur Verwendung stellen, en_CA
aber zumindest habe ich diese gelöst.
Danke!
Für alle, die es interessiert: Ich habe das Problem folgendermaßen gelöst:
- Ich habe eine DVD mit der Datei CentOS-7-x86_64-DVD-1503-01.iso erstellt.
- Legen Sie dies auf meinen Server und booten
- Auf Nachfrage änderte ich die Grub-Konfigurationszeile und fügte
text
hinzu - Während der Anaconda-Installation habe ich die Mindestinstallation über das Netzwerk konfiguriert.
- Die Installation wurde abgeschlossen und eine
anaconda-ks.cfg
Datei wurde erstellt in/root/
- Diese Datei habe ich kopiert und exakt als eigene Vorlage für meine
ks.cfg
Datei verwendet. Packages
Außerdem habe ich die Verzeichnisse undrepodata
basierend auf den in dieser Installation installierten Paketen neu erstellt .- Habe ein neues ISO mit der neuen Kickstart-Datei erstellt und die Installation hat funktioniert!
- Zeile für Zeile habe ich die Unterschiede in der neuen ks.cfg-Datei so geändert, dass sie mit der alten (problematischen) übereinstimmten, das ISO neu erstellt und die Installation versucht.
- Schmerzlich festgestellt, dass die einzige Zeile, die den Fehler verursachte, die
lang en_CA.UTF-8
Zeile war.
Antwort2
Das Problem scheint, wenn ich das so sagen darf, ziemlich klar zu sein. Beachten Sie, dass die Meldung „Pane is dead“ (Fenster ist tot) angezeigt wird, wenn das Post-Installationsskript ausgeführt wird.
Ich würde diesen Abschnitt lieber aus der ks-Datei ausschneiden oder noch besser protokollieren, um zu verstehen, was genau schief gelaufen ist.
Zum Protokollieren können Sie die Direktive --log /path/to/logfile in Ihrem Kickstart verwenden. Sobald Sie eine Meldung erhalten, wechseln Sie einfach zu einem der TTYs und überprüfen Sie die Protokolle.
Der anstößige Abschnitt ist also %post.
Ich hoffe das hilft.