Monday, September 24, 2007

OpenBSD 4.1 Live CD

OpenBSD is an excellent choice for debugging and troubleshooting network problems as it offers a wealth of advanced functionality right out of the box:

  1. support for most hardware
  2. Layer 2 functionality: bridging, trunking, 802.1Q VLANs
  3. Layer 3 functionality: static routing, OSPF, BGP
  4. pf and altq for firewalling and QoS
  5. user land servers: dhcp, dns, httpd
I created an OpenBSD Live CD that I could just drop into any x86 computer (compatible with the GENERIC kernel) and enjoy a basic install of an OpenBSD system. I simply did a basic install of OpenBSD in my hard disk using the bsd, bsd.mp, bsd.rd, base, etc, man file sets (note no x11), and copied them to the CDROM. Minimal modification was required to ensure that /dev, /etc, /var and /usr/local were writeable. Other than this, the Live CD is identical to a real OpenBSD 4.1 install.

Steps to use this OpenBSD 4.1 Live CD:
  1. Download from: primary site, md5 (please contact me if you can help by mirroring)
  2. Decompress the obsd41_livecd.7z file using 7-Zip and burn the ISO to a CDROM. The uncompressed ISO is 183MB.
  3. Boot the target PC using the Live CD.
  4. The kernel will automatically boot with the -a flag and will prompt you for the root device location. This allows you to mount the root filesystem from any device (another reason this step exists is because there's no reliably way of auto detecting the CD you booted from). If you are booting from your first CDROM drive enter cd0a at the kernel prompt.
  5. Once booting is complete, you can login with the root account. The root account has a blank password (yes, this is intentional) so just press Enter and you'll be dropped into a root shell.
  6. Only the lo0 interface is automatically configured on boot, and all other network interfaces must be configured manually.
Features/limitations of this Live CD:
  1. The Live CD works only on x86 hardware.
  2. The Live CD contains a installation of the bsd, bsd.mp, bsd.rd, base, etc, and man file sets.
  3. The compilers, games, X11, source code, etc file sets are not installed.
  4. You cannot remove the Live CD from the CDROM drive while the Live CD is in use as the root file system is mounted directly from the CD.
  5. The Live CD has no persistent storage, so any changes you make to the system will be lost when you shutdown the system. You need to handle persistence manually.
  6. After the Live CD boots, /dev, /tmp, /var and /usr/local are mounted on writeable MFS file systems. You can use pkg_add and temporarily install packages in /usr/local. /tmp is mounted without the noexec/nosuid flags, so you can run binaries from these locations.
  7. Unlike other Live CDs, you do not have the option to install OpenBSD to your hard disk from within the Live CD. Note that however, there's nothing stopping you from formatting your disk and going through the installation process manually.
  8. The only way of customizing this Live CD, is by building your own! OpenBSD makes it really simple affair to roll your own Live CDs, and I'll be documenting this process in another blog post in the future.
Bugs:
  1. Despite all my efforts with mkhybrid, TRANS.TBL files are not hidden
  2. File permissions in the CD filesystem are wonky (dirs 555, files 444, binaries 555), but has not broken anything so far. SSH keys in /etc/ssh escape this limitation with only a warning, and this is because /etc is moved to mfs early in the boot process.

No comments: