Как получить доступ к исходным файлам (lowerdir) оверлея, смонтированного в том же месте, что и lowerdir?

Как получить доступ к исходным файлам (lowerdir) оверлея, смонтированного в том же месте, что и lowerdir?

Ситуация, в которой я оказался, заключается в том, что мне приходится запускать Fedora Linux из полу-только для чтения местоположения. Я могу вносить изменения в файловую систему, размещать файлы и т. д., но все теряется при перезагрузке, и в качестве дополнительной проблемы я также не могу легко увеличить доступное дисковое пространство. Однако у меня есть доступ к некоторым записываемым носителям, поэтому я подумал, что сделаю это:

sudo mount --bind /usr /home/username/Store/Orig/usr
sudo mount -t overlay ovl_usr -o lowerdir=/usr,upperdir=/home/username/Store/usr,workdir=/home/username/Store/Work/usr /usr

Вторая строка работает нормально, а вот первая не работает. Она должна дать мне неперекрытый доступ к исходному содержимому /usr. Я бы ожидал, что, поскольку монтирование привязки создается до того, как наложение монтируется на /usr, /home/username/Store/Orig/usrоно все равно увидит старое содержимое. Но нет, /home/username/Store/Orig/usrпоказывает перекрытые файлы, как и /usr.

Есть ли способ получить доступ к оригинальному содержимому /usr?

решение1

Я думаю, что вы испытываете «общее» поведение, в то время как вам нужно «частное». Смотритеman 8 mount:

Операции с общими поддеревьями.
Начиная с Linux 2.6.15 можно пометить монтирование и его подмонтирования как общее, частное, подчиненное или несвязываемое. Общее монтирование обеспечивает возможность создания зеркал этого монтирования таким образом, что монтирования и размонтирования в пределах любого зеркала распространяются на другое зеркало. […] Частное монтирование не несет никаких возможностей распространения. […]

Решение: после mount --bind …и до mount -t overlay …вызова:

sudo mount --make-private /home/username/Store/Orig/usr

Связанный контент