킥스타트 중 %pre 로깅 - 킥스타트 이후 로그 파일이 존재하지 않습니다.

킥스타트 중 %pre 로깅 - 킥스타트 이후 로그 파일이 존재하지 않습니다.

여러 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가 실행될 때 새 시스템에 실제로 존재하는 --를 사용하여 새 디스크로 전환하므로 재부팅 후에도 로그 파일이 존재하기 때문에 해당 부분에 적합합니다 .%postchroot/var/log/

이 작업을 수행하기 위해 해당 섹션을 사용할 때의 문제점은 %pre당시 사용 가능한 유일한 파일 시스템이 메모리 전용 파일 시스템이라는 것입니다. 파일에 쓰면 컴퓨터를 종료한 후 파일 시스템이 사라집니다 /tmp/./root/pre_install.log/var/log

디버그 쉘은설치 중간까지 사용할 수 없음, 이는 디버깅을 어렵게 만듭니다.

답변1

%pre나 역시 나중에 분석하기 위해 로그를 캡처하는 것과 똑같은 요구 사항을 갖고 있습니다 . 맞습니다. %postAnaconda에 들어가면 새로 생성된 파일 시스템으로 루트가 변경되어 로그에 액세스할 수 없습니다 %pre. %postrun 을 사용할 수 있지만 제 생각에는 --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%includepre-installanaconda%post

관련 정보