[syslinux] "isolinux.bin missing or corrupt" when booting USB flash drive in old PC

David Christensen dpchrist at holgerdanske.com
Tue Mar 21 14:22:15 PDT 2017


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




More information about the Syslinux mailing list