난 지쳤어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 섹션이 평가된 후 파일에 기록되고 킥스타트 설치의 일부로 포함될 사용자 정의 파티션을 입력하십시오.