Cobalt was wise enough when building their appliances to include a netboot rescue facility. By holding the ‘S’ button on the front of your RaQ 550 you can get a menu to select the boot source. You will most likely want to scroll to the “Boot net kernel” option and press the “E” button to boot it. But first you’ll need to setup a netboot host for the RaQ to restore from. Cobalt provided a rescue cd, imaged here but it has very restrictive hardware requirements. Instead, we will create a new virtual machine to act as a NFSv2 host. You will still want to download that rescue ISO image, so go ahead and grab that while we setup the VM.

I’m going to make some assumptions along the way, mostly that you already have a linux host for the VM and have played around with virsh & virt-install some.

virt-install --name nfsv2-rescue \
  --cpu pentium3 --memory 1024 --disk size=8 --os-variant debian10 \
  --location https://deb.debian.org/debian/dists/buster/main/installer-i386/ \
  --graphics none --console pty,target_type=serial --extra-args "console=ttyS0"

This will create a new vm named nfsv2-rescue with 1GB of ram and an 8GB disk in your default libvirt storage pool.

  • Accept the defaults for options unless specifed otherwise, or you know what you’re doing.
  • We’ll set the hostname to ‘rescue’
  • Choose a root password and create a regular user. For my rescue VM, I just used ‘admin’ as my password, and ‘rescue’ as my username (real secure, I know).
  • When you get to the Partition disks screen, select “Guided - use entire disk” and “All files in one partition”.
  • Sit back and wait while the base system is installed.
  • When you arrive at the Software selection screen, we only want to select “SSH server” and “standard system utilities”. You can toggle the selection with the spacebar. Tab over to “Continue” and let the install finish.
  • Install the grub bootloader to /dev/vda and let the installer reboot into the installed system.

Now we have a basic Debian 10 VM ready for some extra packages to be installed. Go ahead and login to the root account with the password you set during the install.

apt-get update
apt-get install nfs-kernel-server nfs-common rpcbind rsync dnsmasq

By default, the statd service isn’t started, we need to enable it.

nano /etc/default/nfs-common
NEED_STATD=yes

Next we need to tell nfsd and mountd to support the NFSv2 protocol. For this we cheat a little.

nano /etc/default/nfs-kernel-server
RPCNFSDCOUNT="8 -V 2"
...
RPCMOUNTDOPTS="--manage-gids -V 2"

We can now create the directories for the nfs shares the RaQ 550 will be expecting.

mkdir /nfsroot-x86  /test_dir  /scratch_dir

And we need to tell the nfs server to share them:

nano /etc/exports
/nfsroot-x86		*(rw,no_root_squash,no_all_squash,no_subtree_check)
/test_dir		*(rw,no_root_squash,no_all_squash,no_subtree_check)
/scratch_dir		*(rw,no_root_squash,no_all_squash,no_subtree_check)

In another window, attach the RaQ 550 Rescue CD image to the vm:

virsh attach-disk --domain nfsv2-rescue --source raq550.iso --target vdb

Back on the window logged into the VM:

mount -t iso9660 -o ro /dev/vdb /mnt
rsync -avx /mnt/nfsroot-x86/. /nfsroot-x86/.
umount /mnt

The restore scripts from the CD make some assumptions about our network. Those assumptions aren’t likely to work, so we have to tweak some things. We are going to setup dnsmasq to act as both DHCP and DNS for our private bridged network.

nano /etc/dnsmasq.conf
dhcp-range=10.5.50.50,10.5.50.60,255.255.255.0,12h
dhcp-option=17,/nfsroot-x86
dhcp-option=66,10.5.50.254

Give our nfs server a static IP

nano /etc/network/interfaces
iface enp1s0 inet static
	address 10.5.50.254
	netmask 255.255.255.0

Add a host line so the restore scripts can find the nfs server:

nano /etc/hosts
10.5.50.254	tester

To be continued…