-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rewrite dracut zfs module to fix #3875 and #3876 and other issues #3879
Conversation
Signed-off-by: Richard Yao <[email protected]>
Support for bootfs autodetection has been removed because there is no telling which pool with a bootfs set should be used. It seems that few knew that this was even possible since GRUB2 always specified a rootfs. Signed-off-by: Richard Yao <[email protected]>
e3533a0
to
2168e04
Compare
fi | ||
|
||
# Copy important files to /etc/zfs | ||
for i in zpool.cache vdev.conf |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As a note to myself, a udevadm trigger && udevadm settle
is needed when vdev.conf is read.
As I mentioned in #3605, I don't believe the current dracut scripts work when systemd >=220 is used. Related bug with dmsquash and systemd 220. systemd-fstab-generator used to fail gracefully, allowing the dracut-mount hook to mount the zfs root. However, it now will generate a faulty sysroot.mount, stopping the boot before the dracut-mount hook. I think a zfs-generator has to be written to generate the sysroot.mount, rather than doing it in the dracut-mount hook, as was done with the dmsquash. RHEL 7 uses an older version of systemd, so it won't be an issue there. |
Signed-off-by: Richard Yao <[email protected]>
Signed-off-by: Richard Yao <[email protected]>
@evolarium I have fixed the systemd >= 220 issue, take a look at my pull request in this repo. @ryao I would love to see how these patches of yours look, when rebased on top of that pull request. |
8e3036e
to
2880435
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am happy to test with my media center, which is my most complex setup, including but not limited to LUKS below ZFS. Edit: when this is rebased I will run it against my testing rig. It's easy to do this for me now. |
@ryao can you test your changes under Fedora with the following process?
This will tell us whether your changes work properly against Fedora. Also, is there any chance you could help us by splicing the different conceptual changes into separate patches against HEAD? Thank you in advance. |
Closing as out of date. Commit 7e8a2d0 updates dracut to pass the |
I have tested this against dracut 43 on my workstation. It boots my system just like genkernel's ZFS branch and fixes several issues:
There are a few behavior changes:
zfs:AUTO
should mean to import a pool named AUTO and mount the root dataset as /. Two is that the behavior is non-deterministic when multiple pools have the bootfs. Users ofzfs:AUTO
will receive the instructions for a missing cachefile while users of autodetection throughzfs
andzfs:
will receive explicit instructions about putting the dataset name on the commandline. Few, if any users, will be affected by this given that I am continually unable to find users of this functionality. The vast majority of users use GRUB2, which generates the commandline for users withroot=ZFS=$BOOTFS
.I need to test against the versions of dracut used in RHEL6 and RHEL7. I intend to bring these changes into Gentoo for the few dracut users there afterward. I also need to improve the commit messages. I opened the pull request in advance of that for feedback.