diff options
-rw-r--r-- | install-lilo.sh | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/install-lilo.sh b/install-lilo.sh index e980baa..ff3dd2c 100644 --- a/install-lilo.sh +++ b/install-lilo.sh @@ -8,12 +8,20 @@ main() [ "x$(id -u)" = 'x0' ] || error 'Must be run as the superuser' - if [ ${#} -ne 2 ]; then + if [ ${#} -eq 0 ]; then + if is_chroot; then + error 'Running under chroot; %s' \ + 'please specify the boot and root devices' + fi + boot="$(mountpoint -n /boot | cut -d ' ' -f 1)" + root="$(mountpoint -n / | cut -d ' ' -f 1)" + elif [ ${#} -eq 2 ]; then + boot="${1}" + root="${2}" + else usage >&2 exit 1 fi - boot="${1}" - root="${2}" [ -e "${boot}" ] || error 'Boot device not found' [ -e /etc/lilo.conf.in ] || \ @@ -28,7 +36,7 @@ main() usage() { - printf 'Usage: install-lilo <boot> <root>\n' + printf 'Usage: install-lilo [<boot> <root>]\n' } error() @@ -40,4 +48,9 @@ error() exit 2 } +is_chroot() +{ + awk '$5 == "/" { exit(1); };' "/proc/${$}/mountinfo" +} + main "${@}" |