51 lines
1.4 KiB
Bash
51 lines
1.4 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
if [ "$JEHANNE" = "" ]; then
|
||
|
echo $0 requires the shell started by ./hacking/devshell.sh
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
if [ "$SYSLINUXBIOS" == "" ]; then
|
||
|
export SYSLINUXBIOS=/usr/lib/syslinux/modules/bios/ # GNU/Linux Debian way
|
||
|
fi
|
||
|
if [ ! -d "$SYSLINUXBIOS" ]; then
|
||
|
echo 'Missing $SYSLINUXBIOS: install syslinux-utils or set it to the proper path.'
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
if [ -d $JEHANNE/hacking/disk-setup/bios/ ]; then
|
||
|
rm $JEHANNE/hacking/disk-setup/bios/*
|
||
|
else
|
||
|
mkdir $JEHANNE/hacking/disk-setup/bios/
|
||
|
fi
|
||
|
cp $SYSLINUXBIOS/lib* $JEHANNE/hacking/disk-setup/bios/
|
||
|
cp $SYSLINUXBIOS/elf.c32 $JEHANNE/hacking/disk-setup/bios/
|
||
|
cp $SYSLINUXBIOS/mboot.c32 $JEHANNE/hacking/disk-setup/bios/
|
||
|
cp $SYSLINUXBIOS/menu.c32 $JEHANNE/hacking/disk-setup/bios/
|
||
|
|
||
|
# Locate the disk
|
||
|
if [ "$DISK" == "" ]; then
|
||
|
export DISK=$JEHANNE/hacking/sample-disk.img
|
||
|
fi
|
||
|
|
||
|
if [ ! -b $DISK ] && [ ! -f $DISK ]; then
|
||
|
echo "Cannot find DISK to update ($DISK): set the DISK variable"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
export KERNEL=$JEHANNE/hacking/bin/workhorse.32bit
|
||
|
export KERNDIR=$JEHANNE/hacking/bin/
|
||
|
|
||
|
# install everything
|
||
|
cat << EOF | runqemu
|
||
|
disk/fdisk -p /dev/sdE0/data >> /dev/sdE0/ctl
|
||
|
disk/prep -p /dev/sdE0/plan9 >> /dev/sdE0/ctl
|
||
|
cat /dev/sdE0/ctl
|
||
|
|
||
|
disk/format -d /dev/sdE0/dos /hacking/disk-setup/syslinux.cfg /hacking/disk-setup/bios/* /arch/amd64/kern/initrd /arch/amd64/kern/jehanne.32bit
|
||
|
|
||
|
EOF
|
||
|
syslinux --offset $((2048*512)) $DISK
|
||
|
dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/mbr/mbr.bin of=$DISK
|
||
|
|