스크립트에 어떤 설치 미디어가 사용되었는지 확인하는 방법

스크립트에 어떤 설치 미디어가 사용되었는지 확인하는 방법

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에 대한 답을 제공해야 하는 것 같습니다.

관련 정보