Сейчас я пилю собственную сборку тонкого клиента. Идея велосипеда в том, что корневая ФС в 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? Куда копать?