bootable CD-ROM image to memstick image?

Ian Smith smithi at nimnet.asn.au
Mon Jun 30 16:43:20 UTC 2014


You last said "Good luck!" and I thought I was all set, but alas .. it 
seemed to be loading ok, but then "Missing operating system" was all it 
said, a horror story long preceding the infamous BSoD to old DOS jocks.

Reintroducing some context ..

On Mon, 30 Jun 2014 03:22:07 +1000, Ian Smith wrote:
 > On Sun, 29 Jun 2014 08:03:45 -0600, Warren Block wrote:
 >  > On Sun, 29 Jun 2014, Warren Block wrote:
 >  > > On Sun, 29 Jun 2014, Ian Smith wrote:
 >  > > 
 >  > > > I have a bootable BIOS/EC update CD image for a Lenovo X200, with no CD.
..
 >  > > > root at x200:~smithi/biosupdate # file 6duj48us.iso
 >  > > > 6duj48us.iso: # ISO 9660 CD-ROM filesystem data '6DUJ48US
 >  > > > ' (bootable)
..
 >  > > > Is there a generic way to convert this into a bootable USB image?
 >  > > 
 >  > > Possibly the update program and data is in the El Torito floppy image. I've
 >  > > converted floppy images to boot CDs, but not the other way.  This might
 >  > > help: http://arstechnica.com/civis/viewtopic.php?f=16&t=308491

More reference to that post later ..

 >  >   % isoinfo -d -i 6duj48us.iso
 >  >   Setting input-charset to 'ISO8859-1' from locale.
 >  >   CD-ROM is in ISO 9660 format
 >  >   System id:
 >  >   Volume id: 6DUJ48US
..
 >  >   Volume set size is: 1
 >  >   Volume set sequence number is: 1
 >  >   Logical block size is: 2048
 >  >   Volume size is: 19126
 >  >   El Torito VD version 1 found, boot catalog is in sector 20
 >  > 
 >  >   Joliet with UCS level 3 found.
 >  >   No SUSP/Rock Ridge present
 >  >   Eltorito validation header:
 >  >       Hid 1
 >  >       Arch 0 (x86)
 >  >       ID 'NERO BURNING ROM'
 >  >       Cksum 8A FC OK
 >  >       Key 55 AA
 >  >       Eltorito defaultboot header:
 >  >           Bootid 88 (bootable)
 >  >           Boot media 4 (Hard Disk Emulation)
 >  >           Load segment 7C0

That's 1984 (whats?), I wonder if it's relevant?

 >  >           Sys type 6
 >  >           Nsect 1
 >  >           Bootoff 1B 27
..
 > root at x200:~ # dd if=/home/smithi/biosupdate/6duj48us.iso of=6duj48us.img 
 >  bs=2048 skip=27
 > 19099+0 records in
 > 19099+0 records out
 > 39114752 bytes transferred in 0.477592 secs (81899933 bytes/sec)
..
 > root at x200:~ # dd if=6duj48us.img of=/dev/da0 bs=2048 conv=sync
 > 19099+0 records in
 > 19099+0 records out
 > 39114752 bytes transferred in 24.952938 secs (1567541 bytes/sec)
 > 
 > root at x200:~ # ll /dev/da*
 > crw-rw----  1 root  operator  0x93 Jun 30 02:51 /dev/da0
 > crw-rw----  1 root  operator  0x94 Jun 30 02:51 /dev/da0s1
..
 > root at x200:~ # mount_msdosfs /dev/da0s1 /dist
 > root at x200:~ # ls -lrt /dist
 > total 184
 > -rwxr-xr-x  1 root  wheel   9349 Dec 31  1993 WINA20.386*
 > -r-xr-xr-x  1 root  wheel  37174 Dec 31  1993 IBMDOS.COM*
 > -r-xr-xr-x  1 root  wheel  40758 Dec 31  1993 IBMBIO.COM*
 > -rwxr-xr-x  1 root  wheel  54654 Dec 31  1993 COMMAND.COM*
 > -rwxr-xr-x  1 root  wheel  14160 Nov 18  1994 HIMEM.SYS*
 > -rwxr-xr-x  1 root  wheel  12663 Apr 23  1999 RAMDRIVE.SYS*
 > drwxr-xr-x  1 root  wheel   2048 Apr  4  2008 System Volume Information/
 > -rwxr-xr-x  1 root  wheel    123 Apr 15  2009 CONFIG.SYS*
 > -rwxr-xr-x  1 root  wheel     58 Feb  5  2013 AUTOEXEC.BAT*
 > drwxr-xr-x  1 root  wheel   2048 May 10  2013 $RECYCLE.BIN/
 > drwxr-xr-x  1 root  wheel   2048 May 10  2013 EFI/
 > drwxr-xr-x  1 root  wheel   2048 May 10  2013 Flash/
 > drwxr-xr-x  1 root  wheel   2048 Jun 13  2013 Recycled/

So 6duj48us.img, made as above, is directly mountable as msdosfs, all 
files I accessed looked ok.  It looks just like a bootable disk, it's 
the active slice, though I wonder a bit about sizes; DF shows 36M with 
15M used, but fdisk shows partition 1 as being
  sysid 4 (0x04),(Primary DOS with 16 bit FAT (< 32MB))
so I don't know if it's relevant that the image is larger than that.

Anyway, from the above arstecnica thread and another found on a lenovo 
support forum, I tried the latest geteltorito.pl from 
http://userpages.uni-koblenz.de/~krienke/ftp/noarch/geteltorito/geteltorito 
and it happily wrote an image 317440 bytes (620 x 512B sectors) shorter.

Which compared byte for byte till its shorter eof (and nothing's using 
the last 15MB anyway), which also boots to "Missing operating system".

So I grabbed the 8duj10uc.iso that both articles referred to as working 
when extracted by geteltorito.pl, and made its image which is exacly 
32768KiB or 32MiB .. which does match that 16 bit FAT limitation, fwiw.

I had no intention of flashing my X200 BIOS from this one for X220, but 
thought it should boot .. but still, "Missing operating system".

So in desperation I borrowed an LG GP08lu10 external DVR rewriter .. 
which had trouble attaching and then spewed numerous read errors, 
numerous times (on a blank CD) before giving up, repeatedly :(

This thing came with a very early BIOS, Sept 2008.  Though the changelog 
doesn't mention problems booting from USB disks and it's happily booted 
FreeBSD and PC-BSD memsticks from the stick I'm using, still I'm hoping 
that getting it upgraded might make this work.

Not my day; I'll have to leave it until I find a working external CD.

Thanks for your help, it was good fun, for a while :)

cheers, Ian


More information about the freebsd-mobile mailing list