mirror of https://github.com/OpenIPC/firmware.git
33 lines
891 B
Bash
Executable File
33 lines
891 B
Bash
Executable File
#!/bin/sh
|
|
|
|
on_exit()
|
|
{
|
|
mountpoint -q /proc && umount /proc
|
|
exec /sbin/init $*
|
|
}
|
|
trap on_exit 0
|
|
|
|
|
|
mount -t proc proc /proc || exit
|
|
grep -q overlay /proc/filesystems || exit
|
|
|
|
mount -t jffs2 /dev/$(awk -F ':' '/rootfs_data/ {print $1}' /proc/mtd | sed 's/mtd/mtdblock/') /overlay || \
|
|
mount -t tmpfs tmpfs /overlay || exit
|
|
|
|
if grep -q overlayfs /proc/filesystems; then
|
|
mount -t overlayfs overlayfs -o lowerdir=/,upperdir=/overlay,ro /mnt \
|
|
|| { umount /overlay; exit; }
|
|
else
|
|
overlay_rootdir=/overlay/root
|
|
overlay_workdir=/overlay/work
|
|
mkdir -p ${overlay_rootdir} ${overlay_workdir}
|
|
mount -t overlay overlay \
|
|
-o lowerdir=/,upperdir=${overlay_rootdir},workdir=${overlay_workdir} /mnt \
|
|
|| { umount /overlay; exit; }
|
|
fi
|
|
|
|
pivot_root /mnt /mnt/rom
|
|
mount -o noatime,move /rom/proc /proc
|
|
mount -o noatime,move /rom/dev /dev
|
|
mount -o noatime,move /rom/overlay /overlay
|