
編集:これを全体的に再試行しましたが、同じ問題が発生します。再現するには、以下の手順に従ってください。ハードウェアの問題である可能性もあると考え始めていますが、確信はありません。
キックスタートを使用して CentOS 7 ISO をインストールすると、追加のログなしで「Pane is dead」というエラーが表示されます。基本的には、CentOS 7 ISO を取得して、キックスタート ファイルを追加しました。これを使用して VirtualBox にインストールすると、すべて正常に動作します。複数のインターフェイスを備えた実際のハードウェアにインストールしようとすると、すべてのパッケージがインストールされた後に「Pane is dead」というエラーが表示されます。
何が問題なのかわかりません。試したことがいくつかあります:
- 問題を示すログは生成されていません。
logging --level=debug
キックスタートに行を追加しましたが、確認する価値のあるものは何もありませんでした。 - インストール後の手順はありません (問題が発生する前の最後のログであるため、ks から削除しました)。そのため、これが問題である可能性はありません。
- ウェブ上のどこかで、CentOS 6 と CentOS 7 の ISO には違いがあると誰かが言っているのを見ましたが、その違いがどのようなものか定量的に示す追加情報はありませんでした。
再現方法の完全な手順はここにあります。私が何を間違っているのかお分かりでしたら、教えていただけると大変助かります。
ありがとう!
再現方法の完全な手順
私の本番マシンは最新の CentOS 7 サーバーです。不足しているアプリケーションがあれば、yum で簡単にインストールできると思います。
基本的な手順は次のとおりです。
- 作業ディレクトリを作成する
- キックスタートファイルを作成する
- isolinux.cfg を更新する
- パッケージをダウンロード
- リポジトリを作成する
- ISOを作成する
作業ディレクトリの作成
CentOS 7 ISO を一時ディレクトリにコピーし、マウントしてすべてのファイルを取得しました。
>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
すべてのファイルを作業ディレクトリにコピーしました。
>cd /tmp/
>cp -r CentOS7-CD/ CentOS7
キックスタートファイル
キックスタートファイルを追加します:
>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@@
注意: これらの手順を使用して切り取りと貼り付けを行うと、各行の先頭に「>」が付く場合があります。これを削除するには、次の操作を行います。
>sed -i 's|^> ||' /tmp/CentOS7/ks.cfg
インストールするパッケージの数を制限しようとしたため、この%packages
セクションにはすべて除外事項があります。
ISOLINUX.CFG
次に、isolinux.cfg ファイルを編集し、inst.ks=cdrom:/dev/cdrom:/ks.cfg
各追加行に追加して、非テスト バージョンをデフォルトにします。
>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
パッケージを追加する
経験的に、最小限のインストールには 240 個のパッケージを追加する必要があると判断しました。キックスタート ファイルに次の変更を加えて、VirtualBox でネットワーク インストールを実行することでこれを行いました。
# 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/
そこで、CDROM インストールをコメント アウトし、代わりにネットワーク リポジトリを使用しました。インストールには 10 分かかりました。完了したら、ログインしてインストールされたパッケージの一覧を取得しました。
VB> rpm -qa > pkg.list
このファイルを本番マシンにコピーし直し、これらのファイルをダウンロードするための場所を取得しました。
> 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
すべてのパッケージをダウンロードするため、完了するまでに数分かかります。
リポジトリの作成
リポジトリの作成は簡単な作業です。
>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 .
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/
答え1
ついに自分の問題を解決しました! これを回答として掲載します。他の人がこれを見たときに原因がわかるようにするためです。ただし、影響を受けるのはカナダ人だけだと思います...
問題はlang en_CA.UTF-8
キックスタート ファイルの行にあることが判明しました。これを に変更するとlang en_US.UTF-8
、インストールは正常に完了します。使用方法について別の質問をするかもしれませんen_CA
が、少なくともこの問題は解決しました。
ありがとう!
興味のある人のために、私がこれを解決した方法は次の通りです:
- CentOS-7-x86_64-DVD-1503-01.isoが入ったDVDを作成しました
- これをサーバーに置いて起動しました
- 尋ねられたら、grubの設定行を変更して追加しまし
text
た - Anaconda のインストール中に、ネットワーク経由の最小インストールを構成しました。
- インストールが完了し、
anaconda-ks.cfg
ファイルが作成されました/root/
- 私はこのファイルをコピーし、自分のファイルのテンプレートとしてそのまま使用しました
ks.cfg
。 - また、このインストールでインストールされたパッケージのセットに基づいて、
Packages
およびディレクトリを再作成しました。repodata
- 新しいキックスタート ファイルを使用して新しい ISO を作成し、インストールが成功しました。
- 新しい ks.cfg ファイルの違いを 1 行ずつ変更して古い (問題のある) ファイルと一致させ、ISO を再作成してインストールを試みました。
- 残念ながら、エラーの原因となったのは行のみであることがわかりました
lang en_CA.UTF-8
。
答え2
問題は、私の言うとおり、かなり明白なようです。インストール後のスクリプトが実行されると、ペインが無効になることに注意してください。
何が間違っていたのかを正確に理解するために、ks ファイルからそのセクションを切り取るか、ログに記録することをお勧めします。
ログを記録するには、キックスタートで --log /path/to/logfile ディレクティブを使用できます。パネル メッセージが表示されたら、TTY の 1 つに切り替えてログを確認します。
問題のあるセクションは %post です。
これが役に立つことを願っています。