[Buildroot] Squashfs boot
Arnout Vandecappelle
arnout at mind.be
Thu Jan 24 17:42:45 UTC 2013
On 01/22/13 13:41, Stefan Fröberg wrote:
[snip]
> My /etc/fstab look like this
> # /etc/fstab: static file system information.
> #
> # <file system> <mount pt> <type> <options> <dump> <pass>
> /modules.sqfs /lib/modules squashfs defaults,auto,loop,noatime 0 0
> /firmware.sqfs /lib/firmware squashfs defaults,auto,loop,noatime 0 0
> /dev/cdrom /mnt/cdrom iso9660 defaults,noatime 0 0
> /mnt/cdrom/usr.sqfs /mnt/ro squashfs defaults,auto,loop,noatime 0 0
Now this is a real use case for being able to split the rootfs into
several parts.
However, as Thomas mentioned, it's simpler to just use a complete
squashfs rootfs and put the unionfs on top of that. How? Somewhere early
in your init.d you put something like the following (a script I swiped
from the internet, don't remember where from; I haven't actually tested
it myself):
#!/bin/sh
CHROOT_PATH="/tmp/unionfs"
UNION_OPT="-o
allow_other,use_ino,suid,dev,nonempty,chroot=$CHROOT_PATH,max_files=32768"
#mount -t proc proc /proc
#mount -t tmpfs tmpfs /tmp
mkdir -p $CHROOT_PATH/root
mkdir -p $CHROOT_PATH/rw
mkdir -p /tmp/union
# Mount the filesystems
mount --bind / $CHROOT_PATH/root
# $CHROOT_PATH/rw is already on a tmpfs so doesn't need to be mounted
modprobe fuse
$CHROOT_PATH/root/usr/bin/unionfs $UNION_OPT /rw=RW:/root=RO /tmp/union
#mount -t proc proc /tmp/union/proc
cd /tmp/union
mkdir oldroot
pivot_root . oldroot
cd /
# Move existing mounts, if any
#umount /proc
mount --move /oldroot/proc /proc
mount --move /oldroot/dev /dev
mount --move /oldroot/sys /sys
mount --move /oldroot/tmp /tmp
rmdir /tmp/union
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
More information about the buildroot
mailing list