여러 EL6 시스템을 부팅 중이고 내 섹션에서 %pre
수행된 작업을 기록하고 싶습니다.
%post
제공된 프롬프트에 따라 해당 부분을 기록할 수 있다는 것을 알고 있습니다.centos.org: anaconda 및 kickstart에 대한 팁과 요령다음 두 가지 방법 중 하나를 사용하십시오.
%post --log=/root/my-post-log
echo 'Hello, World!'
또는:
%post
exec < /dev/tty3 > /dev/tty3
chvt 3
echo
echo "################################"
echo "# Running Post Configuration #"
echo "################################"
(
echo 'Hello, World!'
) 2>&1 | /usr/bin/tee /var/log/post_install.log
chvt 1
%pre
하지만 그 부분에 대해서는 작업을 수행 할 수 없습니다 . 이것이 내가 사용하는 것입니다:
%pre --log=/var/log/my-pre-log
echo 'Hello, World!'
드디어 사용이 허가됐을 때가상 콘솔, 시스템의 어느 곳에서도 로그 파일을 찾을 수 없습니다.
%post
이는 Anaconda가 실행될 때 새 시스템에 실제로 존재하는 --를 사용하여 새 디스크로 전환하므로 재부팅 후에도 로그 파일이 존재하기 때문에 해당 부분에 적합합니다 .%post
chroot
/var/log/
이 작업을 수행하기 위해 해당 섹션을 사용할 때의 문제점은 %pre
당시 사용 가능한 유일한 파일 시스템이 메모리 전용 파일 시스템이라는 것입니다. 파일에 쓰면 컴퓨터를 종료한 후 파일 시스템이 사라집니다 /tmp/
./root/pre_install.log
/var/log
디버그 쉘은설치 중간까지 사용할 수 없음, 이는 디버깅을 어렵게 만듭니다.
답변1
%pre
나 역시 나중에 분석하기 위해 로그를 캡처하는 것과 똑같은 요구 사항을 갖고 있습니다 . 맞습니다. %post
Anaconda에 들어가면 새로 생성된 파일 시스템으로 루트가 변경되어 로그에 액세스할 수 없습니다 %pre
. %post
run 을 사용할 수 있지만 제 생각에는 --nochroot
경로가 고통스럽습니다 .%post
%include
나는 그 섹션에서 사용함으로써 내가 원하는 것을 얻을 수 있었습니다 %post
. 먼저 %pre
출력을 기록합니다.
%pre --log /tmp/pre-install.log
echo "Starting Kickstart Pre-Installation..."
그런 다음 %include
녹음하는 %pre
동안 %post
여기에서 bash의 문서가 포함된 파일로 보내세요.
%post --log /root/post-install.log
cat >> /root/pre-install.log << "EOF"
%include /tmp/pre-install.log
EOF
저는 해당 부분이 Anaconda에 의해 먼저 평가되어 사용할 파일을 %pre
생성할 수 있기 때문에 이것이 효과가 있다고 믿습니다. 그런 다음 Anaconda는 파일의 나머지 부분을 평가하여 각 파일을 지정된 파일로 바꿉니다. 또한 동일한 방식으로 Anaconda 로그를 캡처했습니다. 두 개의 프로필 줄을 .%include
%include
pre-install
anaconda
%post