Thomas Schmitt
2017-Mar-21 08:41 UTC
[syslinux] "isolinux.bin missing or corrupt" when booting USB flash drive in old PC
Hi, i have uploaded a little gz compressed tarball http://scdbackup.webframe.org/block_seq.tgz containing -rwxr-xr-x thomas/thomas 4552 2017-03-21 09:23 block_seq -rw-r--r-- thomas/thomas 315 2017-03-21 09:22 block_seq.c To be unpacked in a suitable directory by tar xvzf block_seq.tgz The binary "block_seq" was compiled on Debian Jessie. If it does not run, do cc -o block_seq block_seq.c to get a locally compiled binary. When Martin posted his MBR binary, the test stick shall be composed by: dd if=martins_mbr.bin bs=1 count=432 of=/dev/sdc dd if=debian-8.7.1-i386-xfce-CD-1.iso bs=1 count=80 seek=432 of=/dev/sdc ./block_seq | dd bs=512 skip=1 count=1325055 seek=1 of=/dev/sdc You will have to copy the screen output by hand or by photo camera. The hopefully lengish hex output of the block content can be truncated to 4 bytes, if all groups of 4 bytes are the same. If you see a change in the 4 byte pattern in the reported text, then all different groups of 4 bytes are of interest. Have a nice day :) Thomas
David Christensen
2017-Mar-21 21:22 UTC
[syslinux] "isolinux.bin missing or corrupt" when booting USB flash drive in old PC
On 03/21/2017 01:41 AM, Thomas Schmitt via Syslinux wrote:> Hi, > > i have uploaded a little gz compressed tarball > > http://scdbackup.webframe.org/block_seq.tgz > > containing > > -rwxr-xr-x thomas/thomas 4552 2017-03-21 09:23 block_seq > -rw-r--r-- thomas/thomas 315 2017-03-21 09:22 block_seq.c > > To be unpacked in a suitable directory by > > tar xvzf block_seq.tgz > > The binary "block_seq" was compiled on Debian Jessie. > If it does not run, do > > cc -o block_seq block_seq.c > > to get a locally compiled binary.Build your code: 2017-03-21 12:31:07 dpchrist at hd-tracy ~ $ cat /etc/debian_version 8.7 2017-03-21 12:33:27 dpchrist at hd-tracy ~ $ uname -a Linux hd-tracy 3.16.0-4-686-pae #1 SMP Debian 3.16.39-1+deb8u2 (2017-03-07) i686 GNU/Linux 2017-03-21 12:33:29 dpchrist at hd-tracy ~ $ cd sandbox/syslinux/thomas-schmitt/block_seq-20170321-0141/ 2017-03-21 12:34:01 dpchrist at hd-tracy ~/sandbox/syslinux/thomas-schmitt/block_seq-20170321-0141 $ cat block_seq.c /* cc -o block_seq block_seq.c */ #include <unistd.h> int main() { int ret; unsigned int i, j, k; char buf[512]; for(i= 0; ; i++) { for(j= 0; j < 128; j++) for(k= 0; k < 4; k++) buf[4 * j + k]= (i >> (24 - 8 * k)) & 0xff; ret= write(1, buf, 512); if(ret != 512) break; } return 0; } 2017-03-21 12:34:23 dpchrist at hd-tracy ~/sandbox/syslinux/thomas-schmitt/block_seq-20170321-0141 $ cc -o block_seq block_seq.c 2017-03-21 12:34:53 dpchrist at hd-tracy ~/sandbox/syslinux/thomas-schmitt/block_seq-20170321-0141 $ ./block_seq | dd count=4 2>/dev/null | hexdump -C 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000200 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 |................| * 00000400 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 |................| * 00000600 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 |................| * 00000800> When Martin posted his MBR binary, the test stick shall be composed by: > > dd if=martins_mbr.bin bs=1 count=432 of=/dev/sdc > > dd if=debian-8.7.1-i386-xfce-CD-1.iso bs=1 count=80 seek=432 of=/dev/sdc > > ./block_seq | dd bs=512 skip=1 count=1325055 seek=1 of=/dev/sdc > > You will have to copy the screen output by hand or by photo camera. > The hopefully lengish hex output of the block content can be truncated > to 4 bytes, if all groups of 4 bytes are the same. If you see a change > in the 4 byte pattern in the reported text, then all different groups > of 4 bytes are of interest.Build Martin's code: 2017-03-21 12:38:11 dpchrist at hd-tracy ~ $ mkdir src/syslinux 2017-03-21 12:38:16 dpchrist at hd-tracy ~ $ cd src/syslinux/ 2017-03-21 12:38:19 dpchrist at hd-tracy ~/src/syslinux $ apt-get source syslinux 2017-03-21 12:50:05 dpchrist at hd-tracy ~/src/syslinux $ cp -rp syslinux-6.03+dfsg/ syslinux-6.03+dfsg+dpchrist 2017-03-21 12:51:51 dpchrist at hd-tracy ~/src/syslinux $ cd syslinux-6.03+dfsg+dpchrist/ 2017-03-21 12:59:04 dpchrist at hd-tracy ~/src/syslinux/syslinux-6.03+dfsg+dpchrist $ perl -pi -e 's/(^all:.+)\\/$1martins_mbr.bin \\/' mbr/Makefile 2017-03-21 13:09:41 dpchrist at hd-tracy ~/src/syslinux/syslinux-6.03+dfsg+dpchrist $ wget http://www.syslinux.org/archives/2017-March/025658.html -O - | tail -n 388 | head -n 362 | perl -p -e 's/\"/"/g' | perl -p -e 's/</</g' | perl -p -e 's/\>/>/g' > mbr/martins_mbr.S 2017-03-21 13:18:36 dpchrist at hd-tracy ~/src/syslinux/syslinux-6.03+dfsg+dpchrist $ perl -pi -e 's/(isohdp\[fp\]x)/($1|martins_mbr)/' mbr/checksize.pl 2017-03-21 13:33:55 dpchrist at hd-tracy ~/src/syslinux/syslinux-6.03+dfsg+dpchrist $ make ... 2017-03-21 13:35:26 dpchrist at hd-tracy ~/src/syslinux/syslinux-6.03+dfsg+dpchrist $ ll bios/mbr/martins_mbr.bin -rw-r--r-- 1 dpchrist dpchrist 432 2017/03/21 13:28:30 bios/mbr/martins_mbr.bin 2017-03-21 13:44:54 dpchrist at hd-tracy ~/src/syslinux/syslinux-6.03+dfsg+dpchrist $ hexdump -C bios/mbr/martins_mbr.bin 00000000 33 ed fa 8e d5 bc 00 7c fb fc 66 31 db 66 31 c9 |3......|..f1.f1.| 00000010 66 53 66 51 06 57 8e dd 8e c5 52 be 00 7c bf 00 |fSfQ.W....R..|..| 00000020 06 b9 00 01 f3 a5 ea 2b 06 00 00 52 b4 41 bb aa |.......+...R.A..| 00000030 55 31 c9 30 f6 f9 cd 13 72 1d 81 fb 55 aa 75 17 |U1.0....r...U.u.| 00000040 83 e1 01 74 12 66 c7 06 0d 07 b4 42 eb 15 56 e8 |...t.f.....B..V.| 00000050 26 01 45 0d 0a eb 07 56 e8 1d 01 43 0d 0a 5e 5a |&.E....V...C..^Z| 00000060 51 b4 08 cd 13 83 e1 3f 5b 51 0f b6 c6 40 50 f7 |Q......?[Q... at P.| 00000070 e1 53 52 50 bb 00 7c b9 04 00 66 a1 b0 07 e8 71 |.SRP..|...f....q| 00000080 00 0f 82 ad 00 66 40 80 c7 02 e2 f2 60 bf 00 7c |.....f at .....`..|| 00000090 ba 10 00 b9 10 00 8a 05 47 e8 c6 00 e2 f8 e8 d7 |........G.......| 000000a0 00 0d 0a 4a 75 ed e8 cf 00 4b 65 79 3f 0d 0a 31 |...Ju....Key?..1| 000000b0 c0 cd 16 61 66 81 3e 40 7c fb c0 78 70 75 09 fa |...af.>@|..xpu..| 000000c0 bc ec 7b ea 44 7c 00 00 e8 ad 00 69 73 6f 6c 69 |..{.D|.....isoli| 000000d0 6e 75 78 2e 62 69 6e 20 6d 69 73 73 69 6e 67 20 |nux.bin missing | 000000e0 6f 72 20 63 6f 72 72 75 70 74 2e 0d 0a cd 18 f4 |or corrupt......| 000000f0 eb fd 66 60 66 31 d2 66 03 06 f8 7b 66 13 16 fc |..f`f1.f...{f...| 00000100 7b 66 52 66 50 06 53 6a 01 6a 10 89 e6 66 f7 36 |{fRfP.Sj.j...f.6| 00000110 e8 7b c0 e4 06 88 e1 88 c5 92 f6 36 ee 7b 88 c6 |.{.........6.{..| 00000120 08 e1 41 b8 01 02 8a 16 f2 7b cd 13 8d 64 10 66 |..A......{...d.f| 00000130 61 c3 e8 43 00 4f 70 65 72 61 74 69 6e 67 20 73 |a..C.Operating s| 00000140 79 73 74 65 6d 20 6c 6f 61 64 20 65 72 72 6f 72 |ystem load error| 00000150 2e 0d 0a eb 98 53 b4 0e 8a 3e 62 04 b3 07 cd 10 |.....S...>b.....| 00000160 5b c3 50 c0 e8 04 e8 01 00 58 24 0f 3c 09 76 02 |[.P......X$.<.v.| 00000170 04 07 04 30 e8 de ff c3 5e 55 50 53 ac e8 d5 ff |...0....^UPS....| 00000180 3c 0a 75 f8 5b 58 5d 56 c3 00 00 00 00 00 00 00 |<.u.[X]V........| 00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001b0 Build the USB stick: 2017-03-21 13:44:13 root at hd-tracy ~ # /home/dpchrist/sandbox/syslinux/thomas-schmitt/block_seq-20170321-0141/block_seq | dd iflag=fullblock bs=1M count=647 of=/dev/sdb 647+0 records in 647+0 records out 678428672 bytes (678 MB) copied, 133.741 s, 5.1 MB/s 2017-03-21 13:47:30 root at hd-tracy ~ # dd if=/dev/sdb count=4 2>/dev/null | hexdump -C 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000200 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 |................| * 00000400 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 |................| * 00000600 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 |................| * 00000800 2017-03-21 13:47:41 root at hd-tracy ~ # dd if=/home/dpchrist/src/syslinux/syslinux-6.03+dfsg+dpchrist/bios/mbr/martins_mbr.bin of=/dev/sdb 0+1 records in 0+1 records out 432 bytes (432 B) copied, 0.00657437 s, 65.7 kB/s 2017-03-21 14:07:23 root at hd-tracy ~ # dd if=/mnt/samba/data/dpchrist/iso/debian/8.7.1/i386/debian-8.7.1-i386-xfce-CD-1.iso bs=1 count=80 skip=432 of=/dev/sdb seek=432 80+0 records in 80+0 records out 80 bytes (80 B) copied, 0.0361075 s, 2.2 kB/s 2017-03-21 14:09:04 root at hd-tracy ~ # dd if=/dev/sdb count=1 2>/dev/null | hexdump -C 00000000 33 ed fa 8e d5 bc 00 7c fb fc 66 31 db 66 31 c9 |3......|..f1.f1.| 00000010 66 53 66 51 06 57 8e dd 8e c5 52 be 00 7c bf 00 |fSfQ.W....R..|..| 00000020 06 b9 00 01 f3 a5 ea 2b 06 00 00 52 b4 41 bb aa |.......+...R.A..| 00000030 55 31 c9 30 f6 f9 cd 13 72 1d 81 fb 55 aa 75 17 |U1.0....r...U.u.| 00000040 83 e1 01 74 12 66 c7 06 0d 07 b4 42 eb 15 56 e8 |...t.f.....B..V.| 00000050 26 01 45 0d 0a eb 07 56 e8 1d 01 43 0d 0a 5e 5a |&.E....V...C..^Z| 00000060 51 b4 08 cd 13 83 e1 3f 5b 51 0f b6 c6 40 50 f7 |Q......?[Q... at P.| 00000070 e1 53 52 50 bb 00 7c b9 04 00 66 a1 b0 07 e8 71 |.SRP..|...f....q| 00000080 00 0f 82 ad 00 66 40 80 c7 02 e2 f2 60 bf 00 7c |.....f at .....`..|| 00000090 ba 10 00 b9 10 00 8a 05 47 e8 c6 00 e2 f8 e8 d7 |........G.......| 000000a0 00 0d 0a 4a 75 ed e8 cf 00 4b 65 79 3f 0d 0a 31 |...Ju....Key?..1| 000000b0 c0 cd 16 61 66 81 3e 40 7c fb c0 78 70 75 09 fa |...af.>@|..xpu..| 000000c0 bc ec 7b ea 44 7c 00 00 e8 ad 00 69 73 6f 6c 69 |..{.D|.....isoli| 000000d0 6e 75 78 2e 62 69 6e 20 6d 69 73 73 69 6e 67 20 |nux.bin missing | 000000e0 6f 72 20 63 6f 72 72 75 70 74 2e 0d 0a cd 18 f4 |or corrupt......| 000000f0 eb fd 66 60 66 31 d2 66 03 06 f8 7b 66 13 16 fc |..f`f1.f...{f...| 00000100 7b 66 52 66 50 06 53 6a 01 6a 10 89 e6 66 f7 36 |{fRfP.Sj.j...f.6| 00000110 e8 7b c0 e4 06 88 e1 88 c5 92 f6 36 ee 7b 88 c6 |.{.........6.{..| 00000120 08 e1 41 b8 01 02 8a 16 f2 7b cd 13 8d 64 10 66 |..A......{...d.f| 00000130 61 c3 e8 43 00 4f 70 65 72 61 74 69 6e 67 20 73 |a..C.Operating s| 00000140 79 73 74 65 6d 20 6c 6f 61 64 20 65 72 72 6f 72 |ystem load error| 00000150 2e 0d 0a eb 98 53 b4 0e 8a 3e 62 04 b3 07 cd 10 |.....S...>b.....| 00000160 5b c3 50 c0 e8 04 e8 01 00 58 24 0f 3c 09 76 02 |[.P......X$.<.v.| 00000170 04 07 04 30 e8 de ff c3 5e 55 50 53 ac e8 d5 ff |...0....^UPS....| 00000180 3c 0a 75 f8 5b 58 5d 56 c3 00 00 00 00 00 00 00 |<.u.[X]V........| 00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001b0 fc 20 00 00 00 00 00 00 72 40 f5 59 00 00 80 00 |. ......r at .Y....| 000001c0 01 00 00 3f a0 86 00 00 00 00 00 38 14 00 00 fe |...?.......8....| 000001d0 ff ff ef fe ff ff 4c 21 00 00 60 02 00 00 00 00 |......L!..`.....| 000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.| 00000200 2017-03-21 14:09:10 root at hd-tracy ~ # fdisk -l /dev/sdb Disk /dev/sdb: 3.6 GiB, 3887595520 bytes, 7592960 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x59f54072 Device Boot Start End Sectors Size Id Type /dev/sdb1 * 0 1325055 1325056 647M 0 Empty /dev/sdb2 8524 9131 608 304K ef EFI (FAT-12/16/32) Boot the USB flash drive in computer with Intel D865GBFLK motherboard and Intel Pentium 4 3.4E GHz processor: C 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 Key? If I press the 'a' key, I see: isolinux.bin missing or corrupt Reboot and Select proper Boot device or Insert Boot Media in selected Boot device David
Thomas Schmitt
2017-Mar-21 22:10 UTC
[syslinux] "isolinux.bin missing or corrupt" when booting USB flash drive in old PC
Hi, David Christensen had Martin's MBR write:> CThat means the LBA 8444 has to be converted to a Cylinder/Head/Sector address. It would be interesting to learn by which heads/cylinder and sectors/head factors.> 00000000000000000000000000000000 > ... > 00000000000000000000000000000000Well, this is none of the block contents which was written to the stick. Neither the MBR parts nor the data dummy. Do you get the same result if you fill the entire stick with block_seq by omitting dd option count=647 ? /home/dpchrist/sandbox/syslinux/thomas-schmitt/block_seq-20170321-0141/block _seq | dd iflag=fullblock bs=1M of=/dev/sdb which will end intentionally by i/o error. And then again dd if=/home/dpchrist/src/syslinux/syslinux-6.03+dfsg+dpchrist/bios/mbr/martins_mbr.bin of=/dev/sdb dd if=/mnt/samba/data/dpchrist/iso/debian/8.7.1/i386/debian-8.7.1-i386-xfce-CD-1.iso bs=1 count=80 skip=432 of=/dev/sdb seek=432> Key? > If I press the 'a' key, I see:Now i understand what "Key?" shall mean. INT 16 AH 0 fetches a keypress. Is "xor %ax, %ax" a typical way to say "ax = 0;" ?> isolinux.bin missing or corruptThis was expected. But the zeros which cause the message were not expected. Have a nice day :) Thomas
Possibly Parallel Threads
- "isolinux.bin missing or corrupt" when booting USB flash drive in old PC
- "isolinux.bin missing or corrupt" when booting USB flash drive in old PC
- "isolinux.bin missing or corrupt" when booting USB flash drive in old PC
- "isolinux.bin missing or corrupt" when booting USB flash drive in old PC
- Linux syslinux-3.72 does not update boot block for SD devices