diff options
| -rwxr-xr-x | hooks/live | 7 | ||||
| -rwxr-xr-x | scripts/live | 21 | 
2 files changed, 25 insertions, 3 deletions
@@ -246,3 +246,10 @@ then  	#mkdir -p $DESTDIR/etc  	#cp -p /etc/nsswitch.conf $DESTDIR/etc  fi + +if [ "${LIVE_UNIONMOUNT}" = "true" ] +then +	# UnionMount +	# only mount from patched util-linux can do this currently +	copy_exec /bin/mount /bin/mount_full +fi diff --git a/scripts/live b/scripts/live index ad2d48e..309d5aa 100755 --- a/scripts/live +++ b/scripts/live @@ -1267,9 +1267,16 @@ setup_unionfs ()  					log_warning_msg "Unknown file system type on ${backdev} (${image}), assuming ${fstype}."  				fi -				mkdir -p "${croot}/${imagename}" -				log_begin_msg "Mounting \"${image}\" on \"${croot}${imagename}\" via \"${backdev}\"" -				mount -t "${fstype}" -o ro,noatime "${backdev}" "${croot}/${imagename}" || panic "Can not mount ${backdev} (${image}) on ${croot}/${imagename}" && rofsstring="${croot}/${imagename}=${roopt}:${rofsstring}" && rofslist="${croot}/${imagename} ${rofslist}" +				if [ "${UNIONTYPE}" != "unionmount" ] +				then +					mpoint="${croot}/${imagename}" +					rofsstring="${mpoint}=${roopt}:${rofsstring}" && rofslist="${mpoint} ${rofslist}" +				else +					mpoint="${rootmnt}" +				fi +				mkdir -p "${mpoint}" +				log_begin_msg "Mounting \"${image}\" on \"${mpoint}\" via \"${backdev}\"" +				mount -t "${fstype}" -o ro,noatime "${backdev}" "${mpoint}" || panic "Can not mount ${backdev} (${image}) on ${mpoint}"  				log_end_msg  			fi  		done @@ -1383,6 +1390,9 @@ setup_unionfs ()  		cow_mountopt="rw,noatime,mode=755"  	fi +	if [ "${UNIONTYPE}" != "unionmount" ] +	then +  	if [ "${cow_fstype}" = "nfs" ]  	then  		log_begin_msg \ @@ -1393,6 +1403,7 @@ setup_unionfs ()  		mount -t ${cow_fstype} -o ${cow_mountopt} ${cowdevice} /cow || \  			panic "Can not mount ${cowdevice} (o: ${cow_fstype}) on /cow"  	fi +	fi  	rofscount=$(echo ${rofslist} |wc -w) @@ -1437,6 +1448,10 @@ setup_unionfs ()  				pidof unionfs-fuse >> /dev/.initramfs/varrun/sendsigs.omit || true  				;; +			unionmount) +				mount_full -t ${cow_fstype} -o noatime,union,${cow_mountopt} ${cowdevice} "${rootmnt}" || panic "${UNIONTYPE} ${cowdevice} on ${rootmnt} failed with option noatime,union,${cow_mountopt}" +				;; +  			*)  				mount -t ${UNIONTYPE} -o noatime,${noxino_opt}dirs=/cow=rw:${rofsstring} ${UNIONTYPE} "${rootmnt}" || panic "mount ${UNIONTYPE} on ${rootmnt} failed with option noatime,${noxino_opt}dirs=/cow=rw:${rofsstring}"  				;;  | 
