[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [HURD] boot from floppy



On Mon, Sep 10, 2001 at 10:39:46AM +0200, Florian Quetting wrote:
> Is there any other chance to install HURD, without the need of flashing my
> BIOS?

You can try, but it is not easy.  The below script was written by John Tobey,
it's a long time since it was tested.  But you can try anyway, nothing has
changed that should make it not work.  I did a few changes to make it suit
your needs.

You can also look up my old mail:
http://www.debian.org/Lists-Archives/debian-hurd-9909/msg00079.html

Note that you need a GNU/Hurd installation mounted in /gnu and a mount point
/floppy for the floppy drive (not mounted).

If the files don't fit on a floppy, try to use bzip2 instead gzip, or try a
smaller kernel.

You didn't tell me your Hurd partition.  Edit the below GRUB config file to
match your needs, just as described in the install docs.

Report back to us how it worked!

Thanks,
Marcus

---------------------------------------------------------------------

#!/bin/bash

fd=/dev/fd0
floppy=/floppy
gnu=/gnu

#test -f /usr/share/grub/i386-pc/stage2 || ( apt-get install grub )
if [ ! -f $gnu/boot/gnumach.gz ]
then
    echo "Follow the instructions at http://www.pick.ucam.org/~mcv21/hurd.html";
    echo "(skipping the part about GRUB) through running cross-install,"
    echo "then run this script again."
    exit 1
fi

dd if=/dev/zero of=$fd bs=1k count=1440 || exit 1
mke2fs -N 32 -o hurd $fd
mount $fd $floppy
mkdir $floppy/boot
cp $gnu/boot/gnumach.gz $gnu/boot/serverboot.gz $floppy/boot/

cat > $floppy/boot/servers.boot <<'EOF'
# GNU Mach boot script for Debian GNU/Hurd.  Each line specifies a
# file for serverboot to load (the first word), and actions to be done
# with it.

# First, the bootstrap filesystem.  It needs several ports as arguments,
# as well as the user flags from the boot loader.
/hurd/ext2fs.static.gz --bootflags=${boot-args} --host-priv-port=${host-port} --device-master-port=${device-port} --exec-server-task=${exec-task} -Tdevice ${root-device} $(task-create) $(task-resume)

# Now the exec server; to load the dynamically-linked exec server
# program, we have serverboot in fact load and run ld.so, which in
# turn loads and runs /hurd/exec.  This task is created, and its task
# port saved in ${exec-task} to be passed to the fs above, but it is
# left suspended; the fs will resume the exec task once it is ready.
/lib/ld.so.1.gz /hurd/exec $(exec-task=task-create)
EOF

mkdir $floppy/hurd $floppy/lib
gzip -9c $gnu/hurd/ext2fs.static > $floppy/hurd/ext2fs.static.gz
gzip -9c $gnu/lib/ld.so.1 > $floppy/lib/ld.so.1.gz
mkdir $floppy/boot/grub
cp /usr/share/grub/i386-pc/stage2 $floppy/boot/grub/

cat > $floppy/boot/grub/menu.lst <<'EOF'
# This is the amount grub waits before booting the default entry
timeout= 10

# Tell which entry to boot by default.  Note that this is origin zero
# from the beginning of the file.  
default= 0

# Note that to GRUB, all hard disks are `hd' and all floppy disks are `fd'.
# To Mach, SCSI disks are `sd' and IDE type disks are `hd'.  Use
# GRUB names in the `root' command and prefixing filenames.  Use a 
# Mach name as the `root' arg for the kernel, and whenever running the Hurd.

# Entry 0:
title= hurd (hd2s6 multi-user)
root=   (hd1,5)
kernel= /boot/gnumach.gz root=hd2s6
module= /boot/serverboot.gz

# Entry 1:
title= hurd (hd2s6 single-user)
root=   (hd1,5)
kernel= /boot/gnumach.gz root=hd2s6 -s
module= /boot/serverboot.gz

# Entry 2:
title= Floppy
root= (fd0)
kernel= /boot/gnumach.gz root=fd0
module= /boot/serverboot.gz
EOF

umount $floppy
dd if=/usr/share/grub/i386-pc/stage1 of=/dev/fd0 bs=512 count=1

cat <<'EOF' | grub --batch
install= (fd0)+1 (fd0) (fd0)/boot/grub/stage2 0x8000 p
quit
EOF

sync

------------------------------------------------------------------

-- 
`Rhubarb is no Egyptian god.' Debian http://www.debian.org brinkmd@debian.org
Marcus Brinkmann              GNU    http://www.gnu.org    marcus@gnu.org
Marcus.Brinkmann@ruhr-uni-bochum.de
http://www.marcus-brinkmann.de



Reply to: