From 209828c38d8af6fa2eab68cd668ca9109261f249 Mon Sep 17 00:00:00 2001 From: Tails developers Date: Mon, 1 Nov 2010 17:35:45 +0100 Subject: Adding a white_listed_devices parameter to find_cow_device and find_files. This will be needed for the upcoming persistent-media={removable,removable-usb} boot option. --- scripts/live-helpers | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'scripts/live-helpers') diff --git a/scripts/live-helpers b/scripts/live-helpers index 06bd186..7f8649f 100644 --- a/scripts/live-helpers +++ b/scripts/live-helpers @@ -283,10 +283,13 @@ find_cow_device () { # Returns a device containing a partition labeled "${pers_label}" or containing a file named the same way # in the latter case the partition containing the file is left mounted - # if is not in black_listed_devices + # if is not in black_listed_devices. + # Additionally, if the white_listed_devices list is non-empty, the + # parent block device of the returned device must be part of this list. pers_label="${1}" cow_backing="/${pers_label}-backing" black_listed_devices="${2}" + white_listed_devices="${3}" if [ -z "${PERSISTENT_PATH}" ] then @@ -305,6 +308,15 @@ find_cow_device () break fi + if [ -n "${white_listed_devices}" ] + then + if echo "${white_listed_devices}" | grep -v -q -w "${fulldevname}" + then + # skip this device entirely + break + fi + fi + for dev in $(subdevices "${sysblock}") do devname=$(sys2dev "${dev}") @@ -383,11 +395,15 @@ find_cow_device () find_files () { # return the a string composed by device name, mountpoint an the first of ${filenames} found on a supported partition + # if is not in black_listed_devices. + # Additionally, if the white_listed_devices list is non-empty, the + # parent block device of the returned device must be part of this list. # FIXME: merge with above function filenames="${1}" snap_backing="/snap-backing" black_listed_devices="${2}" + white_listed_devices="${3}" for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop | grep -v ram | grep -v fd) do @@ -399,6 +415,15 @@ find_files () break fi + if [ -n "${white_listed_devices}" ] + then + if echo "${white_listed_devices}" | grep -v -q -w "${fulldevname}" + then + # skip this device entirely + break + fi + fi + for dev in $(subdevices "${sysblock}") do devname=$(sys2dev "${dev}") -- cgit v1.2.3