home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2000 May
/
Chip_2000-05_cd2.bin
/
suse
/
inst-sys
/
usr
/
lib
/
YaST
/
create_yast_partfiles
< prev
next >
Wrap
Text File
|
2000-03-30
|
2KB
|
66 lines
#!/bin/bash
#
# Copyright (c) 1999 S.u.S.E. Gmbh Fuerth, Germany. All rights reserved.
#
# Author: Thomas Fehr <fehr@suse.de>, 1999
#
TMPDIR=/tmp/`basename $0`.$$
mkdir -p $TMPDIR
cd $TMPDIR
fdisk -l | sed "s/[*+-]//g" | egrep "Disk|^/dev" | grep -v Extended |\
csplit -z - "/^Disk/" "{*}" > /dev/null
df -P | sort | awk '{ printf "%s %s free=%d\n", $1, $6, int($4/1024) }' > size
for i in xx??
do
SEC_CYL=`head -1 $i | awk '{ print $3, "*", $5 }' | bc`
DISK=`head -1 $i | awk '{ print $2 }' | sed s/://`
DISK_LEN=`echo -n $DISK | wc -c`
cat size | grep ^$DISK | sort -n -k1.`expr $DISK_LEN + 1` > size.1
cat $i | sed 1d |\
awk "{ printf \"%s size=%d id=%s\n\", \$1, \
int((((\$3-\$2+1)*$SEC_CYL+1)/2+1023)/1024), \$5 }" > info
rm -f info.1
for i in `awk '{ if ( $3=="id=83" ) print $1 }' < info`
do
echo -n "$i " >> info.1
dumpe2fs $i 2>/dev/null | head -30 |\
awk 'BEGIN {maxm=-1; rb=-1}
/Errors behavior:/ { err=$3 }
/Block size:/ { bs=$3 }
/Maximum mount count:/ { maxm=$4 }
/Inode count:/ { ic=$3 }
/Block count:/ { bc=$3 }
/Reserved block count:/ { rb=$4 }
END { if (bs!=0) printf( "bs=%d", bs );
if (length(err)>0)
printf( " err=%s", tolower(substr(err,0,1)));
if (maxm!=-1) printf( " maxm=%d", maxm );
if (bs!=0&&ic!=0)
printf( " idns=%d",
2^int(log(bc/ic)/log(2)+0.5)*bs );
if (bc!=0&&rb!=-1) {
diff = int(100/bc*rb+0.1) - 100/bc*rb
if (diff<0)
diff=-diff;
if( diff <= 0.1 )
printf( " respc=%d", int(100/bc*rb+0.1) );
else
printf( " resbl=%d", rb ); \
}
printf( "\n" );
}' >> info.1
done
cat info | join -a 1 - info.1 |\
join -a 2 size.1 - | sed s:$DISK:num=: |\
awk '{ if(substr($2,0,1)!="/") $2="NONE " $2 ;
if(substr($3,0,5)=="free=") { $(NF+1)=$3 ; $3="" } ;
print $0 }' | sed "s/ / /g" | sort -n -k 1.5 |\
awk '{ if( $2=="NONE" && $4=="id=82" ) $2="SWAP" ;
tmp=$2 ; $2=$1; $1=tmp ; print $0 }' > $i.1
MAX=`awk '{ print $3 }' $i.1 | sort -nr -k 1.6 | head -1`
sed "s/ $MAX / size=0 /" $i.1 > part`echo $DISK | sed "s:/:.:g"`
done
cd -
mv $TMPDIR/part.* .
rm -rf $TMPDIR