-
Notifications
You must be signed in to change notification settings - Fork 450
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
New /Volumes design #220
Comments
Does this comment help with modifying the underlying files? |
@ahyattdev No. They are talking about modifying files through the overlay (that would be from inside darling container in our case), which would work if we made
Really, overlayfs is only suitable for one goal, and that is building readable and writable file systems from read-only templates. This is exactly what we need for our prefix overlay; but it won't work for |
One of the ideas behind using a mount namespace is to have everything automatically unmounted once the init process of that container dies. My first idea is to implement a FUSE module mounted at (for example) |
Yeah, I use this all the time. By the way, I should probably make a command like
No, it doesn't, for the reason I stated above: FUSE can't be mounted from inside user namespaces, AFAIK. Or what do you mean?
Note that the mountpoints should be created directly under |
I haven't actually tried that, but Google search shows that they're at least trying to allow this.
Will new mounts automatically appear under the bound system root? When I was experimenting with rbind, new mounts simply never showed up. |
Well it doesn't work for me, so I suppose they haven't figured it out yet — but I'd be glad to be wrong here.
See this comment; I haven't tested it though. |
This is a design proposal and a request for comments.
On macOS,
/Volumes
is a directory that holds mountpoints for all the drives in the system, as well as for mounted DMG files, somewhat like/run/media/$USER
on Linux. On Darling, this directory is currently only used for mounting DMGs.To make Darling better resemble macOS, we should put the following under
/Volumes
:/Volumes/DarlingEmulatedDrive
-- a symlink to/
. This is what macOS does for the root drive./Volumes/SystemRoot
-- this is where host's/
gets mounted (this was previously/system-root
, but putting it in/Volumes
feels much more true-to-the-spirit).hdiutil
. This works great currently, but it's not so easy in the new containerized design (see New Darling prefix design #197), because we can't mount FUSE from inside user namespaces. The solution is to either abandon user namespaces (do we really need them?) or to enhancehdiutil
to e.g. join the initial namespace before doing its work./run/media/$USER
here. Unfortunately, we can't use overlayfs, because it doesn't support modifying the underlying files while mounted, which is what happens to host's drives all the time. We can either use smth like mergerfs or write a daemon that watches/run/media/$USER
for changes and creates/removes symlinks in$DPREFIX/Volumes
. Whichever we choose, these folders won't show up as mount points. We could bind-mount them to the original ones instead of symlinking, but this may interfere with udisks unmounting them.The text was updated successfully, but these errors were encountered: