Setting up Nexenta Xen Dom0 server

experimental

Assuming you are running NexentaCP RC3+ release which ships Xen/Dom0 bits. NexentaCP integrates Debian tools and ZFS which managing your ZFS clones and GRUB menu. The apt-clone(8) utility expects GRUB configuration to be in certain format and assumes that first 2 entries are active upgrade checkpoint and its corresponding safe mode. It automatically detects Xen Dom0 environment and will create proper checkpoint entry.

Step 1. Mounting system ZFS pool

$ sudo su
# zfs set mountpoint=legacy syspool
# mkdir /tmp/a
# mount -F zfs syspool /tmp/a

Step 2. Setting default GRUB entry to Xen Dom0:

# vim /tmp/a/boot/grub/menu.lst

Modify first entry to look similar to:

#---------- ADDED BY BOOTADM - DO NOT EDIT ----------
title Nexenta Core Platform Xen/Dom0 [Auto-detect 32-bit/64-bit]
        kernel$ /boot/$ISADIR/xen.gz
        module$ /platform/i86xpv/kernel/$ISADIR/unix /platform/i86xpv/kernel/$ISADIR/unix -B $ZFS-BOOTFS
        module$ /platform/i86pc/$ISADIR/boot_archive
#---------------------END BOOTADM--------------------

When booting Nexenta Xen/Dom0, the kernel$ line must refer to the Xen hypervisor, and there must be two module$ lines. The first module$ line must list the path to unix twice, with any arguments (such as -B ... in the example) at the end of the line. The second module$ line lists the path to the boot archive:

To boot Nexenta on Xen/Dom0 in 32-bit mode on a 64-bit capable system, the entry must be manually edited to remove all instances of $ISADIR:

#---------- ADDED BY BOOTADM - DO NOT EDIT ---------- 
title Nexenta Core Platform Xen/Dom0 [32-bit]
        kernel$ /boot/xen.gz
        module$ /platform/i86xpv/kernel/unix /platform/i86xpv/kernel/unix -B $ZFS-BOOTFS
        module$ /platform/i86pc/boot_archive
#---------------------END BOOTADM--------------------

Step 3. Unmount system ZFS pool and reboot

# umount /tmp/a
# reboot

It is now safe to apt-clone your Xen/Dom0 Nexenta server.