
私は疲れた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が表示された場合は、インストールディスクを選択するように求められます。だから入ってみると、私のファイルの構成のどれも適用されていないようです。
実際、以前にインストールしたパーティションはまだそのまま残っています。つまり、以前のパスワードを使用してドライブのパスワードを復号化する必要があります。したがって、元のパーティションも消去されません。
復号化したら、マウントポイント、再フォーマット、暗号化、デバイスタイプなどを手動で設定する必要があります。
私は明らかなものを見逃していますか?
マイナーな補助的な質問で--asprimary
doは何をしますかpart
?どこでも見ることができますが、説明が見つかりません。
以下を使用して自動化されたバージョンを実行したため、パーティション化以外の一般的な構成が正しいことがわかります。
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
私はそれが私にパスワードを要求するという印象を受けました。 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セクションが評価されたら、ファイルに書き込まれ、キックスタートインストールの一部として含まれるカスタムパーティションを入力します。