[sisyphus] ну пожалуйста-пожалуйста-пожалуйста! :)
Michael A. Kangin
mak на complife.ru
Ср Сен 23 17:21:39 MSK 2020
On 8/27/20 8:09 PM, Gleb Kulikov wrote:
>>>> Попробуйте свою схему на свежих ядрах с overlayfs. Там было много
>>>> улучшений за прошедшее время, возможно, для ваших задач подойдёт.
>
> Нет, "прозрачная" работа с overlayfs невозможна:
Что-то вы странное утверждаете.
Вот, есть корень смонтированный по overlayfs, из кучи слоёв:
overlay on / type overlay
(rw,noatime,sync,lowerdir=/run/clb/clb-ramdisk/mount-points/.layer7:/run/clb/clb-ramdisk/mount-points/.layer6:/run/clb/clb-ramdisk/mount-points/.layer5:/run/clb/clb-ramdisk/mount-points/.layer4:/run/clb/clb-ramdisk/mount-points/.layer3:/run/clb/clb-ramdisk/mount-points/.layer2:/run/clb/clb-ramdisk/mount-points/.layer1,upperdir=/run/clb/clb-ramdisk/mount-points/.rw,workdir=/run/clb/clb-ramdisk/mount-points/.work)
Ядро: Linux rescue-extra 4.18.0-147.5.1.el8_1.centos.plus.x86_64 #1 SMP
Thu Feb 6 10:31:58 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
> 1. пробуем удалить файл, размещённый в r/o части: ошибка
[root на rescue-extra ~]# ls -l /etc/nsswitch.conf
-rw-r--r-- 1 root root 1516 Sep 27 2019 /etc/nsswitch.conf
[root на rescue-extra ~]# rm -f /etc/nsswitch.conf
[root на rescue-extra ~]# ls -l /etc/nsswitch.conf
ls: cannot access '/etc/nsswitch.conf': No such file or directory
Кроме того, "удалить" файл можно и вручную, создав в RW-слое нечто вроде
mknod -m 000 myfile.txt c 0 0
> 2. пробуем создать файл, размещённый в глубине иерархии: ошибка
[root на rescue-extra usr]# echo "test-test-test" >
/usr/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/myfile
[root на rescue-extra usr]# sync
[root на rescue-extra usr]# cat
/usr/lib/python3.6/site-packages/pip/_vendor/chardet/__pycache__/myfile
test-test-test
>
> самое главное, 3. пробуем отредактировать файл, размещённый в r/o части:
> ошибка
[root на rescue-extra etc]# tail -5 /etc/bashrc
unset -f pathmunge
fi
fi
# vim:ts=4:sw=4
[root на rescue-extra etc]# echo "alias do_test='echo test'" >> /etc/bashrc
[root на rescue-extra etc]# tail -5 /etc/bashrc
fi
fi
# vim:ts=4:sw=4
alias do_test='echo test'
Подробная информация о списке рассылки Sisyphus