| lkraemer  
 
 
 
 
 Group: Members
 Posts: 16
 Joined: Jan. 2008
 | 
|  | Posted: Jan. 03 2010,03:31 |  |  I wanted to use a Boot floppy to boot DSL Ver 4.4.10 from my USB Flash
 drive on my old Compaq Presario 1672.  The previous floppy USB boot
 image wouldn't work for me with ver 4.4.10, and my BIOS did not allow
 booting from USB.
 
 I used UNETBOOTIN (with Win2k) to copy the DSL 4.4.10 ISO to my
 USB Flash Drive.
 
 To make the Boot floppy I used the script located at this URL:
 http://linuxgazette.net/116/okopnik1.html
 
 The Knoppix CD consists of a number of files, of which only one really
 mattered to what I needed: the "miniroot". To be exact, the miniroot is
 a compressed bootable image within the Knoppix image - it is, in fact,
 the part that makes the Knoppix CD bootable - so tweaking the files
 inside it consisted of the following steps:
 
 1. Mount the Knoppix image
 2. Decompress the miniroot into a temporary file
 3. Mount the miniroot
 4. Modify the files in it
 5. Recompress it
 6. Create a loop-mounted file
 7. Copy the miniroot into it
 8. Make it bootable
 9. Write it to a floppy
 
 Boot script follows:
 
 | Code Sample |  | #!/bin/bash
 # Created by Ben Okopnik on Thu Mar 17 23:56:31 EST 2005
 #
 # Many thanks to Fabian Franz, whose original script gave me the idea of
 # how it's all supposed to work.
 #
 # This script creates a boot floppy that passes control to a USB PenDrive
 # containing a Knoppix CD image. No CDROM, no problem!
 #
 #  SYSLINUX & PERL must be installed.
 #  (I used Ubuntu 8.04.3 to execute this script, then copied the boot.img
 #   file to a Flash Drive, then used DSL to create the Floppy.)
 #
 
 ############## User configuration section ###############################
 
 # Set this to the directory where the Knoppix image lives, or specify the
 # directory as a command-line argument.
 KNOPPIX_DIR=${1:-/home/larry/tmp2}
 
 ############## End of user config section ###############################
 
 abort()
 {
 printf "$@\n"
 exit 1
 }
 
 clean_exit()
 {
 [ -d "$TMPDIR" ] && rm -rf $TMPDIR
 }
 
 # Validation tests
 [ $UID -ne 0 ] && abort "Root privileges are required to run this script."
 [ -d "$KNOPPIX_DIR" ] || abort "$KNOPPIX_DIR is not a directory."
 [ -z "`ls $KNOPPIX_DIR|grep -i 'knoppix.*iso'`" ] &&
 abort "Knoppix image not found in $KNOPPIX_DIR."
 
 # Create temp dir, get rid of it on exit
 TMPDIR=`mktemp -dp /tmp/ make_floppy.XXXXXX`
 trap "clean_exit" EXIT
 
 # Jump into TMPDIR and prepare it for the coming ops
 ORIG_DIR=$(pwd)
 cd $TMPDIR
 mkdir knoppix floppy miniroot old_miniroot
 
 # Choose and mount the Knoppix image
 printf "Please choose one of the following images:\n"
 select choice in $KNOPPIX_DIR/K*.iso; do break; done
 mount $choice knoppix -o loop
 
 # Decompress the miniroot from the mounted image's boot dir
 gunzip -c knoppix/boot/isolinux/minirt24.gz > minirt24
 
 # "Back up" and mount the miniroot
 mv minirt24 minirt24.old
 mount -o loop minirt24.old old_miniroot
 
 # Create the file which will contain the new miniroot; format it as a DOS
 # FS and mount it
 dd if=/dev/zero of=minirt24 bs=4M count=1
 mke2fs -L "KNOPPIX Miniroot" -b 1024 -N 8192 -O none -F -q -m 0 minirt24
 mount -o loop minirt24 miniroot
 
 # Copy the USB-related modules from the old miniroot to the new one
 mkdir -p miniroot/modules/scsi
 for n in `ls old_miniroot/modules/scsi|egrep 'usb|hci'`
 do
 cp old_miniroot/modules/scsi/"$n" miniroot/modules/scsi
 done
 
 # Copy everything except the "scsi" dir from the old miniroot to the new
 # one
 rm -rf old_miniroot/modules/scsi
 cp -af old_miniroot/* miniroot/
 
 # Unmount both
 umount old_miniroot
 umount miniroot
 
 # Compress the miniroot again
 gzip -9 minirt24
 
 # Create a 1.44MB file which will contain the boot image, format it as a
 # DOS FS, and mount it.
 dd if=/dev/zero of=$TMPDIR/boot.img bs=1k count=1440
 mkdosfs $TMPDIR/boot.img
 mount -t msdos boot.img floppy -o loop
 
 # Grrr... "mount" weirdness requires waiting, then remounting in order to
 # have it read-writeable. Perhaps the 'mount' maintainer should get a bug
 # report?
 sleep 3
 mount floppy -o remount,rw
 
 # Copy the required files from Knoppix's boot dir to the image we're building
 FILES="boot.msg f2 f3 german.kbd isolinux.cfg linux24 logo.16"
 (cd knoppix/boot/isolinux/; cp -f $FILES $TMPDIR/floppy/)
 
 # Copy the new miniroot into it - we're almost done!
 cp minirt24.gz floppy/
 
 # Rename and tweak the config file to conform to the SYSLINUX usage
 mv floppy/isolinux.cfg floppy/syslinux.cfg
 [ -n "$LANGUAGE" ] && perl -pi -e "s/lang=de/lang=$LANGUAGE/g" floppy/syslinux.cfg
 [ -n "$LANGUAGE" ] && perl -pi -e "s/lang=us/lang=$LANGUAGE/g" floppy/syslinux.cfg
 
 # A little cleanup...
 umount knoppix
 umount floppy
 
 # Make the image bootable! Since it's not an actual device, 'syslinux' is
 # going to complain - but we're tough and can handle it.
 syslinux boot.img 2>/dev/null
 
 # Put the boot image back where we started
 cp -i boot.img $ORIG_DIR
 
 printf "The boot diskette can now be created with 'dd if=boot.img of=/dev/fd0'.\n"
 
 | 
 
 lk
 |