Skip to content

Commit

Permalink
Adding initial support for unionmount.
Browse files Browse the repository at this point in the history
  • Loading branch information
Michal Suchanek authored and daniel-baumann committed Sep 29, 2010
1 parent 01b0551 commit 51378f2
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 3 deletions.
7 changes: 7 additions & 0 deletions hooks/live
Expand Up @@ -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
21 changes: 18 additions & 3 deletions scripts/live
Expand Up @@ -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
Expand Down Expand Up @@ -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 \
Expand All @@ -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)

Expand Down Expand Up @@ -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}"
;;
Expand Down

0 comments on commit 51378f2

Please sign in to comment.