I learn by doing, so I did.
I took my machine back to bare metal... I booted the Zorin OS USB stick, removed the internal drive's partitions, and used sudo dd if=/dev/zero of=/dev/sdxX bs=512 status=progress
to zero all the sectors on the internal drive, on the ZFS L2ARC cache drives for the bpool and rpool, for the second swap drive partition, and for the ZFS mirror of the internal drive's rpool.
IOW, the machine had nothing on the system drives.
Then I partitioned, formatted and labelled the internal drive partitions using gdisk and GParted to ensure the drive had a proper GPT setup:
[sda1, 10 GB, EFI FAT32, label "Filesystem"]
[sda2, 20 GB, Linux Swap, label "Swap"]
[sda3, 10 GB, Solaris Boot, label "bpool"]
[sda4, remainder of drive space, Solaris Root, label "rpool"]
The defaults are:
[sda1, 537 MB, EFI FAT32, label "Filesystem"]
[sda2, 2.1 GB, Linux Swap, label "Swap"],
[sda3, 2.1 GB, Solaris Boot, label "bpool"]
[sda4, remainder of drive space, Solaris Root, label "rpool"]
Basically, an identical partition setup as the original installation, just bigger partitions for sda1, sda2 and sda3.
But when I start the "Install Zorin OS 16" link (ubiquity.desktop), there is no option to install Zorin OS with the ZFS file system without wiping the drive.
How do I do it? Is there a manual installation procedure? Is there a command-line flag I can use to tell the installation process that the drive's already set up properly?
Basically, what I'm trying to fix is this...
For the default ZFS installation done by ubiquity.desktop, sudo gdisk
and enter /dev/sda1
(the internal drive), then press v
to verify, I get:
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
With my method, a proper GPT partition table is put onto the drive, and it shows:
sudo gdisk
GPT fdisk (gdisk) version 1.0.5
Type device filename, or press <Enter> to exit: /dev/sda
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): v
No problems found.