[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