Skip to content

Commit

Permalink
Making persistent-read-only work for live-rw overlays.
Browse files Browse the repository at this point in the history
  • Loading branch information
Tails developers authored and daniel-baumann committed Nov 24, 2011
1 parent c70525e commit 63915a0
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 12 deletions.
47 changes: 35 additions & 12 deletions scripts/live
Expand Up @@ -1448,16 +1448,17 @@ setup_unionfs ()
then
cowdevice=${cowprobe}
cow_fstype=$(get_fstype "${cowprobe}")
cow_mountopt="rw,noatime"
if [ -z "${PERSISTENT_READONLY}" ]
then
cow_mountopt="rw,noatime"
else
cow_mountopt="ro,noatime"
fi

if [ "${FORCEPERSISTENTFSCK}" = "Yes" ]
then
fsck -y ${cowdevice}
fi
else
cowdevice="tmpfs"
cow_fstype="tmpfs"
cow_mountopt="rw,noatime,mode=755"
fi
elif [ -n "${NFS_COW}" ] && [ -z "${NOPERSISTENT}" ]
then
Expand All @@ -1470,6 +1471,12 @@ setup_unionfs ()
nfs_cow_opts="-o nolock"
nfs_cow=${NFS_COW}
fi

if [ -n "${PERSISTENT_READONLY}" ]
then
nfs_cow_opts="${nfs_cow_opts},nocto,ro"
fi

mac="$(get_mac)"
if [ -n "${mac}" ]
then
Expand All @@ -1478,24 +1485,34 @@ setup_unionfs ()
else
panic "unable to determine mac address"
fi
else
fi

if [ -z "${cowdevice}" ]
then
cowdevice="tmpfs"
cow_fstype="tmpfs"
cow_mountopt="rw,noatime,mode=755"
fi

if [ "${UNIONTYPE}" != "unionmount" ]
then
if [ -n "${PERSISTENT_READONLY}" ]
then
persistent_root="/$(basename ${cowdevice})-backing"
mkdir -p ${persistent_root}
else
persistent_root="/cow"
fi

if [ "${cow_fstype}" = "nfs" ]
then
log_begin_msg \
"Trying nfsmount ${nfs_cow_opts} ${cowdevice} /cow"
nfsmount ${nfs_cow_opts} ${cowdevice} /cow || \
panic "Can not mount ${cowdevice} (n: ${cow_fstype}) on /cow"
"Trying nfsmount ${nfs_cow_opts} ${cowdevice} ${persistent_root}"
nfsmount ${nfs_cow_opts} ${cowdevice} ${persistent_root} || \
panic "Can not mount ${cowdevice} (n: ${cow_fstype}) on ${persistent_root}"
else
mount -t ${cow_fstype} -o ${cow_mountopt} ${cowdevice} /cow || \
panic "Can not mount ${cowdevice} (o: ${cow_fstype}) on /cow"
mount -t ${cow_fstype} -o ${cow_mountopt} ${cowdevice} ${persistent_root} || \
panic "Can not mount ${cowdevice} (o: ${cow_fstype}) on ${persistent_root}"
fi
fi

Expand Down Expand Up @@ -1555,7 +1572,13 @@ setup_unionfs ()


*)
unionmountopts="-o noatime,${noxino_opt}dirs=${unionrw}=rw:${unionro}=${roopt}"
if [ -n "${PERSISTENT_READONLY}" ]
then
mount -t tmpfs -o rw,noatime,mode=755 tmpfs "${unionrw}"
unionmountopts="-o noatime,${noxino_opt}dirs=${unionrw}=rw:${persistent_root}=${roopt}:${unionro}=${roopt}"
else
unionmountopts="-o noatime,${noxino_opt}dirs=${unionrw}=rw:${unionro}=${roopt}"
fi
mount -t ${UNIONTYPE} ${unionmountopts} ${UNIONTYPE} "${unionmountpoint}"
;;
esac || \
Expand Down
4 changes: 4 additions & 0 deletions scripts/live-helpers
Expand Up @@ -316,6 +316,10 @@ open_luks_device ()
dev="${1}"
name="$(basename ${dev})"
opts="--key-file=-"
if [ -n "${PERSISTENT_READONLY}" ]
then
opts="${opts} --readonly"
fi

load_keymap

Expand Down

0 comments on commit 63915a0

Please sign in to comment.