On Wed, Sep 5, 2012 at 9:36 AM, Ted Unangst <t...@tedunangst.com> wrote:
> We provide many forms of installation media, but neither floppy nor
> iso images are "best" suited for usb drives.  It's pretty easy to make
> a hard drive image containing the installer bsd.rd.
>
> I tested this on i386, it should work on amd64 too.  It's just a bunch
> of shell commands, save it to makeimage.sh or whatever.  Maybe we
> could integrate this into the distrib build makefiles, but I wanted to
> get a procedure done first.  I don't know what the best way to get a
> disklabel on is, I just dumped a tiny bit of text into a file.
>
> It's actually very similar to what builds the install.iso, but I
> didn't do it as a makefile for now so it's easier for standalone users
> to run.
>
> It assumes you have a working bsd.rd in /.  If you wanted to build
> amd64 on i386, or vice versa, you'll have to fiddle with the files.
>
> #!/bin/sh
> set -e
> cp /bsd.rd .
> gzip -9 bsd.rd
> dd if=/dev/zero bs=1k count=3584 of=disk.img
> sudo vnconfig vnd0 disk.img
> sudo fdisk -y -i vnd0
> echo "16 partitions:" > disklabel.txt
> echo "#                size           offset  fstype [fsize bsize  cpg]" >> 
> disklabel.txt
> echo "  a:             6944              128  4.2BSD   2048 16384    1" >> 
> disklabel.txt
> echo "  c:             7168                0  unused" >> disklabel.txt
> disklabel -R vnd0 disklabel.txt
> newfs -i 512000 vnd0a
> mount /dev/vnd0a /mnt
> cp bsd.rd.gz /mnt/bsd
> cp /usr/mdec/boot /mnt/boot
> /usr/mdec/installboot /mnt/boot /usr/mdec/biosboot vnd0
> umount /mnt
> vnconfig -u vnd0
> rm bsd.rd.gz
> rm disklabel.txt
>

Here's a version without the disklabel file, using EXAMPLES section
from softraid(4).

I modified gzip invocation to avoid handling temporary files, but I
end up wondering if it's worth it...
I also added missing sudo invocation


#!/bin/sh
set -e
dd if=/dev/zero bs=1k count=3584 of=disk.img
sudo vnconfig vnd0 disk.img
sudo fdisk -y -i vnd0
printf "a\n\n\n\n\nw\nq\n\n" | sudo disklabel -E vnd0
sudo newfs -i 512000 vnd0a
sudo mount /dev/vnd0a /mnt
gzip -9 -c /bsd.rd | sudo tee /mnt/bsd >/dev/null
sudo cp /usr/mdec/boot /mnt/boot
sudo /usr/mdec/installboot /mnt/boot /usr/mdec/biosboot vnd0
sudo umount /mnt
sudo vnconfig -u vnd0

Cheers

Reply via email to