123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- # This file is part of the 'dragora-installer'.
- #
- # Purpose: Make mount points and mount non-root filesystems from fstab.
- # Make declared mount points from fstab, exclude:
- # commentaries, root, and possible swapfile.
- makeMountPoints()
- {
- grep -E -v '^#|swap|/ ' "${SUBTMPDIR}/fstab" | \
- awk '{ print substr($2,2) }' | while read -r directory
- do
- test -n "$directory" || continue
- # Make sure to translate converted blank spaces (\040)
- # into common spaces for directory creation (see MakeFS)
- directory="$(printf '%s' "$directory" | tr '\\040' ' ')"
- if test ! -d "/media/dragora-root/${directory}"
- then
- mkdir -p -- "/media/dragora-root/${directory}"
- fi
- done
- }
- mountNonRoot()
- {
- if test -s "${SUBTMPDIR}/fstab"
- then
- awk '!/^#/ && !/\/ / && !/swap/ && !/fd0/ && !/tmp/{ print $1,$2 }' \
- "${SUBTMPDIR}/fstab" | while IFS=" " read -r device mntpoint
- do
- umount "$device" > /dev/null 2>&1 || true
- mntpoint="$(printf '%s' "$mntpoint" | tr '\\040' ' ')"
- mntpoint="/media/dragora-root/${mntpoint}"
- echo ""
- umount -v "$device" || true
- mount -v "$device" "$mntpoint" || exit $?
- sleep 2
- done
- fi
- }
- dialog --colors \
- --backtitle "\\ZbNon-root partition(s)" \
- --title "NON-ROOT MOUNTS" --sleep 2 \
- --infobox "Preparing to mount the rest of the file systems..." 3 54
- makeMountPoints
- mountNonRoot
- if test ! -e /media/dragora-root/etc/fstab
- then
- # Copy fstab into the root partition
- mkdir -p -- /media/dragora-root/etc || true
- cp -f -- "${SUBTMPDIR}/fstab" /media/dragora-root/etc/
- else
- # Offer the possibility to overwrite the fstab file only if
- # there is a difference, since there is no point in asking to
- # overwrite the (newly) created and copied file
- if test \
- "$(cmp -s "${SUBTMPDIR}/fstab" /media/dragora-root/etc/fstab; printf $?)" = "1"
- then
- dialog --no-shadow --colors \
- --backtitle "\\ZbFile system table (fstab)" \
- --title "EXISTING FILE SYSTEM TABLE" \
- --cr-wrap --yesno \
- "A file system table already exists on the mounted root partition:
- /media/dragora-root/etc/fstab
- Overwrite this file only if:
- - This is a new installation.
- - You are installing a new kernel image.
- - To create a boot disk with a new kernel.
- In this case, you must configure the system to boot properly.
- Do not overwrite the file system table if you are adding
- software to the existing system...
- Do you want to replace the existing fstab with the new one?
- " 19 69 || { unset makeMountPoints mountNonRoot ; return 0; }
- mkdir -p -- /media/dragora-root/etc || true
- cp -f -- "${SUBTMPDIR}/fstab" /media/dragora-root/etc/
- fi
- fi
- unset makeMountPoints mountNonRoot
|