wok diff syslinux/stuff/tools/isohybrid.sh @ rev 20332
syslinux:isohybrid.sh/iso2exe.sh rework GPT partition
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Wed May 30 11:10:35 2018 +0200 (2018-05-30) |
parents | 1120b81aab32 |
children | 02ed2446b480 |
line diff
1.1 --- a/syslinux/stuff/tools/isohybrid.sh Tue May 29 10:57:28 2018 +0200 1.2 +++ b/syslinux/stuff/tools/isohybrid.sh Wed May 30 11:10:35 2018 +0200 1.3 @@ -196,20 +196,20 @@ 1.4 sectorcount=$(($cylinders * $heads * $sectors)) 1.5 store32 $(($e + 12)) $sectorcount 1.6 if [ -n "$efi_ofs" ]; then 1.7 + lastlba=$(($sectorcount -1)) 1.8 [ $(read16 0 1024) -eq 35615 -a $(read16 11 0) -ne 35615 ] && 1.9 ddq bs=512 conv=notrunc skip=2 seek=44 count=20 if=$iso of=$iso 1.10 store32 $((446)) $((0x10000)) 1.11 store32 $((446+4)) $((0xFFFFFEEE)) 1.12 - store32 $((446+8)) $efi_ofs 1.13 - store32 $((446+12)) $efi_len 1.14 + store32 $((446+8)) 1 1.15 + store32 $((446+12)) $lastlba 1.16 uudecode <<EOT | unlzma | ddq bs=512 seek=1 of=$iso conv=notrunc 1.17 begin-base64 644 - 1.18 -XQAAgAD//////////wAikYVN1N2VY3JXMnUMJn1RCdQOHN33EegtIBhrUQ7P 1.19 -3PVRrH5+fynx2ZfhIpUTKFVouVH5CEgkcBOQqiTCVX7AsRmUkli6MUo+x+TC 1.20 -9ftViSMiaEWDb8bI73GU3XCMZsZaT5nFwi6NqzhBI9sfRJz5i6cK7kSsPjxN 1.21 -bK6ivatF20do2T7S8NSju5FOCCwMuMHuIcU+Ic8JzCvfjdjkHSkUjA6wIcQi 1.22 -48FNYYyKv58kxngpmoy32Xc7rZ4cKAXJl3LmsFkYdw7QuZ7Rqv5sP3Z8St8D 1.23 -krjcZVJf//Pj90o= 1.24 +XQAAgAD//////////wAikYVN1N2VY3JXMnUMJn1TblyFehfeJH+D4/XPYFjO 1.25 +OzQluqM2w0L9b1dJMfZHJbnNnBFhYprW0PWPY1UOgQJkhF/W2Z0lXvaSrZ7t 1.26 +yEtpmE3Go6qt6FetOfWNMJZhtBdE0TjxFZCvh5z8hy/kRQb1XOkLxeb5VHT3 1.27 +H4JI5S76wY0TueXYsBOJwlwW9fZ8IXP72cDO3JArS4ZhUGxbOOF2oDuf/hFM 1.28 +zQ== 1.29 ==== 1.30 EOT 1.31 lastlba=$(($sectorcount -1)) 1.32 @@ -220,15 +220,13 @@ 1.33 store32 $((0x230)) $(($lastlba-$usablelba+1)) 1.34 store32 $((0x420)) $efi_ofs 1.35 store32 $((0x428)) $(($efi_ofs+$efi_len-1)) 1.36 - store32 $((0x4A8)) $(($lastlba-0x800)) 1.37 - store32 $((0x4B0)) 5 1.38 store32sw $((0x1008)) $(($efi_ofs/4)) 1.39 store32sw $((0x1054)) $(($efi_len/4)) 1.40 for i in 238 410 490 ; do 1.41 ddq if=/dev/urandom count=16 bs=1 conv=notrunc \ 1.42 of=$iso seek=$((0x$i)) 1.43 done 1.44 - store32 $((0x258)) $(crc32 0x400 0x4000) 1.45 + store32 $((0x258)) $(crc32 0x400 $((128*$(read32 0 $((0x250)))))) 1.46 store32 $((0x210)) $(crc32 0x200 $(read32 0 $((0x20C)))) 1.47 fi 1.48 } 1.49 @@ -246,7 +244,7 @@ 1.50 abort "invalid boot catalog." 1.51 efi_ofs= 1.52 if [ $(read8 $cat 65) -eq 239 ]; then 1.53 - [ -n "$entry" ] && echo "$iso: efi boot ignore --entry $entry" 1.54 + [ ${entry:-2} != 2 ] && echo "$iso: efi boot ignore --entry $entry" 1.55 entry=2 1.56 partype=0 1.57 efi_ofs=$((4*$(read32 $cat 104)))