Thank you. This helped me to figure out that installboot was clobbering the MBR on the vnd images because of the type in the disklabel.
After reviewing arch/i386/stand/installboot/installboot.c I realized that installboot assumes any vnd device is the same as a floppy and just starts writing the boot blocks at the first block. This assumption makes sense for using installboot to create, say, OpenBSD boot floppies. For any disklabel that has a type other than vnd or floppy, installboot lseek()s past the MBR before it writes. So, just adding echo "type: ESDI" >> $T is sufficient to make installboot behave properly with vnd images destined for non-floppy media. Thomas B??rnert [EMAIL PROTECTED] wrote: > Hi List, > > the problem is solved with the following patch for the > flashdisk.sh > > ---snip--- > --- flashdist.sh Mon Nov 13 04:15:50 2006 > +++ flashdist-new.sh Wed Aug 1 13:37:49 2007 > @@ -473,6 +473,24 @@ > > # Here we setup an 'a' partition that takes up the whole flash media > # and a 'b' partition of minimal size which can be used with mount_mfs > +echo "type: SCSI" >> $T > +echo "disk: vnd device" >> $T > +echo "label: fictitious" >> $T > +echo "flags:" >> $T > +echo "bytes/sector: ${bytessec}" >> $T > +echo "sectors/track: ${sectorstrack}" >> $T > +echo "tracks/cylinder: ${trackscylinder}" >> $T > +echo "sectors/cylinder: ${sectorscylinder}" >> $T > +echo "cylinders: ${cylinders}" >> $T > +echo "total sectors: ${totalsize}" >> $T > +echo "rpm: 3600" >> $T > +echo "interleave: 1" >> $T > +echo "trackskew: 0" >> $T > +echo "cylinderskew: 0" >> $T > +echo "headswitch: 0 " >> $T > +echo "track-to-track seek: 0 " >> $T > +echo "drivedata: 0 " >> $ > +echo "" >> $T > echo "a: $asize $sectorstrack 4.2BSD 1024 8192 16" >> $T > echo "b: 1 $offset swap" >> $T > echo "c: $totalsize 0 unused 0 0" >> $T > ---snip--- > > Thomas > > > Hi List, > > > > i've probleme with flashdist and OpenBSD 4.1. 4.0 works > > fine but on 4.1 i've problems with the partiontables. > > > > here my setup procedure > > --------------------------------------------------------------------- > > > > # dd if=/dev/zero of=flashimg bs=512 count=250368 > > 250368+0 records in > > 250368+0 records out > > 128188416 bytes transferred in 2.593 secs (49432122 bytes/sec) > > # vnconfig -c svnd0 flashimg > > # sh flashdist.sh svnd0 flashsmall.txt bsd / > > flashdist.sh 20061112 [EMAIL PROTECTED] > > Using disk device: svnd0 > > Using distfile: flashsmall.txt > > Copying kernel from: bsd > > > > You did not specify -d and you did not specify a manual geometry. > > Please enter Cylinders/Heads/SectorsPerTrack. > > > > Cylinders: 978 > > Tracks Per Cylinder(Heads): 8 > > Sectors Per Track: 32 > > > > Please pay attention to any error messages that you may > > receive from the commands this script is using. If you > > end up having problems, they could explain why. > > > > WARNING: This will erase ALL DATA on the svnd0 disk device! > > Press enter key to continue or Control-C to abort... > > > > Updating MBR and partition table... > > fdisk: sysctl(machdep.bios.diskinfo): Device not configured > > Note, you may ignore "sysctl(machdep.bios.diskinfo)" errors if present. > > > > Setting up disklabel... > > # Inside MBR partition 3: type A6 start 32 size 250336 > > > > The install script is using the following parameters: > > Total size of media: 250368 sectors (128188416 bytes) > > Bytes/Sector: 512 > > Sectors/Track: 32 > > Sectors/Cylinder: 256 > > Tracks/Cylinder (heads): 8 > > Cylinders: 978 > > > > Press enter key to continue or Control-C to abort... > > > > Checking distribution list... > > > > Installing disklabel... > > # Inside MBR partition 3: type A6 start 32 size 250336 > > > > Creating new filesystem... > > /dev/rsvnd0a: 250080 sectors in 977 cylinders of 8 tracks, 32 sectors > > 122.1MB in 4 cyl groups (285 c/g, 35.62MB/g, 9088 i/g) > > > > Mounting destination to /tmp/flashdist.iXZgI9414... > > Checking free space on svnd0... > > Copying OpenBSD distribution to media... > > Copying bsd kernel, boot blocks, /etc/resolv.conf... > > Installing boot blocks... > > Running MAKEDEV...done > > Setting up directories and links... > > Changing any instance of /bin/csh > > in /tmp/flashdist.iXZgI9414/etc/master.passwd to /bin/ksh > > Generating new RSA host key... done > > Generating new RSA1 host key... done > > Generating new DSA host key... done > > > > Please assign a root password... > > Password: > > Verify: > > Passwords don't match or password was empty. Try again. > > Password: > > Verify: > > > > Copying configuration files to /etc... ttys fstab rc syslog.conf boot.conf > > nshrc > > > > Please enter the hostname or IP address of the central log host which will > > receive udp syslog packets from this installation. (Press enter for none, > > and syslog will log to ramdisk) > > > > Loghost: > > > > Installation finished. > > Unmounting filesystem...done! > > ------------------------------------------------------------------ > > > > # fdisk svnd0 > > fdisk: sysctl(machdep.bios.diskinfo): Device not configured > > Disk: svnd0 geometry: 978/8/32 [250368 Sectors] > > Offset: 0 Signature: 0xAA55 > > Starting Ending LBA Info: > > #: id C H S - C H S [ start: size ] > > ------------------------------------------------------------------------ > > 0: E8 963667 7 23 - 14415919 1 7 [ 246698998: 3443776305 ] > > <Unknown ID> > > 1: 01 0 0 1 - 16777215 7 32 [ 0: 0 ] DOS > > FAT-12 2: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused > > 3: 3F 0 0 1 - 16777215 7 32 [ 0: 0 ] <Unknown > > ID> > > > > > > # disklabel svnd0 > > # /dev/rsvnd0c: > > type: vnd > > disk: vnd device > > label: fictitious > > flags: > > bytes/sector: 512 > > sectors/track: 32 > > tracks/cylinder: 8 > > sectors/cylinder: 256 > > cylinders: 978 > > total sectors: 250368 > > rpm: 3600 > > interleave: 1 > > trackskew: 0 > > cylinderskew: 0 > > headswitch: 0 # microseconds > > track-to-track seek: 0 # microseconds > > drivedata: 0 > > > > 16 partitions: > > # size offset fstype [fsize bsize cpg] > > a: 250080 32 4.2BSD 1024 8192 285 # Cyl 0*- > > 976 b: 1 250112 swap # Cyl 977 - > > 977* > > c: 250368 0 unused 0 0 # Cyl 0 - > > 977 > > > > > > after unmounting and mounting the image > > > > # disklabel svnd0 > > # /dev/rsvnd0c: > > type: vnd > > disk: vnd device > > label: fictitious > > flags: > > bytes/sector: 512 > > sectors/track: 100 > > tracks/cylinder: 1 > > sectors/cylinder: 100 > > cylinders: 2503 > > total sectors: 250368 > > rpm: 3600 > > interleave: 1 > > trackskew: 0 > > cylinderskew: 0 > > headswitch: 0 # microseconds > > track-to-track seek: 0 # microseconds > > drivedata: 0 > > > > 16 partitions: > > # size offset fstype [fsize bsize cpg] > > c: 250368 0 unused 0 0 # Cyl 0 - > > 2503* > > i: 250368 0 MSDOS # Cyl 0 - > > 2503* > > > > > > it seems very strange .... > > > > have you anyone an idea ? > > > > with openbsd 4.0 no problem .... > > > > Thanks > > > > Thomas -- Those who can, do. Those who can't, sue.