Journalctl not storing logs correctly

Hi,

I have a weird problem with journalctl. It does not store previous system runs anymore. E.g. a current sudo journalctl --list-boots output looks like this:

-1 b5511b46ece642888931c152d7694d93 Thu 2022-03-31 11:17:05 CEST—Thu 2022-03-31 11:17:49 CEST
 0 c4d3bbe2d84248a88bc9e758f12ec447 Thu 2022-03-31 11:20:23 CEST—Thu 2022-03-31 11:22:59 CEST

After a reboot, I would expect that entry -1 rotates to -2, 0 to -1 and a new 0 is created for the currenty system activities. However, after a reboot it looks like this:

-1 b5511b46ece642888931c152d7694d93 Thu 2022-03-31 11:17:05 CEST—Thu 2022-03-31 11:17:49 CEST
 0 0504a1bd65994d41922fc9080e4c9575 Thu 2022-03-31 11:24:02 CEST—Thu 2022-03-31 11:25:06 CEST

As you can see, just boot entry 0 is replaced and nothing rotated.

I’m using ZFS as root and have previously used fstab to control the mount order. I changed this a few days ago to automatic mounting via the zfs cache. I suspect this as cause for the issue, because maybe a dataset is not mounted in the correct order for journalctl.

I already did a:

sudo journalctl --flush 
sudo journalctl --rotate
sudo journalctl --vacuum-time=1s

Any suggestions to analyse this issue further?

Greetings
Sebastian

So apparently using the fstab method fixes this issue and I already found an explanation for this:

Note: This does not work with separated /var dataset because it does not get mounted early enough. Instead you should use zfs-mount-generator option. /var dataset requires legacy mount on systemd based distros. · Issue #3768 · openzfs/zfs · GitHub for more information.

from ZFS - ArchWiki.

So I’m now thinking of switching to the zfs-mount-generator. Do I have to, or should I, disable zfs-mount.service and ‘zfs.target’?

Greetings
Sebastian