2

Ситуация, в которой я оказался, заключается в том, что мне приходится запускать 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 ответ1

1

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .