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 |