読者です 読者をやめる 読者になる 読者になる

はわわーっ

はわわわわっ

aufs rootメモ

https://help.ubuntu.com/community/aufsRootFileSystemOnUsbFlash見ながらやってみた。

aufs.koをinitramfsに入れてswrootするまえにrootをaufsでマウントする。

$ echo aufs | sudo tee /usr/share/initramfs-tools/modules.d/aufs
$ sudoedit /usr/share/initramfs-tools/scripts/init-bottom/aufsroot
$ sudo chmod +x /usr/share/initramfs-tools/scripts/init-bottom/aufsroot
$ sudo update-initramfs -u -k `uname -r`
#!/bin/sh -e

case "$1" in
prereqs)
        exit 0
        ;;
esac

for x in $(cat /proc/cmdline); do
        case "$x" in
        aufsroot)
                aufsroot=y
                ;;
        esac
done

if [ "$aufsroot" != "y" ]; then
        exit 0
fi

echo "setting up aufs on ${rootmnt} as root file system."
mkdir /rwfs /rofs /aufs

mount -t tmpfs tmpfs /rwfs
if [ "$?" -ne 0 ]; then
        echo "failed to mount /rwfs"
        exit 0
fi

mount --move ${rootmnt} /rofs
if [ "$?" -ne 0 ]; then
        echo "failed to move ${rootfs} to /rofs"
        exit 0
fi

modprobe aufs
mount -t aufs -o dirs=/rwfs:/rofs=ro aufs /aufs
if [ "$?" -ne 0 ]; then
        echo "failed to mount /aufs"
        exit 0
fi

mkdir /aufs/rwfs /aufs/rofs

mount --move /rwfs /aufs/rwfs
if [ "$?" -ne 0 ]; then
        echo "failed to mount /aufs/rwfs"
        exit 0
fi

mount --move /rofs /aufs/rofs
if [ "$?" -ne 0 ]; then
        echo "failed to mount /aufs/rofs"
        exit 0
fi

mount --move /aufs ${rootmnt}

exit 0

ブートオプションにaufsrootがあるときだけ有効になる。

起動してみる。

$ mount
...
/dev/disk/by-uuid/cf5a8e56-677b-4af5-91ca-b8cc8e11df9f on /rofs type ext4 (ro,relatime,data=ordered)
tmpfs on /rwfs type tmpfs (rw,relatime)
aufs on / type aufs (rw,relatime,si=350ee03215b0e92b)
...

リンク先のページだと/etc/fstabの修正してるけど、必要なんだろうか。なくても一応動いてるっぽいけど。