2012-08-16 3 views
1

다음 스크립트를 만들었지 만 시스템에 확장 파티션이있는 경우 중단됩니다. 마운트는 물론 확장 파티션 마녀를 마운트하려고 시도하지 않습니다.Bash 스크립트 건너 뛰기 탑재 확장 파티션

파티션을 확장하면 어떻게 루프에서 파티션을 제거합니까?

for i in hda hdb hdc hdd hde hdf sda sdb sdc sdd sde sdf sdg sdh sdi ; do 
fdisk -l /dev/$i > /tmp/mnt.txt 
cat /tmp/mnt.txt | grep "Disk" 1>/dev/null && { echo -n "controle harddisk $i: " 
found=0 
for j in 1 2 3 4 5 6 7 8 9 ; do 
cat /tmp/mnt.txt | grep "$i$j" 1>/dev/null && { echo -n "$i$j " ; 
    found="1"; 
    mkdir /media/$i$j 2>/dev/null 
    mount /dev/$i$j /media/$i$j 2>/dev/null 

     # test voor /C 
    if [ -d "/media/$i$j/Program Files" ] ; then 
     umount /media/$i$j 
     mount /dev/$i$j /C 
     echo -n "(/C) " 
    fi 

     # test voor /B 
    if [ -d /media/$i$j/Boot ] ; then 
     umount /media/$i$j 
     mount /dev/$i$j /B 
     echo -n "(/B) " 
    fi 

     # test voor /herstel 
    if [ -f /media/$i$j/partimage ] || [ -f /media/$i$j/fsarchiver ] || [ -d /media/$i$j/lost+found ] ; then 
     umount /media/$i$j 
     mount /dev/$i$j /herstel 
     echo -n "(/herstel) " 
    fi 

     # test voor /G 
    if [ -d /media/$i$j/herstel ] ; then 
     umount /media/$i$j 
     mount /dev/$i$j /G 
     echo -n "(/G) " 
     fi 
} 
done 
if [ "$found" == "0" ] ; then echo "(geen partities)"; else echo ""; fi 
} 

좁게 귀하의 질문에 대답하기 위해 안양

답변

1

을 완료, 당신은 아마 단순히 두 번째 grep 호출에 다른 grep -v "Linux extended"를 추가 할 -이 확장 권한을 포함하는 행을 필터링한다.

이 파일을 어디서 배포하고 싶은지에 따라 파일을 배포하려는 위치에 따라 디자인에 대해 생각하고보다 "긍정적 인"일치 기준을 추가하는 것이 좋습니다 (예 : 주어진 유형의 파티션 만 마운트하는 경우)

+0

if [ 'cat /sys/class/block/sd$i$j/size' -gt 100 ]; then echo "sd$i$j it's extended" fi 

: Adonay 그냥 내 머리 위에 매달려 전구가 있었다 비 논리적 파티션을 의미합니다 더 이상이라면 $ 내가 J/크기 을 $ SD. 추가 : sed -i '/ Extended/d'/tmp/mnt.txt. 이제 "Extended"가있는 모든 행이 삭제됩니다. 이 스크립트는 Windows 컴퓨터에서만 사용됩니다. – user1602596