AutoYast를 사용하여 SUSE 11 SP4를 설치하고 있습니다. autoyast 제어 파일 내에서 여러 단계로 스크립트를 작성할 수 있습니다.
내 스크립트는 <post-scripts>
다음과 같이 무대에서 실행됩니다.
mkdir /media/usb
echo "Mounting USB to /media/usb"
mount /dev/sdb1 /media/usb
echo "Copying Contents to /root/LINUX_DVD/"
mkdir /root/LINUX_DVD/
cp -aR /media/usb/. /root/LINUX_DVD/
if [ $? -eq 0 ]
then
echo "Copy: OK"
cd /root/LINUX_DVD/seconet/setup/
sed -e "s/passwd service/echo -e '******' | passwd --stdin service/" install.sh > install_tmp.sh
mv install_tmp.sh install.sh
chmod +x install.sh
echo "After confirmation system will finish configuration and reboot."
echo "After the reboot the Installation script will automatically execute."
else
echo "Copy: Failed"
echo "Copying DVD and installing VCIP must be done manually after reboot."
exit
fi
가능한 설치 미디어는 두 가지(DVD와 USB)이므로 보시다시피 콘텐츠를 복사하고 있으므로 이 스크립트에서 무슨 일이 일어나고 있는지 확인할 수 있는 방법을 찾고 싶습니다.
설치 프로세스의 이 단계에서는 설치 미디어가 없으므로 설치 미디어도 설치해야 합니다.
처음에는 설치가 성공했는지 확인하고 그렇지 않으면 다른 미디어를 사용해 볼까 생각했지만 /dev/*
그 안에 아무것도 있는지 확인할 수 있는지, 그렇다면 거기에 올바른 미디어를 설치할 수 있는지 궁금했습니다.
/dev/
기기에 콘텐츠가 있는지 확인할 수 있나요 ?
이 접근 방식이 실용적인가요?
이것이 내가 지금 해결하는 방법입니다.
mkdir /media/install
mount /dev/sdb1 /media/install
if [ $? -ne 0 ]
then
echo "USB not found, trying DVD"
mount /dev/sr0 /media/install
EXITCODE=$?
if [ $EXITCODE -ne 0 ]
then
echo "No correct installation media found";
exit $EXITCODE;
else
echo "Mounted DVD"
fi
else
echo "Mounted USB"
fi
echo "Copying Contents to /root/LINUX_DVD/"
mkdir /root/LINUX_DVD/
cp -aR /media/install/. /root/LINUX_DVD/
... rest of the script ...
답변1
뭔가를 섞고 있는 것 같네요.
"콘텐츠가 있습니다"은(는) 무슨 뜻인가요?
"데이터가 포함되어 있습니다"라고 표시되면 설치해야 합니다.
그러나 "있습니다" 또는 "그 뒤에 실제 미디어가 있습니다"를 의미하는 경우(/dev/ 항목은 그 뒤에 실제 장치가 있음을 인식하지 못하므로) /dev에 대해 /proc/partitions를 grep할 수 있습니다. /sdb1 또는 "lsblk /dev/sdb" 사용(그리고 응답에서 sdb1에 대해 다시 grep)
if grep "sdb1" /proc/partitions ; then
echo sdb1 exists
fi
sr0의 문제점은 CD/DVD 드라이브에 디스크가 없어도 존재한다는 것입니다(드라이브가 존재하므로 커널이 거짓말을 하는 것이 아닙니다).
~에서이 문제, "blkid /dev/sr0"이 /dev/sr0에 대한 답을 제공해야 하는 것 같습니다.