Я хочу смонтировать следующие каталоги с помощью overlayfs:
(lowerdir) /chroot in /merged
(lowerdir) /home in /merged/home
(upperdir) /tmpfs in /merged
... так, чтобы получающийся объединенный каталог был системой COW, которая содержит и/chroot и / домой.
Я не могу найти способ сделать это.
1) Попытка нескольких более низких директоров:
mount -t overlay -o lowerdir=/chroot:/home,upperdir=/tmpfs,workdir=/workdir overlay /merged
ls /merged
==> отказ, / размещают слияние содержания с/chroot содержанием непосредственно в/, объединенном, не проникая внутрь/merged/home подкаталога.
2) Попытка связывает - монтируется:
mount --bind /home /chroot/home
mount -t overlay -o lowerdir=/chroot,upperdir=/tmpfs,workdir=/workdir overlay /merged
ls /merged/home
==> пустой,/chroot/home подмонтируют, что содержание не обнаруживается в/merged/home.
Какие-либо идеи?Спасибо.
Я столкнулся с этой точной проблемой сегодня вечером, однако я использовал /
, /usr
, /var
, поскольку тест, так как я хотел получить изменения в файловой системе от пакета, устанавливает и просматривает ее из OverlayFS 'upperdir'.
я выяснил, что OverlayFS не был разработан для этого, затем я помнил о unionfs-предохранителе... Я также видел, что OverlayFS мог использовать себя в качестве lowerdir
, таким образом, я сделал снимок с использованием unionfs-предохранителя вместо этого, и он работал.
Имеют в виду, что это - просто быстрая 'лаборатория' тест PoC, и я уверен, что Вы захотите настроить опции unionfs-предохранителя вполне немного для Ваших потребностей...
mkdir merged union upper work
sudo unionfs-fuse /=RO:/usr=RO:/var=RO:/home=RO union
sudo mount -t overlay overlay -olowerdir=union,upperdir=upper,workdir=work merged
sudo echo test > merged/newtestfile
ls merged/newtestfile # exists
ls upper/newtestfile # exists
В целом, решение немного скручивается/сумасшедшим, но это, кажется, работает хорошо, по крайней мере, на то, что я пытался выполнить путем изоляции изменений, которые можно было просмотреть из./верхнего каталогов.
Мы фиксировали решение в: http://bazaar.launchpad.net/~ltsp-upstream/ltsp/ltsp-trunk/revision/2652
Одно решение состоит в том, чтобы сделать отдельное наложение для того, что должно закончиться как /chroot/home
где-то в другом месте, затем связать его сверх наложения для /chroot