# RPI specific live script -*- shell-script -*- if [ -e /scripts/functions ] then . /scripts/functions fi mountroot() { modprobe loop modprobe aufs wait_for_udev 10 mntpts="" aufs="" i=0 mkdir -p /live-media mkdir -p /live-loop mount -t vfat /dev/mmcblk0p1 /live-media for f in /live-media/live/*.squashfs; do losetup /dev/loop${i} ${f} mkdir /live-loop/ro${i} mount -t squashfs -o loop,ro /dev/loop${i} /live-loop/ro${i} aufs="/live-loop/ro${i}=ro:${aufs}" mntpts="${mntpts} /live-loop/ro${i}" i=$(( ${i} + 1 )) done mkdir /live-loop/cow mntpts="${mntpts} /live-loop/cow" if [ -e /live-media/live/rpi-live ]; then losetup /dev/loop${i} /live-media/live/rpi-live mount -t ext4 /dev/loop${i} /live-loop/cow else mount -t tmpfs tmpfs /live-loop/cow fi aufs="noatime,noxino,dirs=/live-loop/cow=rw:${aufs}" mount -t aufs -o ${aufs} aufs ${rootmnt} #sleep 1 [ -d ${rootmnt}/boot ] || mkdir ${rootmnt}/boot mount -o move /live-media ${rootmnt}/boot for mntpt in ${mntpts} do local newmount newmount="${rootmnt}/lib/live/mount/${mntpt#/live/}" mkdir -p "${newmount}" mount -o move "${mntpt}" "${newmount}" > /dev/null 2>&1 || \ mount -o bind "${mntpt}" "${newmount}" > /dev/null done }