Solaris diskless ramdisk boot

Working on a diskless architecture for dayjob I ran into the need to implement a diskless boot architecture. The options for the root filesystem were briefly the following:

  1. Ramdisk
  2. iSCSI
  3. NFS

Option 2 is nice but it does come with a “single point of failure” gotcha, namely the iSCSI server. Sure you can have a second one but I don’t really want to know what would happen if the SAN with the root filesystem goes offline. 3 is also nice but for me it was a slightly convoluted mess. Hence I opted for the ramdisk approach.

Thankfully, another kind soul has done something similar already. Here are some extra notes that I’ve found of use:

  1. Make a local copy of the root_archive command and adjust the UFS overhead to 50% instead of 10%. This will allow for some empty disk space in your root filesystem
  2. Remove the miniroot ramdisks that get installed with Solaris (/boot/x86.miniroot-safe and /boot/amd64/x86.miniroot-safe); you are building a ramdisk on your own, you don’t need to bundle two more within it
  3. Remove the boot_archive under /platform/i86pc

The above allow to cram a Solaris Core installation with a few extras (SSH, bash) in just 122 (compressed) MBytes.


# du -sh /var/tmp/ramdisk.img
122M /var/tmp/ramdisk.img

This is it. Copy the ramdisk to your TFTP boot server, configure GRUB accordingly:


# cat /tftpboot/menu.lst.01000C29A6B8E8
default=0
timeout=30
min_mem64 1024
title Solaris_10 Ramdisk
kernel$ /I86PC.Solaris_10-7/multiboot kernel/$ISADIR/unix
module$ /I86PC.Solaris_10-7/$ISADIR/ramdisk.img

configure your DHCP server appropriately for a network boot and … profit 🙂

Which still leaves open the issue of DHCP server high availability, however this should be easy to tackle.

Tags: , ,

3 Responses to “Solaris diskless ramdisk boot”

  1. Tweets that mention Solaris diskless ramdisk boot « ~mperedim/weblog -- Topsy.com Says:

    […] This post was mentioned on Twitter by Yiorgos Adamopoulos, mperedim. mperedim said: Solaris diskless (ramdisk) boot – http://wp.me/pprn9-52 […]

  2. Solaris: passing parameters from GRUB to the O/S « ~mperedim/weblog Says:

    […] passing parameters from GRUB to the O/S By mperedim The problem with ramdisks is that each system ends up identical to each other. Hence you need a way to distinctly identify […]

  3. Solaris: cloning an iSCSI LUN « ~mperedim/weblog Says:

    […] cloning an iSCSI LUN By mperedim While I nailed down on a combination of ramdisk and golden Solaris container images for a diskless boot architectural prototype I had to implement […]

Leave a comment