LINUX.ORG.RU
решено ФорумAdmin

AUFS: first branch should be rw

 , , strange-magic


0

1

Сейчас я пилю собственную сборку тонкого клиента. Идея велосипеда в том, что корневая ФС в squashfs + несколько оверлеев загружаются по сети, распаковывается в tmpfs, всё это объединяется в одну точку монтирования с помощью AUFS. Таким образом, можно присобачивать к сборке дополнительные конфиги/мелкие программы, не делаяя 100500 тыщ версий.

С убунты перешёл на Debian, потому что для некоторых тонких клиентов мне нужен Xorg через fbdev и uvesafb в качестве framebuffer. А в убунте его завести не удалось - plymouth мешается, и он принципиально неотрубаем :(

Вот такой кусок кастомного initrd прекрасно работал для убунты:

        echo "Mounting rootfs image to temp directory"
        mkdir -p /tmp/AUFS/rootfs
        mount -t squashfs -o loop '/tmp/rootfs.squashfs' /tmp/AUFS/rootfs || return $?
        echo "Mounting real root with aufs"
        #! problem
        mount -t aufs -o br=/tmp/AUFS/rootfs=ro none "${rootmnt}"
        echo "Creating tmpfs for moved mountpoints"
        mount -t tmpfs none "${rootmnt}"/AUFS
        echo "Moving rootfs mountpoint to directory in real root"
        mkdir "${rootmnt}"/AUFS/rootfs
        mount --move /tmp/AUFS/rootfs "${rootmnt}"/AUFS/rootfs
        ...
        # дальше работа с оверлеями

В Debian оно дохнет на следующей после комментария строчке с матюком «aufs au_opts_verify:1482:busybox[251]: first brunch should be rw».

Версия ядра в Ubuntu - 3.2, в Debian - 3.10

Кто-нибудь имел дело с AUFS? Куда копать?

★★★

Последнее исправление: selivan (всего исправлений: 2)

Сейчас в тренде UnionFS v2, её вроде в OpenWRT юзают активно, попробуй. AuFS вроде как форк его первой версии, сам его не юзал.

blind_oracle ★★★★★
()

Я бы в такой ситуации попробовал бы в явном виде указать, что все в «ro»

mount -t aufs -o ro,br=/tmp/AUFS/rootfs=ro none "${rootmnt}"

А что мешает создать небольшую tmpfs и в нее rw бранч поместить?

vel ★★★★★
()
Ответ на: комментарий от blind_oracle

В openwrt overlayfs и там есть специфика связанная с использованием флеша. До этого была mini_fo

В гугле про unionfs не густо и только древние ссылки, а aufs достаточно шустро выпускает патчи для новых версий ядра.

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)
Ответ на: комментарий от blind_oracle

В Debian её поддержку дропнули, заменив на AUFS. Можно, конечно, собрать совё ядро, но это сильно усложняет жизнь, так постепенно и до LFS дойти можно :) Хотелось бы использовать стандартные компоненты

selivan ★★★
() автор топика
Ответ на: комментарий от vel

Значит у меня древняя инфа, еще со времен WRT54GL :) С тех пор не интересовался как там ro/rw ФС объединяют.

blind_oracle ★★★★★
()
Ответ на: комментарий от vel

Ага, спасибо, вот так вот заработало:

mount -t aufs -o ro,br=/tmp/AUFS/rootfs=ro,noxino none «${rootmnt}»

Костыль с дополнительным бранчем я сделал, но мне нужна AUFS ro, а так получалось rw

selivan ★★★
() автор топика
Последнее исправление: selivan (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.