Как я могу смонтировать lowerdir в определенный подкаталог с overlayfs?

Я хочу смонтировать следующие каталоги с помощью 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.

Какие-либо идеи?Спасибо.

1
задан 30 July 2015 в 11:11

3 ответа

Я столкнулся с этой точной проблемой сегодня вечером, однако я использовал /, /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

В целом, решение немного скручивается/сумасшедшим, но это, кажется, работает хорошо, по крайней мере, на то, что я пытался выполнить путем изоляции изменений, которые можно было просмотреть из./верхнего каталогов.

0
ответ дан 29 July 2019 в 21:50
-1
ответ дан 29 July 2019 в 21:50

Одно решение состоит в том, чтобы сделать отдельное наложение для того, что должно закончиться как /chroot/home где-то в другом месте, затем связать его сверх наложения для /chroot

0
ответ дан 29 July 2019 в 21:50

Другие вопросы по тегам:

Похожие вопросы: