From: Tails developers Date: Tue, 8 Nov 2011 20:14:59 +0000 (+0100) Subject: Adding persistent-method=METHOD... X-Git-Tag: debian/3.0_a23-1~18 X-Git-Url: http://git.grml.org/?a=commitdiff_plain;h=959403d20e2259c10de7ef55b9226c40812eabd7;p=live-boot-grml.git Adding persistent-method=METHOD... The comma-separated list METHOD... specifies which types of persistent setups we allow. Current possible METHODs are {snapshot, overlay}. The default value is both, i.e. persistent-method=snapshot,overlay. --- diff --git a/scripts/live b/scripts/live index 24dc468..c3732fe 100755 --- a/scripts/live +++ b/scripts/live @@ -253,6 +253,10 @@ Arguments () PERSISTENT_MEDIA="${ARGUMENT#*=}" export PERSISTENT_MEDIA ;; + persistent-method=*) + PERSISTENT_METHOD="${ARGUMENT#*=}" + export PERSISTENT_METHOD + ;; persistent-path=*) PERSISTENT_PATH="${ARGUMENT#persistent-path=}" @@ -387,6 +391,12 @@ Arguments () export UNIONTYPE fi + if [ -n "${PERSISTENT}" ] && [ -z "${PERSISTENT_METHOD}" ] + then + PERSISTENT_METHOD="snapshot,overlay" + export PERSISTENT_METHOD + fi + if [ -n "${PERSISTENT}" ] && [ -z "${PERSISTENT_STORAGE}" ] then PERSISTENT_STORAGE="filesystem,file" @@ -1385,30 +1395,37 @@ setup_unionfs () ;; esac - # search for label and files (this could be hugely optimized) - cowprobe=$(find_cow_device "${root_persistence}" "${blacklistdev}" "${whitelistdev}") - if [ -b "${cowprobe}" ] + if echo ${PERSISTENT_METHOD} | grep -qw overlay then - # Blacklist /cow device, to avoid inconsistent setups for overlapping snapshots - # makes sense to have both persistence for /cow and /home mounted, maybe also with - # snapshots to be sure to really store some e.g key config files, - # but not on the same media - blacklistdev="${cowprobe}" - PERSISTENCE_IS_ON="1" - export PERSISTENCE_IS_ON + # search for label and files (this could be hugely optimized) + cowprobe=$(find_cow_device "${root_persistence}" "${blacklistdev}" "${whitelistdev}") + if [ -b "${cowprobe}" ] + then + # Blacklist /cow device, to avoid inconsistent setups for overlapping snapshots + # makes sense to have both persistence for /cow and /home mounted, maybe also with + # snapshots to be sure to really store some e.g key config files, + # but not on the same media + blacklistdev="${cowprobe}" + PERSISTENCE_IS_ON="1" + export PERSISTENCE_IS_ON + fi + # homecow just mount something on /home, this should be generalized some way + homecow=$(find_cow_device "${home_persistence}" "${blacklistdev}" "${whitelistdev}") + if [ -b "${homecow}" ] + then + PERSISTENCE_IS_ON="1" + export PERSISTENCE_IS_ON + fi fi - # homecow just mount something on /home, this should be generalized some way - homecow=$(find_cow_device "${home_persistence}" "${blacklistdev}" "${whitelistdev}") - if [ -b "${homecow}" ] + + if echo ${PERSISTENT_METHOD} | grep -qw snapshot then - PERSISTENCE_IS_ON="1" - export PERSISTENCE_IS_ON + root_snapdata=$(find_snap "${root_snapshot_label}" "${blacklistdev}" "${whitelistdev}") + # This second type should be removed when snapshot will get smarter, + # hence when "/etc/live-snapshot*list" will be supported also by + # ext2|ext3|ext4|jffs2 snapshot types. + home_snapdata=$(find_snap "${home_snapshot_label}" "${blacklistdev}" "${whitelistdev}") fi - root_snapdata=$(find_snap "${root_snapshot_label}" "${blacklistdev}" "${whitelistdev}") - # This second type should be removed when snapshot will get smarter, - # hence when "/etc/live-snapshot*list" will be supported also by - # ext2|ext3|ext4|jffs2 snapshot types. - home_snapdata=$(find_snap "${home_snapshot_label}" "${blacklistdev}" "${whitelistdev}") if [ -b "${cowprobe}" ] then