Re: Support for including nested mountpoints in overlay?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Sep 12, 2025 at 5:55 PM Nicholas Hubbard
<nicholashubbard@xxxxxxxxxx> wrote:
>
> Hello everybody,
>
> I have just started working with overlayfs, and ran into a problem. Specifically
> I wanted to overlay the root of my filesystem with a command like the following:
>
> # mount -t overlay overlay -o lowerdir=/,upperdir=./tmp-upper,workdir=./tmp-work ./merged
>
> However, I noticed that my nested btrfs subvolumes and boot partition were not
> included in ./merged. I quickly learned though that you could have multiple
> lowerdirs. So next I tried the following command (I have a nested btrfs subvolume
> at /home, and my boot partition mounted at /boot):
>
> # mount -t overlay overlay -o lowerdir=/:/home:/boot,upperdir=./tmp-upper,workdir=./tmp-work ./merged
>
> I was expecting that now I would have (for example) the following directories:
>
> ./merged/home/$USER
> ./merged/boot/grub
>
> However I instead had:
>
> ./merged/$USER
> ./merged/grub
>
> Which shows that all the lowerdirs are placed right at the root of the mergedir.
>
> So I have two questions.
>
> 1. Is there a (easy) way say "I want to include all nested mountpoints into the
>    overlay in their same directories"?

No. not in general. but maybe specifically for btrfs subvolumes
you can do it because they are all accessible via the btrfs root mount.

If all your lower dirs are on the same btrfs filesystem
and the subvolumes are also accessible via some path is root mount
(e.g. /subvols), then something like may work for you:

mount -t overlay overlay -o
lowerdir=/,upperdir=./tmp-upper,workdir=./tmp-work ./merged

rmdir ./merged/home
rmdir ./merged/boot
mv ./merged/subvols/home ./merged/home
mv ./merged/subvols/boot ./merged/boot

Never tried it with btrfs subvols, so it may not work.

> 2. If there is not a (easy) way to do this, do you think it would be both feasible
>    and useful to add such a feature?

The general case of "include all nested mountpoints" is just way too far off
from the current overlayfs design. Too hard to explain why.

I suggest that you look at FUSE alternatives like
https://github.com/trapexit/mergerfs

Not sure if mergerfs supports this use case, but I think a userspace
union fs is in a better position to add support to this if desired.

Thanks,
Amir.





[Index of Archives]     [Linux Filesystems Devel]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux