quinn-os/make_diskimage.sh
2021-12-19 09:30:54 +10:00

63 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
cd $HOME/Quinn
if [ ! -e images ]
then
mkdir images
fi
cd images
dd if=/dev/zero of=disk.img bs=512 count=331072
sed -e 's/\t\([\+0-9a-zA-Z]*\)[ \t].*/\1/' << EOF | /sbin/fdisk disk.img
n # new partition
p # primary partition
1 # partition number 1
# default - start at beginning of disk
# default - whole disk
a # make the partition active
w # write the partition table
q # and we're done
EOF
sudo losetup /dev/loop0 disk.img
sudo losetup /dev/loop1 disk.img -o 1048576
sudo mkfs.minix -3 /dev/loop1
if [ ! -e mnt ]
then
mkdir mnt
fi
sudo mount -t minix /dev/loop1 mnt
sudo grub-install --target=i386-pc --root-directory=$HOME/Quinn/images/mnt --no-floppy --modules="normal part_msdos multiboot fat" /dev/loop0
if [ ! -e $HOME/Quinn/fsroot ]
then
cd $HOME/Quinn/src/quinn-os
PATH=$HOME/Quinn/cross/bin:$PATH ./make_userland.sh
fi
sudo cp -R $HOME/Quinn/fsroot/* $HOME/Quinn/images/mnt
if [ ! -e $HOME/Quinn/src/quinn-os/kernel.bin ]
then
cd $HOME/Quinn/src/quinn-os
make clean
make
fi
sudo cp $HOME/Quinn/src/quinn-os/kernel.bin $HOME/Quinn/images/mnt
cd $HOME/Quinn/images
sudo umount mnt
sudo losetup -d /dev/loop0
sudo losetup -d /dev/loop1