X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/848953efdfd9623fbc65a4cd11ab51ea46c3cdc0..697cd0b66726d3d6eb14e71c157f0789c0be14d6:/package/block-mount/files/mount.sh?ds=sidebyside diff --git a/package/block-mount/files/mount.sh b/package/block-mount/files/mount.sh index 583e1a5ca..e96174ce9 100644 --- a/package/block-mount/files/mount.sh +++ b/package/block-mount/files/mount.sh @@ -31,16 +31,27 @@ config_mount_by_section() { found_device="$(libmount_find_device_by_id "$uuid" "$label" "$device" "$cfgdevice")" if [ -n "$found_device" ]; then - if [ -z "$find_rootfs" ] || [ "$find_rootfs" -eq 0 ] || [ "$is_rootfs" -eq 1 ]; then + if [ "$find_rootfs" != "1" ] || ( [ "$is_rootfs" -eq 1 ] || [ "$target" = "/" ] || [ "$target" = "/overlay" ] ); then [ "$enabled_fsck" -eq 1 ] && { grep -q "$found_device" /proc/swaps || grep -q "$found_device" /proc/mounts || { libmount_fsck "$found_device" "$fstype" "$enabled_fsck" } } - [ "$is_rootfs" -eq 1 ] && [ "$find_rootfs" -eq 1 ] && { + if [ "$find_rootfs" = "1" ]; then + if [ "$is_rootfs" -eq 1 ]; then target=/overlay - } + elif [ "$target" = "/" ]; then + target=/rom + fi + else + if [ "$is_rootfs" -eq 1 ] || [ "$target" = "/overlay" ]; then + target=/tmp/overlay-disabled + elif [ "$target" = "/" ] || [ "$target" = "/rom" ]; then + target="/tmp/whole_root-disabled" + fi + fi + config_create_mount_fstab_entry "$found_device" "$target" "$fstype" "$options" "$enabled" grep -q "$found_device" /proc/swaps || grep -q "$found_device" /proc/mounts || { [ "$enabled" -eq 1 ] && mkdir -p "$target" && mount "$target" 2>&1 | tee /proc/self/fd/2 | logger -t 'fstab' @@ -48,8 +59,13 @@ config_mount_by_section() { fi fi - [ "$is_rootfs" -eq 1 ] && [ "$find_rootfs" -eq 1 ] && { + [ "$find_rootfs" = "1" ] && { + [ "$target" = "/overlay" ] && { + rootfs_found=1 + } + [ "$target" = "/rom" ] && { rootfs_found=1 + } } return 0 }