-
Notifications
You must be signed in to change notification settings - Fork 55
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
initramfs-tools script tries to mount legacy / none mountpoints #196
Comments
It's kinda the point. Could you give me a (relevant if big) output from a |
Hi,
The ugly stuff under root was created because docker decided so, which is how I discovered the issue. But regardless of the purity of my setup, the issue I think is that it breaks expectations. If the behaviour were to be in line with solaris, then legacy mountpoints should be handled during boot only if they showed up in fstab. While none should probably not be handled at all? If the user expressly marked the filesystem for non-mounting, this shouldn't be overruled. Regards |
Just say'n! :).
What version of packages are you using? And what dist? |
Hey, sorry for the delay, extended afk.
I agree that polluting ROOT is ugly, but it's just a convention. I think the "official" convention of not auto-mounting legacy / none should prevail in this case. (Off-topic: maybe I should report an issue with docker, but I don't quite know what to tell them... "Hey guys, this is ugly?" I'm sure from their point of view, they're doing the right thing.)
True, special-casing is no good idea, but is this really functionality people expect? I don't have the real-world experience to have an authoritative opinion, but as a techie, I'd expect to rely solely on the value of the mountpoint property: auto-mount things where I said they should, or don't mount them at all if I said they shouldn't. And let me do things the ugly way if I choose to.
... :D
I'm sure it does. I haven't tested it during boot, but this gets them recursively, and then they're treated similarly. The only difference is at line 344 - none would receive
0.6.5.5 on Debian testing. |
At first glance, this should be easy. Could you test this for me?
However, it might be very expensive if there's a lot of file systems below the root fs! But we deal with that if/when that happens. First we need to check if the patch works. Apply it to your |
Oups, missing |
I'm not sure what your patch is against. My In my case I solved it by replacing lines 324-350 with a |
* Include fix from openzfs/zfs#4474. * Include fix for #196
I consider this fixed in |
Nothing has changed. and which is incorrect behaviour. Using 0.6.5.7, official debian packages. Reported downstream at https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=826121 @FransUrbo please reopen this issue. |
This bit me today too (also after a docker installation), system failed to boot with "rpool/ROOT/xxx cannot be mounted due to canonicalization error 2", referencing a docker volume with mountpoint set to legacy. |
I got hit with this today, exact same reason. Installed Docker, which created those ZFS filesystems properly set with mountpoint=legacy. This script should not be auto-mounting legacy/none mountpoints! I fixed it using the same patch method xlotlu mentioned. I used "return 0" in place of that code block and it works fine now. "In my case I solved it by replacing lines 324-350 with a return, which may or may not be correct depending on what you had in mind with the previous logic." |
I had the same problem. Other than patching the scripts, the simplest solution is to just create a dataset for /var/lib/docker prior to installing docker. Then, all those datasets that docker creates are children of this one and no one tries to mount them upon booting the machine:
|
I ran into this today, also after installing docker. I wasn't able to find the script mentioned by @xlotlu. Setting the mountpoint to none had no effect, so instead I just destroyed all the docker datasets. Rebooted and was back to normal. wtf docker :) |
mountroot()
callsmount_fs
for all descendants of the root fs, which in turn does its best to mount everything, even special-casing "legacy" and "none" mountpoints, which should simply be skipped(?).This happily drops the user to a shell with "filesystem cannot be mounted due to canonicalization error 2."
The text was updated successfully, but these errors were encountered: