summaryrefslogtreecommitdiff
path: root/scripts/live-helpers
diff options
context:
space:
mode:
authorTails developers <amnesia@boum.org>2010-11-01 17:35:45 +0100
committerTails developers <amnesia@boum.org>2011-09-07 14:53:41 +0200
commit209828c38d8af6fa2eab68cd668ca9109261f249 (patch)
treee1bfa5e39906673ae2971b1e02a7a8de0cd4f44a /scripts/live-helpers
parenta8ee91a515eb774deb072cdc3b0c2c7591b7d7f6 (diff)
downloadlive-boot-209828c38d8af6fa2eab68cd668ca9109261f249.tar.gz
live-boot-209828c38d8af6fa2eab68cd668ca9109261f249.zip
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.
Diffstat (limited to 'scripts/live-helpers')
-rw-r--r--scripts/live-helpers27
1 files changed, 26 insertions, 1 deletions
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}")