Насколько понял из описаний aufs,
ro от
rr отличается следующим:
вот собрали вы какую-то директорию на aufs, например, корневую, и указали, что слои туда вставлены в режиме ro.
Это означает, что при попытке записать что-то в
эту директорию, на слои ro ничего писаться не будет.
Но что такое сам по себе слой? Это директория, существующая где-то в другом месте, например, /mnt/live/memory/images/abcd/
И сама эта директория-слой может иметь разные права на запись. Туда может быть и смонтирован squashfs, который принципиально readonly, но вполне может быть и что-то записываемое типа ext4. Тогда, при записи файла
непосредственно в директорию-слой, этот файл появится и в aufs. Поэтому при подключении слоя в режиме
ro драйвер aufs должен отслеживать, не изменился ли исходный слой и добавляеть в aufs изменения.
Режим же
rr указывает на то, что исходный слой сам по себе доступен только на чтение и отслеживать изменения в нем не нужно.
С
+wh дело обстоит так:
Имеем мы два слоя. В первом существует файл /home/live/aaa.txt, во втором его тень /home/live/.wh.aaa.txt
Вставляем второй слой выше первого. Если с
+wh - файл исчезнет, тень его закрыла, если без
+wh - файл останется видимым, тень просто проигнорируется.
for font_dir in "${mountpoint}/usr/share/fonts/TTF" "${mountpoint}/usr/X11R6/lib/X11/fonts/TTF" "${mountpoint}/usr/share/fonts/default/TTF" ; do
if [ -d "${mountpoint}/${font_dir}" ]; then
fc-cache -f -s &.
mkfontscale ${font_dir} &.
mkfontdir ${font_dir} &
делаем подстановку переменных. Получаем:
[ -d /mnt/.<имя модуля>/mnt/.<имя модуля>/usr/share/fonts/TTF ] - нет таких директорий, лишняя подстановка mountpoint
mkfontscale /mnt/.<имя модуля>/usr/share/fonts/TTF - а эта директория на запись недоступна
Конструкция не работает.
Шрифты работают только потому, что добавлены из одного модуля и fonts.dir, fonts.scale там уже есть. Если бы другой модуль попытался добавить свои шрифты, проблема бы вылезла.
Надо:
for font_dir in "/usr/share/fonts/TTF" "/usr/X11R6/lib/X11/fonts/TTF" "/usr/share/fonts/default/TTF" ; do