wok-next diff syslinux/stuff/iso2exe/iso2exe.sh @ rev 19027
syslinux/iso2exe: update partition size
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sun Apr 03 10:27:26 2016 +0200 (2016-04-03) |
parents | dbf4eeed945f |
children | 83ffe9fe03d8 |
line diff
1.1 --- a/syslinux/stuff/iso2exe/iso2exe.sh Mon Mar 28 18:04:41 2016 +0200 1.2 +++ b/syslinux/stuff/iso2exe/iso2exe.sh Sun Apr 03 10:27:26 2016 +0200 1.3 @@ -473,15 +473,6 @@ 1.4 md5sum | cut -c-32 | sed 's/\(..\)/\\x\1/g')" | \ 1.5 ddq bs=16 seek=2047 conv=notrunc of=$1 1.6 fi 1.7 - echo -n "Adding boot checksum..." 1.8 - if [ $(stat -c %s $1) -gt 32768 ]; then 1.9 - n=$(($(get 2 $1) - 1 + ($(get 4 $1) - 1)*512)) 1.10 - n=$(($(od -v -N $n -t u2 -w2 -An $1 | \ 1.11 - awk '{ i+= $0 } END { print (i % 65536) }') \ 1.12 - + $(get $(($n+1)) $1 1))) 1.13 - store 18 $(( (-$n -1) % 65536 )) $1 1.14 - fi 1.15 - echo " done." 1.16 if [ "$append$initrd" ]; then 1.17 echo -n "Adding custom config... " 1.18 DATA=/tmp/$(basename $0)$$ 1.19 @@ -492,14 +483,33 @@ 1.20 cat $initrd >> $DATA 1.21 echo "#!boot $(md5sum $DATA | sed 's/ .*//')" | cat - $DATA | \ 1.22 ddq bs=2k seek=$(custom_config_sector $1) of=$1 conv=notrunc 1.23 - if [ $(stat -c %s $1) -gt $isosz ]; then 1.24 - echo "$(($(stat -c %s $1) - $isosz)) extra bytes." 1.25 + newsz=$(stat -c %s $1) 1.26 + for i in 1 2 3 4 ; do 1.27 + [ $(get $((0x1BE+16*i)) $1 4) -eq $((0x00010080)) ] || continue 1.28 + mb=$(((($newsz -1)/1024/1024)+1)) 1.29 + h=$((512*$(get 417 "$1" 1))) 1.30 + store $(($mb-1)) $((0x1C5+16*i)) $1 8 1.31 + store $(($mb-1)) $(($h+0x1C5+16*i)) $1 8 1.32 + store $(($mb*2048)) $((0x1D2+16*i)) $1 32 1.33 + store $(($mb*2048)) $(($h+0x1D2+16*i)) $1 32 1.34 + done 1.35 + if [ $newsz -gt $isosz ]; then 1.36 + echo "$(($newsz - $isosz)) extra bytes." 1.37 else 1.38 echo "$(($isosz - 32768 - 2048*$(get 32848 $1 4) 1.39 - $(stat -c %s $DATA) - 24)) bytes free." 1.40 fi 1.41 rm -f $DATA > /dev/null 1.42 fi 1.43 + echo -n "Adding boot checksum..." 1.44 + if [ $(stat -c %s $1) -gt 32768 ]; then 1.45 + n=$(($(get 2 $1) - 1 + ($(get 4 $1) - 1)*512)) 1.46 + n=$(($(od -v -N $n -t u2 -w2 -An $1 | \ 1.47 + awk '{ i+= $0 } END { print (i % 65536) }') \ 1.48 + + $(get $(($n+1)) $1 1))) 1.49 + store 18 $(( (-$n -1) % 65536 )) $1 1.50 + fi 1.51 + echo " done." 1.52 } 1.53 1.54 main "$@" <<EOT