Dual boot with encrypted ZFS

I would like to dual boot PureOS and Arch Linux with PureBoot. I don’t know the best way to go about this. I think I should have only one ZFS partition, with a root for Arch and a root for PureOS, plus (shared) swap and /home. Since PureBoot can’t read an encrypted /boot, I need it on a partition separate from ZFS.

  • How should I format /boot?
  • Does /boot need to be the first partition?
  • Should I have one partition for /boot or two? (I read somewhere that sharing /boot was bad, but I don’t know how that applies to this.)
  • Will I need to install grub2, or can PureBoot/Heads take care of it?

I don’t have a Librem yet, but I plan on getting a Librem 13. I want to figure this out before I purchase it.

I can’t answer your question but a different (simpler?) approach to this would be to put the two distros on separate disks (while still at least sharing /home).

Sharing swap should be OK provided that you don’t use hibernation (suspend-to-disk). (If you don’t use hibernation and you have lots of RAM, you don’t really need swap at all in many use cases.)

I wanted the roots on the same ZFS partition to resize them easily, but I’m fine with separating them. If I do separate them, I’d have to figure out how to share /home between them (I’d probably not share swap). I will take whichever approach seems safer or more convenient (in that order). This also depends on what I have to do with /boot.

Sharing /home partitions sounds like asking for trouble to me. There are configuration files kept there that I think will likely cause confusion for your operating systems (particularly since they don’t have the same base, ie Arch vs Debian). So, out of curiosity and for clarification, is there a reason that you want to share /home that couldn’t be satisfied by having a separate “data” partition that both OSes access?

I suppose not. How would I go about making a shared data partition? If both OSes are on the same ZFS partition, it would be trivial. If not, I would need to let the smaller partition borrow space from the larger partition, I think by importing the bigger partition and mounting a specific dataset.

I think having one ZFS partition would be better, especially for resizing. Is there anything else I should consider? (if someone knows about the /boot part of my question, your input would be very helpful)

I was just thinking have a separate partition altogether that both OSes mount when they boot. As long as you don’t hibernate (and I’m not sure if even then) you’ll be fine, as you can’t use two OSes on 1 computer at the same time.

As for your /boot question, I’ve never had more than one /boot partition when dual-booting. If you format it as ext4 it should work fine. I don’t believe it has to be the first partition, though I could be wrong about that. I’ve never used PureBoot/Heads so I can’t speak to those.

Sharing anything if using hibernation is risky - unless both operating systems specifically intend for it to be safe.

So if you are going to have /MySharedData (regardless of what type of file system) the safest option is to umount it before hibernate - but that has flow on effects if any processes are using files on that file system.

Does PureBoot include the payload? If so, does it use /boot like the EFI System Partition?

From what I read, PureBoot uses heads as the payload, which requires Grub. If heads is like BIOS, which I think it is, this means I need two separate /boot partitions. How would PureBoot “verify the boot partition” if there are two?