2015-05-27 20:50:30 +00:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
overlay_enabled() {
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
overlay_run() {
|
|
|
|
info "Mounting slot..."
|
|
|
|
mkdir /slot
|
|
|
|
if [ -z "$bootparam_root" ]; then
|
|
|
|
fatal "ERROR: No root device was provided."
|
|
|
|
fi
|
2015-05-31 18:08:59 +00:00
|
|
|
if [ -n "$bootparam_rootfstype" ]; then
|
|
|
|
mount_arg="-t $bootparam_rootfstype"
|
|
|
|
fi
|
|
|
|
mount $mount_arg -o ro $bootparam_root /slot || fatal "Failed!"
|
2015-05-27 20:50:30 +00:00
|
|
|
info "Mounting squashfs..."
|
|
|
|
mkdir /ro-root
|
|
|
|
mount -t squashfs -o loop=/dev/loop0,ro /slot/rootfs.squashfs /ro-root || fatal "Failed!"
|
|
|
|
info "Mounting tmpfs..."
|
|
|
|
mkdir /rw-root
|
|
|
|
mount -t tmpfs -o size=25%,mode=1777,uid=0,gid=0,rw tmpfs /rw-root || fatal "Failed!"
|
|
|
|
if grep -q aufs /proc/filesystems; then
|
|
|
|
info "Mounting aufs..."
|
|
|
|
mount -t aufs -o br=/rw-root:/ro-root aufs /rootfs || fatal "Failed!"
|
|
|
|
else
|
|
|
|
info "Mounting overlayfs..."
|
|
|
|
mkdir /rw-root/root
|
|
|
|
mkdir /rw-root/work
|
2015-08-06 17:15:22 +00:00
|
|
|
mount -t overlay -o lowerdir=/ro-root,upperdir=/rw-root/root,workdir=/rw-root/work overlayfs /rootfs || fatal "Failed!"
|
2015-05-27 20:50:30 +00:00
|
|
|
fi
|
|
|
|
if [ -e /slot/overlay.tar.bz2 ]; then
|
|
|
|
info "Extracting overlay..."
|
|
|
|
tar xf /slot/overlay.tar.bz2 -C /rootfs || fatal "Failed!"
|
|
|
|
fi
|
|
|
|
info "Moving overlay components..."
|
|
|
|
mkdir /rootfs/slot
|
|
|
|
mkdir /rootfs/ro-root
|
|
|
|
mkdir /rootfs/rw-root
|
|
|
|
mount --move /slot /rootfs/slot
|
|
|
|
mount --move /ro-root /rootfs/ro-root
|
|
|
|
mount --move /rw-root /rootfs/rw-root
|
|
|
|
# rootfs is already handled
|
|
|
|
bootparam_root=
|
|
|
|
}
|