diff options
| author | Tails developers <amnesia@boum.org> | 2010-11-01 17:35:45 +0100 |
|---|---|---|
| committer | Tails developers <amnesia@boum.org> | 2011-09-07 14:53:41 +0200 |
| commit | 209828c38d8af6fa2eab68cd668ca9109261f249 (patch) | |
| tree | e1bfa5e39906673ae2971b1e02a7a8de0cd4f44a /scripts/live-helpers | |
| parent | a8ee91a515eb774deb072cdc3b0c2c7591b7d7f6 (diff) | |
| download | live-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-helpers | 27 |
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}") |
