YaifO - Yet another installer for OpenBSD Copyright (c) 2007-2011 Michael Erdely <mike at erdelynet dot com> Copyright (c) 2005 Waldemar Brodkorb <wbx at openbsd-geek dot de> OpenBSD-current version (c) 2010-2011 Frank Denis <j at pureftpd dot org> All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ========================================================================= There are some situations where a modified installer for OpenBSD is useful. For example if you want to remotely install without any access to a keyboard or serial terminal. Or you would like to do a RAID installation, which is not supported by default. Another example is a fully automatic installations. At the moment only remote install via Secure Shell is implemented. There is no binary installer available, you should always compile it on your own. Building: ========== As first step you need to modify the configuration file "config". See the comments in the file. Then create or copy a RSA2 public key into authorized_keys in this directory. Some of my machines are really slow so I like to create only RSA2 host keys for installation. (ssh-keygen -t rsa) You may also copy the /etc/ssh/ssh_host* files to this directory if you are upgrading an existing installation. To build and compile the installer you should have the OpenBSD source tree in /usr/src and then: 1. Set the SUDO variable, if necessary (export SUDO=/usr/bin/sudo) if you are building yaifo as a non-root user. 2. Copy /etc/ssh/ssh_host*_key* files: (sudo cp /etc/ssh/ssh_host*_key* . ; sudo chown `id -un` ssh_host*_key*) 3. Copy your authorized_keys file (cp ~/.ssh/authorized_keys .) 4. Edit the config file for your desired network settings. 5. If serial console redirection is necessary, edit the boot.conf file. 6. make cleanall (only necessary if yaifo was previously built) 7. make obj 8. make Installation with yaifo.fs: =========================== Use dd to put the yaifo.fs image on the hard disk. Overwriting the root partition of a running OpenBSD system do not work without single usermode and read-only mounted root partition. For such installations/upgrades use yaifo.rd with the existing boot loader. Example for an OpenBSD system wth a SCSI disk: # dd if=yaifo.fs of=/dev/rsd0c # sync # reboot Example for a FreeBSD system after forcing disks to read-only and disabling disk-overwrite protection: # mount -u -o ro -f -a # sysctl kern.geom.debugflags=16 # dd if=yaifo.fs of=/dev/da0 bs=512 # reboot Example for a Linux rescue system and an IDE disk: # wget http://www.openbsd.de/~wbx/yaifo.fs -O - | dd of=/dev/hda # sync # reboot Or OpenBSD via ftp: # ftp -o - 192.168.1.2:/yaifo.fs | dd of=/dev/rwd0c # sync # reboot Reboot and connect via ssh root@ip-address and install as normal. Installation with yaifo.rd: =========================== You can use yaifo.rd to boot from an installed system or via network. Notes on OpenBSD/macppc: ======================== There is no yaifo.fs for macppc. To use the yaifo.rd from within OS X, copy yaifo.rd and ofwboot to the root directory in OS X. Reboot and get into Openfirmware (Cmd,Option,O,F). Type: boot hd:,ofwboot /yaifo.rd Notes on OpenBSD/sparc: ======================= The standard bootloader does not allow RAMDISK's bigger than 3.8 MB, so you have to use bootloaders compiled with RELOC=0x480000 to boot yaifo images. For OpenBSD/sparc you need yaifo.net instead of boot.net in your tftpboot directory. Notes on OpenBSD/landisk: ========================= This is a work in progress and is considered broken at this time.