dnl $OpenBSD: xfer,v 1.15 2002/04/04 21:13:32 jason Exp $ Installation is supported from several media types, including: CD-ROM (NOT supported if booting from floppy) dnl put back for 3.2 dnl FFS partitions Tape Remote NFS partition (NOT supported if booting from floppy) FTP HTTP If you have the OpenBSD CD-ROM distribution (and a CD-ROM drive), you may be able boot from it. If you can boot from the CD-ROM, you are home free and can proceed to the installation steps. If not, you will need to do some setup work to prepare a bootable image, either a floppy, hard drive, or compatible net boot server. In addition to the bootable image, you also need to consider how to access the binary distribution sets to actually install the system. If you have the OpenBSD CD-ROM distribution you can either access the CD-ROM directly from the bootable image or remotely mounted on another system via NFS. Although you can access the distribution sets directly from the CD-ROM or from one of the FTP mirrors over the internet, you may wish to transfer the sets to a local FTP or NFS server, or copy them to a partition on the target system's disk. OpenBSDXferFloppyFromDOS OpenBSDXferFloppyFromUNIX Creating a bootable hard disk using SunOS, Solaris or other Un*x-like system: If you don't have a floppy drive you can copy the floppy installation image "floppy{:--:}OSrev.fs" or the mini-root "miniroot{:--:}OSrev.fs" onto the hard disk you intend to boot on. Traditionally, the way to do this is to use dd(1) to place the bootable filesystem image in the "swap" partition of the disk (while running in single user mode), and then booting from that partition. Using the "b" partition allows you to boot without overwriting any useful parts of the disk, you can also use another partition, but don't used the "a" or "c" partition without understanding the disklabel issues described below under "incompatible systems". This requires that you be running SunOS, Solaris, OpenBSD or NetBSD which have a compatible view of SunOS disk labels and partitions. Use the dd(1) utility to copy the file to the hard drive. The command would likely be, under SunOS: dd if=floppy{:--:}OSrev.fs of=/dev/rsd0b bs=36b - or - dd if=miniroot{:--:}OSrev.fs of=/dev/rsd0b bs=36b and under Solaris: dd if=floppy{:--:}OSrev.fs of=/dev/rdsk/c0t0d0s1 bs=36b - or - dd if=miniroot{:--:}OSrev.fs of=/dev/rdsk/c0t0d0s1 bs=36b The blocksize is arbitrary as long as it's a multiple of 512-bytes and within the maximum supported by the driver, i.e. bs=126b may not work for all cases. Again, device/partition names may vary, depending on the OS involved. If you are preparing the hard drive on an incompatible system or don't care about the hard disk contents, you can also install the bootable image starting at the beginning of the disk. This lets you prepare a bootable hard-drive even if don't have a working operating system on your machine, but it important to understand that the bootable image installed this way includes a "disk label" which can wipe out any pre-existing disklabels or partitioning for the drive. If you're starting with a virgin disk and trying to do this under SunOS, use format(8) and newfs(8) to set up the partitions and mark the intended partition as an normal partition type. If you're using OpenBSD, perhaps on another architecture, OpenBSD will create a "fictitious label" that will let you access the whole disk. The floppy image is used only for booting, and can be placed in a partition that will be overwritten during the install process, since it actually runs off a ram-disk image in the kernel. In contrast the miniroot is a normal unix root filesystem and you must place in a partition that will not be overwritten until you've completed the installation process. To copy the floppy image to the hard disk, preserving SunOS, Solaris, NetBSD or OpenBSD labels: Under SunOS: dd if=floppy{:--:}OSrev.fs of=/dev/rsdXc bs=1b skip=1 seek=1 and Solaris: dd if=floppy{:--:}OSrev.fs of=/dev/rdsk/c0tXd0s2 \ bs=1b skip=1 seek=1 You need to be sure that your version of dd(1) supports the skip and seek operands, otherwise you can try a technique like: dd if=/dev/rsdXc of=/tmp/label bs=1b count=1 dd if=floppy{:--:}OSrev.fs of=/dev/rsdXc bs=36b dd if=/tmp/label of=/dev/rsdXc bs=1b count=1 In either case, you've created a situation where the disklabel and the filesystem information don't agree about the partition size and geometry, however the results will be usable. Creating a network bootable setup using SunOS or other Un*x-like system: The details of setting up a network bootable environment vary considerably, depending on the network's host. Extract the OpenBSD diskless(8) man page from the man{:--:}OSrev.tgz distribution set or see the copy on the OpenBSD web page. You will also need to reference the relevant man pages or administrators guide for the host system. Basically, you will need to set up reverse-arp (rarpd) and boot parameter (bootpd) information and make the OpenBSD bootblock, kernel/miniroot partition, and a swap file available as required by the netboot setup. OpenBSDXferPrelude OpenBSDXferBareTape(xbase xfont xserv xshare) OpenBSDXferNFS dnl put back for 3.2 dnl dnl OpenBSDXferFFS