zbm-dev/zfsbootmenu

dracut: FATAL: No or empty root=

Sithuk opened this issue · 5 comments

Sithuk commented

I got the following error following the rEFInd screen when I tried a recent ubuntu install.
dracut: FATAL: No or empty root=

I resolved by adding the following to the kernel parameters in refind_linux.conf, where zpool is the name of the pool. Zfsbootmenu then started normally.
root=zfs:zpool/ROOT

https://github.com/openzfs/zfs/blob/master/contrib/dracut/README.md

Does the rEFInd section of the ubuntu install guide need to be updated?

How did you install ZFSBootMenu - from source (via a tagged release, or master) or a prebuilt EFI?

I highly recommend that you use the git branch from which releases are tagged - in this case v2.2.x. master is a moving target that might or might not be fit for consumption.

Sithuk commented

Thank you Zdykstra. I installed from master as part of testing the Ubuntu zfsbootmenu install script.

What changed to cause the break? Something in upstream dracut?

Thank you for the info on the master vs branches. The Ubuntu zfsbootmenu install script currently installs from master. I’ll have to think through what I should link to in future if the master “might or might not be fit for consumption”.

I don’t think I can link to a branch as that might eventually be deleted? Is there a link that will always download the latest branch code that I could use? Perhaps using /releases/latest and figuring out a way to download the source code. The source code filename changes with each release so I don't think I can use a fixed link to a sourcecode.tar.gz file?

https://github.com/zbm-dev/zfsbootmenu/releases/latest

The following seems to work to identify the source code for the latest release (https://gist.github.com/steinwaywhw/a4cd19cda655b8249d908261a62687f8)
curl -s https://api.github.com/repos/zbm-dev/zfsbootmenu/releases/latest | grep https.*release-x86.*gz | cut -d : -f 2,3 | tr -d "

The v2.2.x branch will never be deleted.

If you want the latest, you can use https://get.zfsbootmenu.org/, which is just a thin wrapper over the GitHub release query interface.

As a side note, if you're going it query GitHub directly, you should use jq or some other mechanism that understands the structure of the JSON response. Unstructured text processing is bound to fail at some point.