I have installed Ubuntu 18.04 on a Dell PowerEdge R720xd using ZFS. There are two 1TB boot drives in a ZFS mirror
configuration. I followed the instructions in the ZFS on Linux Wiki.
(Note: My system is using an LSI LSI00244 (9201-16i) Host-bus Adapter (HBA) instead of the onboard RAID card, since ZFS and this RAID card don't get along.)
When booting Ubuntu, it takes about ten seconds for the drives to be enumerated by the system (there are 14 drives – two for the OS and 12 for data storage that will be set up in other zpools later). However, the boot process tries to import the boot pool before the drives have been enumerated.
A BusyBox error message flashes past on the screen, and it basically says:
The pool failed to import.
Manually import the pool in this BusyBox shell and then type
exit
to continue the boot process.
If I wait a few seconds after that message, I see that the 14 drives get listed.
I type zpool import rpool
at the BusyBox prompt, which works (confirmed with zpool list
) and then exit
to continue the boot process. (This then leads to my next problem, a Kernel crash, but that's a separate question.)
I tried adding rootdelay=15
to the boot options, but that doesn't seem to work since it seems to want to run that delay after the ZFS pool import.
How can I get the boot process to wait for the devices to show up before it tries to import the pool?
Best Answer
I finally found this in
/etc/default/zfs
:Here's how to set it.
/mnt
usingzpool import rpool -R /mnt
mount --rbind /dev /mnt/dev; mount --rbind /proc /mnt/proc; mount --rbind /sys /mnt/sys
/mnt
:chroot /mnt /bin/bash --login
/etc/default/zfs
to change the value above from0
to15
update-initramfs
andupdate-grub