X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=scripts%2Fcasper;h=5cfb66e78a802f7265a64d147e58ddf4bd8ac588;hb=a4f706a4bfe34ed6064c79d5ad7b3295fb0431cd;hp=8338a06ea1745eebcc96ccd04ca30936fac7c541;hpb=c8e8ee4983b9bffa74138712eae61c94c34b2845;p=live-boot-grml.git diff --git a/scripts/casper b/scripts/casper index 8338a06..5cfb66e 100644 --- a/scripts/casper +++ b/scripts/casper @@ -290,6 +290,8 @@ do_netmount() { if [ "${NETBOOT}" != "nfs" ] && do_cifsmount ; then rc=0 elif do_nfsmount ; then + NETBOOT=nfs + export NETBOOT rc=0 fi @@ -344,14 +346,20 @@ setup_unionfs() { # Let's just mount the read-only file systems first rofsstring="" rofslist="" + if [ ${NETBOOT} == "nfs" ] ; then + roopt="nfsro" # go aroung a bug in nfs-unionfs locking + else + roopt="ro" + fi + mkdir -p "${croot}" for image_type in "ext2" "squashfs" "dir" ; do for image in "${image_directory}"/*."${image_type}"; do imagename=$(basename "${image}") if [ -d "${image}" ]; then # it is a plain directory: do nothing + rofsstring="${image}=${roopt}:${rofsstring}" rofslist="${image} ${rofslist}" - rofsstring="${image}=ro:${rofsstring}" elif [ -f "${image}" ]; then backdev=$(get_backing_device "$image") fstype=$(get_fstype "${backdev}") @@ -359,7 +367,7 @@ setup_unionfs() { panic "Unknown file system type on ${backdev} (${image})" fi mkdir -p "${croot}/${imagename}" - mount -t "${fstype}" -o ro "${backdev}" "${croot}/${imagename}" || panic "Can not mount $backdev ($image) on ${croot}/${imagename}" && rofsstring="${croot}/${imagename}=ro:${rofsstring}" && rofslist="${croot}/${imagename} ${rofslist}" + mount -t "${fstype}" -o ro "${backdev}" "${croot}/${imagename}" || panic "Can not mount $backdev ($image) on ${croot}/${imagename}" && rofsstring="${croot}/${imagename}=${roopt}:${rofsstring}" && rofslist="${croot}/${imagename} ${rofslist}" fi done done