CentOS 7 kickstartが私のディスク設定を使用しないのはなぜですか?

CentOS 7 kickstartが私のディスク設定を使用しないのはなぜですか?

私は疲れたRedhatの構文ガイド、彼ら高度なパーティショニングの例、そして複雑なパーティションの例誰かのブログで。非常に簡単な設定を実装したいと思います。

これは私の起動ファイルです。

#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use graphical install
graphical
# Use NFS installation media
nfs --server={MY PXE SERVER IP} --dir=/path/to/centos/7/
# Run the Setup Agent on first boot
firstboot --disable
ignoredisk --only-use=sda,sdb
eula --agreed

# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8

# Network information
network  --bootproto=dhcp --device=eno16777984 --ipv6=auto --activate
network  --hostname=myhostname.example.com

# Root password
rootpw --iscrypted {REDACTED}

# System services
services --enabled="chronyd"
# System timezone
timezone America/Denver --isUtc --ntpservers=MY_NTP1.example.com,MY_NTP2.example.com

# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda

# Partition clearing information
clearpart --all --initlabel

# Primary drive partition
part sda1 --size=1024 --fstype=xfs --ondisk=sda
part /boot --size=1024 --onpart=sda1
part pv.sda2 --size=1 --grow --encrypted --fstype=xfs --ondisk=sda

# LVM for sda
volgroup vg_a pv.sda2
logvol / --vgname=vg_a --size=51200 --name=vg_a-root --fstype=xfs
logvol swap --vgname=vg_a --recommended --name=vg_a-swap
logvol /home --vgname=vg_a --size=1 --grow --name=vg_a-home --fstype=xfs

# Secondary drive partition
part pv.sdb1 --size=1 --grow --encrypted --fstype=xfs --ondisk=sdb

# LVM for sdb
volgroup vg_b pv.sdb1
logvol /storage --vgname=vg_b --size=1 --grow --name=vg_b-storage --fstype=xfs

repo --name=MyRepoName --baseurl=http://myhostname.example.com/path --install

%packages
@^compute-node-environment
@base
@core
@directory-client
@scientific
chrony
kexec-tools

%end

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

%end

で動作していることを確認しましたksvalidator

何らかの理由でインストールGUIが表示された場合は、インストールディスクを選択するように求められます。だから入ってみると、私のファイルの構成のどれも適用されていないようです。

実際、以前にインストールしたパーティションはまだそのまま残っています。つまり、以前のパスワードを使用してドライブのパスワードを復号化する必要があります。したがって、元のパーティションも消去されません。

復号化したら、マウントポイント、再フォーマット、暗号化、デバイスタイプなどを手動で設定する必要があります。

私は明らかなものを見逃していますか?

マイナーな補助的な質問で--asprimarydoは何をしますかpart?どこでも見ることができますが、説明が見つかりません。

以下を使用して自動化されたバージョンを実行したため、パーティション化以外の一般的な構成が正しいことがわかります。

autopart --type=lvm --encrypted

ただし、ドライブ全体をsdb論理ボリュームにグループ化するため、カスタム構成が必要です。/homesda

編集する:

さて、インストールGUIのすべてを私が好きな方法で手動で設定し、開いてどの行が作成されたかを確認/root/anaconda.cfgしました。 (また、/root/original.cfg設定が正しくロードされていることを確認するために設定を見つけました。)

私が見つけたディスク構成は次のとおりです(他のものはすべて同じです)。

clearpart --all --initlabel --drives=sda,sdb

part /storage --fstype="xfs" --size=1 --grow --encrypted
part pv.2717 --fstype="lvmpv" --ondisk=sda  --size=284543
part /boot --fstype="xfs" --ondisk=sda  --size=1024

volgroup cl_newegg00 --pesize=4096 pv.2717

logvol swap --fstype="swap" --size=28532  --encrypted --name=swap --vgname=cl_newegg00
logvol /home --fstype="xfs" --size=204802  --encrypted --name=home --vgname=cl_newegg00
logvol root --fstype="xfs" --size=51202  --encrypted --name=root --vgname=cl_newegg00

だから私の設定をこの行に置き換えれば、すべてがうまくいくと思いました。しかし、まだ同じ動作が発生します。つまり、ドライブのロック解除、マウントポイントの設定、暗号化の設定、タイプの設定などが必要です。これはキックスタートファイルの目的を完全に崩すようです。

編集する:

だから私はいくつかの小さな変更を加えてモードに切り替えましたが、text私のファイルで/tmp/*.logいくつかのエラーが見つかりました。

grep ERR /tmp/*.log
.. ERR: LUKS device sda has no key/passphrase
.. ERR: LUKS device sdb has no key/passphrase

私はそれが私にパスワードを要求するという印象を受けました。 Google 検索で多数のバグレポートが表示されましたが、そのほとんどは最近ではありません。グラフィックモードでも同じ結果が得られます。私がしたいことは不可能だと思います。

ベストアンサー1

私は達成しようとしたことが不可能だと信じていました。私が見つけたレポート同じ問題を経験している他の人。インストール後の操作でこの問題を解決する方法があります。

cryptsetup luksChangeKey /dev/sdX

また、キーファイルを生成して起動時にインストールを設定することもできます。

dd if=/dev/urandom of=/root/keyfile bs=1024 count=4
cryptsetup luksAddKey /dev/sdX /root/keyfile

# /etc/crypttab
sdX_crypt      /dev/sdX  /root/keyfile  luks

# /etc/fstab
/dev/mapper/sdX_crypt  /media/sdX     ext3    defaults        0       2

注:キーファイルを含むパーティションが復号化されていない場合、キーファイルは使用できません。したがって、パーティションごとにキーを生成できますが、すべてをロック解除するには、キーと一緒にドライブのパスワードを入力する必要があります。


私は%pre部分とbashを使って私に合ったハックを見つけました。

%pre
#!/bin/sh

TTY=`tty`
exec < $TTY > $TTY 2> $TTY


pswd1=a
pswd2=b
while [ ! $pswd1 == $pswd2 ]; do
    read -s -p "Enter encryption passphrase: " pswd1
    echo -e ""
    read -s -p "Enter passphrase again: " pswd2
    echo -e ""
    if [ ! $pswd1 == $pswd2 ]; then
        echo -e "Password does not match. Try again."
    fi
done

PASSPHRASE=$pswd1

cat << EOF > /tmp/part-include
    ...
    part .... --passphrase=${PASSPHRASE}
    part .... --passphrase=${PASSPHRASE}
    ...
EOF

%end

%include /tmp/part-include

%pre bashセクションが評価されたら、ファイルに書き込まれ、キックスタートインストールの一部として含まれるカスタムパーティションを入力します。

おすすめ記事