wok annotate mirror-tools/stuff/usr/share/mirror-host/boot/lguest-disk @ rev 6154

Up: libcddb, libcddb-dev to 1.3.2.
author Christopher Rogers <slaxemulator@gmail.com>
date Thu Sep 09 20:40:40 2010 +0000 (2010-09-09)
parents 7cc5d70d5d9b
children
rev   line source
pascal@5974 1 #!/bin/sh
pascal@5974 2
pascal@5974 3 usage()
pascal@5974 4 {
pascal@5974 5 cat << EOT
pascal@5974 6 resize2fs
pascal@5974 7 usage:
pascal@5974 8 $0 grow <guest> <size>[MG]
pascal@5974 9 $0 fixmbr <guest>
pascal@5974 10 EOT
pascal@5974 11 exit 1
pascal@5974 12 }
pascal@5974 13
pascal@5974 14 grow()
pascal@5974 15 {
pascal@5974 16 case "$2" in
pascal@5974 17 *M) dd if=/dev/zero bs=1M count=${2%M} >> /boot/guests/$1 ;;
pascal@5974 18 *G) dd if=/dev/zero bs=1G count=${2%G} >> /boot/guests/$1 ;;
pascal@5974 19 esac
pascal@5974 20 }
pascal@5974 21
pascal@5974 22 # write a 32 bits data
pascal@5974 23 # usage: storelong offset data32 file
pascal@5974 24 storelong()
pascal@5974 25 {
pascal@5975 26 echo $2 | awk '{ printf "%c%c%c%c",
pascal@5975 27 $1%256,($1/256)%256,($1/256/256)%256,($1/256/256/256)%256 }' | \
pascal@5975 28 dd bs=1 conv=notrunc of=$3 seek=$(( $1 )) 2> /dev/null
pascal@5974 29 }
pascal@5974 30
pascal@5974 31 # read a 32 bits data
pascal@5974 32 # usage: getlong offset file
pascal@5974 33 getlong()
pascal@5974 34 {
pascal@5974 35 dd if=$2 bs=1 skip=$(( $1 )) count=4 2> /dev/null | \
pascal@5974 36 hexdump -e '"" 1/4 "%d" "\n"'
pascal@5974 37 }
pascal@5974 38
pascal@5974 39 fixmbr()
pascal@5974 40 {
pascal@5974 41 if [ $(getlong 0x1ea $1) -ne 0 -a $(getlong 0x1fa $1) -ne 0 ]; then
pascal@5974 42 echo "Parttion 3 & 4 non empty. Abort"
pascal@5974 43 exit 1
pascal@5974 44 fi
pascal@5974 45 if [ $(getlong 0x1da $1) -eq 0 ]; then
pascal@5974 46 echo "Parttion 2 empty. Abort"
pascal@5974 47 exit 1
pascal@5974 48 fi
pascal@5974 49 size=$(stat -c %s $1)
pascal@5974 50 new=$(( $size/512 - 32 - $(getlong 0x1ca $1) ))
pascal@5974 51 storelong 0x1da $new $1
pascal@5974 52 }
pascal@5974 53
pascal@5974 54 case "$1" in
pascal@5974 55 grow) shift; grow $@ ; fixmbr $1 ;;
pascal@5974 56 fixmbr) shift; fixmbr $1 ;;
pascal@5974 57 *) usage ;;
pascal@5974 58 esac