diff options
author | Chris Lord <chris@openedhand.com> | 2005-02-11 02:12:28 +0000 |
---|---|---|
committer | Chris Lord <chris@openedhand.com> | 2005-02-11 02:12:28 +0000 |
commit | 792fc8350fd48705f2bd245299650c8aefa66450 (patch) | |
tree | 9aa24ef258388e327f15d92228d47cdfa77cf13e /packages/unionfs/unionroot | |
parent | 5dadbaf0cdcd910bab780161eb56aef547bd6a64 (diff) |
Merge
2005/02/11 02:10:47+00:00 (none)!cwiiis
Rewrite of unionroot and unionroot-utils - Same functionality as before, but less errors and more efficient.
BKrev: 420c148c_dTY2QW3_z_MW-o2SF9Sag
Diffstat (limited to 'packages/unionfs/unionroot')
-rw-r--r-- | packages/unionfs/unionroot/init.unionroot | 87 | ||||
-rw-r--r-- | packages/unionfs/unionroot/init.unionroot.old | 0 |
2 files changed, 11 insertions, 76 deletions
diff --git a/packages/unionfs/unionroot/init.unionroot b/packages/unionfs/unionroot/init.unionroot index 90aa4b015e..bfd86886a0 100644 --- a/packages/unionfs/unionroot/init.unionroot +++ b/packages/unionfs/unionroot/init.unionroot @@ -1,90 +1,25 @@ #!/bin/sh +PATH=/usr/bin:/usr/sbin:/bin:/sbin INIT=/sbin/init.sysvinit -#OVERLAYS=/media/ram /media/cf /media/card ROOTBACKUP=/media/realroot UNION=/media/union -PATH=/usr/bin:/usr/sbin:/bin:/sbin - -if ! test -e ${INIT}; then - echo >&2 "ERROR: ${INIT} not found" - exit 1 -fi -if test x"$*" != "x"; then - exec ${INIT} $* +if ! which unionctl; then + echo >&2 "ERROR: Package unionfs-utils not installed!" + exec ${INIT} $@ fi -if ! which unionctl; then - exec ${INIT} +# For shutdown +if ! [ -z "$@" ]; then + exec ${INIT} $@ fi -nodupmount () { - opts="" - type="" - while true; do - if test "$1" = "-o"; then - shift - opts="-o $1" - shift - elif test "$1" = "-t"; then - shift - type="$1" - shift - else - break - fi - done - if test x"$2" = "x"; then - mountpt="$1" - else - device="$1" - mountpt="$2" - fi - mountmatch="^[^ ]+ $mountpt $type" - # echo "NOTE: grep -E -q \"$mountmatch\" /proc/mounts" - if grep -E -q "$mountmatch" /proc/mounts; then - return 0; - fi - if test x"$type" != "x"; then - type="-t $type" - fi - echo >&2 "NOTE: executing mount $type $opts $device $mountpt" - mkdir -p $mountpt - /bin/mount.busybox $type $opts $device $mountpt - ret="$?" - if test "$ret" = "0"; then - wemounted="$wemounted $mountpt" - fi - return $ret -} +mount.busybox /proc +insmod /lib/modules/`uname -r`/kernel/fs/unionfs.o +mount.busybox -t unionfs -o dirs=/.=rw,setattr=all none ${UNION} +umount.busybox /proc -#set -x -wemounted="" -( - set -e - /bin/mount.busybox /proc - insmod /lib/modules/`uname -r`/kernel/fs/unionfs.o - nodupmount -t unionfs -o dirs=/.=rw none ${UNION} -# nodupmount -o bind / ${UNION}/${ROOTBACKUP} -# for OVERLAY in ${OVERLAYS}; do -# nodupmount ${OVERLAY} -# union-ctl /. --add --mode rw ${OVERLAY} -# nodupmount -o bind ${OVERLAY} ${UNION}/${OVERLAY} -# done - /bin/umount.busybox /proc -# nodupmount -o bind /proc ${UNION}/proc -# nodupmount -o bind / ${ROOTBACKUP} -) || ( - echo >&2 "ERROR: unable to setup mounts for chroot"; - if test x"$wemounted" != "x"; then - # cleanup - for mount in $wemounted; do - /bin/umount.busybox $mount - done - fi - exec ${INIT} -) cd ${UNION} pivot_root . ./${ROOTBACKUP} exec chroot . ${INIT} diff --git a/packages/unionfs/unionroot/init.unionroot.old b/packages/unionfs/unionroot/init.unionroot.old new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/unionfs/unionroot/init.unionroot.old |