Здравствуйте.
Ударила мне моча в голову сделать aufs в качестве рута.
В aufs содержатся две файловые системы.
Первая с чистым и настроеным debian wheezy - ro, ext2
Вторая пустая - rw, ext4
Задумка в том, что все изменения пишутся на вторую фс.
И в случае чего я ее просто форматирую и получаю настроенную и рабочую систему.
Проблема: Чтобы aufs стала рутом нужно модифицировать initrd. Нашел в гугле уже готовый скрипт для монтирования.
#!/bin/sh -e
case $1 in
prereqs)
exit 0
;;
esac
for x in $(cat /proc/cmdline); do
case $x in
root=*)
ROOTNAME=${x#root=}
;;
aufs=*)
UNION=${x#aufs=}
case $UNION in
LABEL=*)
UNION="/dev/disk/by-label/${UNION#LABEL=}"
;;
UUID=*)
UNION="/dev/disk/by-uuid/${UNION#UUID=}"
;;
esac
;;
esac
done
if [ -z "$UNION" ]; then
exit 0
fi
modprobe -Qb aufs
# make the mount points on the init root file system
mkdir /aufs /ro /rw
# mount read-write file system
if [ "$UNION" = "tmpfs" ]; then
mount -t tmpfs rw /rw -o noatime,mode=0755
else
mount $UNION /rw -o noatime
fi
# move real root out of the way
mount --move ${rootmnt} /ro
mount -t aufs aufs /aufs -o noatime,dirs=/rw:/ro=ro
# test for mount points on union file system
[ -d /aufs/ro ] || mkdir /aufs/ro
[ -d /aufs/rw ] || mkdir /aufs/rw
mount --move /ro /aufs/ro
mount --move /rw /aufs/rw
# strip fstab off of root partition
grep -v $ROOTNAME /aufs/ro/etc/fstab > /aufs/etc/fstab
mount --move /aufs /root
exit 0
Пытаюсь обновить initrd путем запуска update-initramfs -u
И получаю фигу: Syntax error: word unexpected (expecting «in»)
Вроде ошибок нет.
Баш знаю плохо, но суть процесса мне понятна.