Howto:
  1. Install Hardy Heron.  I used the server version.  To simplify things install as little as possibe (i.e. nothing other than the base system).

  2. By default Hardy uses the relatime option for the root filesystem, unfortunately our old mount doesn't understand that, so edit the /etc/fstab to remove the option.
    s/relatime/defaults/
        

  3. Add
    deb http://www.atlantech.com/~john/openssi-etch ./
    deb http://www.atlantech.com/~john/openssi-hardy-extras ./
        
    to your sources.list

  4. Add
    Package: *
    Pin: origin www.atlantech.com
    Pin-Priority: 1000
        
    to your /etc/apt/preferences

  5. Create a file /etc/apt/apt-conf.d/90allow-unauthenticated containing:
    APT::Get::AllowUnauthenticated "true";
        
  6. apt-get update
  7. apt-get remove nfs-common
  8. apt-get install openbsd-inetd
        
  9. apt-get install initrd-tools
  10. Add the module for your cluster-interconnect nic to /etc/mkinitrd/modules

  11. As we're going to remove the running kernel we must modprobe all modules needed to build the initrd or we won't be able to make a bootable system (don't forget this or you'll be stuck with an unbootable system):
    modprobe loop
    modprobe ext2
  12. apt-get dist-upgrade

    At this point you will be warned that the running kernel will be removed.  This is because of a necessary downgrade of udev.  Allow it to happen.

    :-(  Warning - your system is unbootable starting from this point.

    You will get some errors at this stage, probably:
    Selecting previously deselected package sysvinit-utils.
    (Reading database ... 14933 files and directories currently installed.)
    Unpacking sysvinit-utils (from .../sysvinit-utils_2.86.ds1-38.ssi2_i386.deb) ...
    dpkg: error processing /var/cache/apt/archives/sysvinit-utils_2.86.ds1-38.ssi2_i386.deb (--unpack):
     trying to overwrite `/usr/share/man/man8/pidof.8.gz', which is also in package sysvutils
    Errors were encountered while processing:
     /var/cache/apt/archives/sysvinit-utils_2.86.ds1-38.ssi2_i386.deb
    E: Sub-process /usr/bin/dpkg returned an error code (1)

    Just install the packages with a force-overwrite
    # dpkg --force-overwrite -i /var/cache/apt/archives/sysvinit-utils_2.86.ds1-38.ssi2_i386.deb
    Unpacking sysvinit-utils (from .../sysvinit-utils_2.86.ds1-38.ssi2_i386.deb) ...
    dpkg - warning, overriding problem because --force enabled:
     trying to overwrite `/usr/share/man/man8/pidof.8.gz', which is also in package sysvutils
    ...
    dpkg - warning, overriding problem because --force enabled:
     trying to overwrite `/bin/pidof', which is also in package sysvutils
    Setting up sysvinit-utils (2.86.ds1-38.ssi2) ...
        
    Then retry the dist-upgrade and carry on until it's all upgraded.
    # apt-get dist-upgrade
    ...
    dpkg: error processing /var/cache/apt/archives/e2fsprogs_1.39+1.40-WIP-2006.11.14+ssi1_i386.deb (--unpack):
     trying to overwrite `/usr/share/man/man1/uuidgen.1.gz', which is also in package uuid-runtime
    dpkg-deb: subprocess paste killed by signal (Broken pipe)
    Errors were encountered while processing:
     /var/cache/apt/archives/e2fsprogs_1.39+1.40-WIP-2006.11.14+ssi1_i386.deb
    E: Sub-process /usr/bin/dpkg returned an error code (1)
    # dpkg --force-overwrite -i /var/cache/apt/archives/e2fsprogs_1.39+1.40-WIP-2006.11.14+ssi1_i386.deb
    ...
    dpkg - warning, overriding problem because --force enabled:
     trying to overwrite `/usr/share/man/man1/uuidgen.1.gz', which is also in package uuid-runtime
    ...
    # apt-get dist-upgrade
    
        
  13. Hardy has tmpfs filesystems installed on /var/lock and /var/run which will screw up the cluster creation scripts, so we have to get rid of them.  For /var/lock that's easy:
    # umount /var/lock
    # umount /var/lock
    # umount /var/lock
    umount: /var/lock: not mounted
        
    Watch out - there may be mutiple /var/lock's mounted in the same place, keep retrying until it tells you that it's not mounted.

    For /var/run it's harder as it's in use:
    # umount /var/run
    umount: /var/run: device is busy
    umount: /var/run: device is busy
    
        
    A "mount --move" can be used to get around this:
    # mkdir /tmp/zz-run
    # mount --move /var/run /tmp/zz-run
    # umount /var/run
    # umount /var/run
    umount: /var/run: not mounted
        
    As with /var/lock there may be many stacked mounts.

  14. apt-get install openssi

    configure the node number, cluster interconnect, clustername, root failover as usual.

  15. :-)       Your system should now be rebootable.  Reboot it.
And now the fun begins...

This is as far as I have got for the moment,  I need a rest.