X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=blobdiff_plain;f=package%2Fblock-mount%2Ffiles%2Ffstab.init;h=aba50ba93ab1e8d2791a1fa3f2b37e7452b818c4;hp=d755eccf08a4305cfa8240b4d1136a82db6872f8;hb=88a8bfc21d54a3191d8f5216956b0e884113702a;hpb=6b06c1fcdbf08ea85c50c291296794a3039b519c diff --git a/package/block-mount/files/fstab.init b/package/block-mount/files/fstab.init index d755eccf08..aba50ba93a 100644 --- a/package/block-mount/files/fstab.init +++ b/package/block-mount/files/fstab.init @@ -8,7 +8,30 @@ START=20 -. /lib/functions/mount.sh +EXTRA_COMMANDS="overlay_enable whole_root_enable" +EXTRA_HELP=" overlay_enable Reenable overlay rootfs. (After you fix it). + whole_root_enable Reenable whole-disk rootfs. (After you fix it)." + +rootfs_enable() { + local extroot_type="$1" + + if [ ! -d /tmp/${extroot_type}-disabled ]; then + echo "No disabled ${extroot_type} present (/tmp/${extroot_type}-disabled). Can't renable." + exit 1 + fi + + rm -f /tmp/${extroot_type}-disabled/.extroot.md5sum + rm -f /tmp/${extroot_type}-disabled/etc/extroot.md5sum + echo "Please reboot router to complete re-enabling external rootfs." +} + +overlay_enable() { + rootfs_enable overlay +} + +whole_root_enable() { + rootfs_enable whole_root +} do_mount() { local cfg="$1" @@ -39,19 +62,29 @@ do_swapoff() { } start() { + . /lib/functions/mount.sh + config_load fstab mkdir -p /var/lock - lock /var/lock/fstab.lck - echo '# WARNING: this is an auto generated file, please use uci to set defined filesystems' > /etc/fstab - lock -u /var/lock/fstab.lck + lock -w /var/lock/fstab.lck && { + lock /var/lock/fstab.lck + [ -e /tmp/fstab ] || { + echo '# WARNING: this is an auto generated file, please use uci to set defined filesystems' > /tmp/fstab + } + lock -u /var/lock/fstab.lck + } config_foreach do_swapon swap config_foreach do_mount mount + config_foreach do_swapon swap # do swap a second time so that swap on filesystems is enabled } stop() { + . /lib/functions/mount.sh + config_load fstab config_foreach do_unmount mount config_foreach do_swapoff swap swapoff -a } +