web-dev-qa-db-ja.com

CentOS 7 ISOキックスタートインストール-「ペインが死んでいる」

EDIT:これを一般的に再試行しましたが、同じ問題が発生しました。再現するには、以下の手順に従ってください。ハードウェアに問題があるのではないかと考え始めましたが、よくわかりません。

キックスタートを使用してCentOS 7 ISOをインストールすると、追加のログがなく、「ペインが死んでいる」というエラーが表示されます。基本的に、私はCentOS 7 ISOを取得し、キックスタートファイルを追加しました。これをVirtualBoxにインストールすると、すべて正常に動作します。複数のインターフェイスを備えた実際のハードウェアにインストールしようとすると、すべてのパッケージがインストールされた後に「Pane is dead」エラーが表示されます。

enter image description here

何が問題なのか私は途方に暮れている。私が試したいくつかのこと:

  • 問題を示すログは生成されません。キックスタートにlogging --level=debug行も追加しましたが、見る価値のあるものは何もありませんでした。
  • インストール後の手順はありません(問題が発生する前の最後のログなので、ksから削除しました)。これは問題にはなりません。
  • CentOS 6と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/
2
Trenin

ようやく自分の問題を解決しました!私はこれを答えとして、他の誰かがそれを見た場合に原因がわかるようにします。しかし、私はカナダ人だけが影響を受けると思います...

問題はキックスタートファイルの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ファイルの違いを古い(問題のある)ファイルと一致するように変更し、ISOを再作成してインストールを試みました。
  • エラーの原因となった唯一の行がlang en_CA.UTF-8行であることが痛々しく見つかりました。
4
Trenin

私が言うように、問題は非常にはっきりしているようです。インストール後のスクリプトを実行すると、ペインが表示されなくなることに注意してください。

私はむしろksファイルからそのセクションを切り取るか、正確に何がうまくいかなかったかを理解するためにそれをさらにログに記録したいと思います。

ログを記録するには、キックスタートで--log/path/to/logfileディレクティブを使用できます。ペインメッセージを取得したら、いずれかのTTYに切り替えてログを確認します。

したがって、問題のセクションは%postです。

これがお役に立てば幸いです。

1
ostendali