web-dev-qa-db-ja.com

CentOS 7のキックスタートでディスク構成が使用されないのはなぜですか?

私は誰かのブログで 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が表示されると、インストールディスクを選択する必要があると表示されます。だから私は入って、私のファイルからの私の設定のどれも適用されていないようです。

実際、以前のインストールのパーティションはまだ存在しています。つまり、古いパスワードでドライブを復号化する必要があります。そのため、元のパーティションはクリアされていません。

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

私が見逃している明らかなものはありますか?

マイナーな二次的な質問として、--asprimarypartに対して何をしますか?どこでも見続けますが、説明が見つかりません。

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

autopart --type=lvm --encrypted

ただし、カスタム構成が必要なのは、これにより、sdbドライブ全体が/homeの論理ボリュームとsdaでグループ化されるためです。

編集:

さて、先に進み、インストール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

パスフレーズを求められるような印象を受けました。グーグル検索でたくさんのバグレポートを見ますが、それらの多くは最近のものではありません。グラフィカルモードでも同じ結果が得られます。私がやろうとしていることは不可能のようです。

1
spanishgum

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

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セクションが評価された後、キックスタートインストールの一部として含まれるカスタムパーティションを入力します。

1
spanishgum