bsdinstall: Make sure chroot filesystems are umounted after use

* DISTDIR_IS_UNIONFS is set every time BSDINSTALL_DISTDIR is mounted inside
  BSDINSTALL_CHROOT. Use this flag to decide if it needs to be umounted
* BSDINSTALL_CHROOT/dev is mounted when 'bsdinstall mount' is called, there is
  no need to mount it again when user goes to shell after installation

Reviewed by:	allanjude
Obtained from:	pfSense
MFC after:	1 week
Sponsored by:	Rubicon Communications (Netgate)
Differential Revision:	https://reviews.freebsd.org/D8573
This commit is contained in:
Renato Botelho 2017-02-08 17:03:52 +00:00
parent 19d4720b1e
commit 371ce0ebc2
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=313448

View File

@ -449,9 +449,11 @@ finalconfig
trap error SIGINT # SIGINT is bad again
bsdinstall config || error "Failed to save config"
if [ -n "$DISTDIR_IS_UNIONFS" ]; then
umount -f $BSDINSTALL_DISTDIR
fi
if [ ! -z "$BSDINSTALL_FETCHDEST" ]; then
[ "$BSDINSTALL_FETCHDEST" != "$BSDINSTALL_DISTDIR" ] && \
umount "$BSDINSTALL_DISTDIR"
rm -rf "$BSDINSTALL_FETCHDEST"
fi
@ -460,7 +462,6 @@ dialog --backtitle "FreeBSD Installer" --title "Manual Configuration" \
"The installation is now finished. Before exiting the installer, would you like to open a shell in the new system to make any final manual modifications?" 0 0
if [ $? -eq 0 ]; then
clear
mount -t devfs devfs "$BSDINSTALL_CHROOT/dev"
echo This shell is operating in a chroot in the new system. \
When finished making configuration changes, type \"exit\".
chroot "$BSDINSTALL_CHROOT" /bin/sh 2>&1