Updating read-only handling to new parameter handling.
[debian-live-boot.git] / scripts / boot / arguments.sh
blob5f345122b3d703b7678704927d68790ba0c2fa82
1 #!/bin/sh
3 #set -e
5 Arguments ()
7 for ARGUMENT in $(cat /proc/cmdline)
8 do
9 case "${ARGUMENT}" in
10 live-boot.read-only|read-only)
11 LIVE_READ_ONLY="true"
12 export LIVE_READ_ONLY
15 live-boot.verify-checksums|verify-checksums)
16 LIVE_VERIFY_CHECKSUMS="true"
17 export LIVE_VERIFY_CHECKSUMS
20 # parameters below need review
21 skipconfig)
22 NOFASTBOOT="true"
23 NOFSTAB="true"
24 NONETWORKING="true"
26 export NOFASTBOOT NOFSTAB NONETWORKING
29 BOOTIF=*)
30 BOOTIF="${x#BOOTIF=}"
33 debug)
34 DEBUG="true"
35 export DEBUG
37 set -x
40 dhcp)
41 # Force dhcp even while netbooting
42 # Use for debugging in case somebody works on fixing dhclient
43 DHCP="true";
44 export DHCP
47 nodhcp)
48 DHCP=""
49 export DHCP
52 ethdevice=*)
53 DEVICE="${ARGUMENT#ethdevice=}"
54 ETHDEVICE="${DEVICE}"
55 export DEVICE ETHDEVICE
58 ethdevice-timeout=*)
59 ETHDEV_TIMEOUT="${ARGUMENT#ethdevice-timeout=}"
60 export ETHDEV_TIMEOUT
63 fetch=*)
64 FETCH="${ARGUMENT#fetch=}"
65 export FETCH
68 findiso=*)
69 FINDISO="${ARGUMENT#findiso=}"
70 export FINDISO
73 ftpfs=*)
74 FTPFS="${ARGUMENT#ftpfs=}"
75 export FTPFS
78 httpfs=*)
79 HTTPFS="${ARGUMENT#httpfs=}"
80 export HTTPFS
83 iscsi=*)
84 ISCSI="${ARGUMENT#iscsi=}"
85 #ip:port - separated by ;
86 ISCSI_PORTAL="${ISCSI%;*}"
87 if echo "${ISCSI_PORTAL}" | grep -q , ; then
88 ISCSI_SERVER="${ISCSI_PORTAL%,*}"
89 ISCSI_PORT="${ISCSI_PORTAL#*,}"
91 #target name
92 ISCSI_TARGET="${ISCSI#*;}"
93 export ISCSI ISCSI_PORTAL ISCSI_TARGET ISCSI_SERVER ISCSI_PORT
96 isofrom=*|fromiso=*)
97 FROMISO="${ARGUMENT#*=}"
98 export FROMISO
101 ignore_uuid)
102 IGNORE_UUID="true"
103 export IGNORE_UUID
106 ip=*)
107 STATICIP="${ARGUMENT#ip=}"
109 if [ -z "${STATICIP}" ]
110 then
111 STATICIP="frommedia"
114 export STATICIP
117 live-media=*|bootfrom=*)
118 LIVE_MEDIA="${ARGUMENT#*=}"
119 export LIVE_MEDIA
122 live-media-encryption=*|encryption=*)
123 LIVE_MEDIA_ENCRYPTION="${ARGUMENT#*=}"
124 export LIVE_MEDIA_ENCRYPTION
127 live-media-offset=*)
128 LIVE_MEDIA_OFFSET="${ARGUMENT#live-media-offset=}"
129 export LIVE_MEDIA_OFFSET
132 live-media-path=*)
133 LIVE_MEDIA_PATH="${ARGUMENT#live-media-path=}"
134 export LIVE_MEDIA_PATH
137 live-media-timeout=*)
138 LIVE_MEDIA_TIMEOUT="${ARGUMENT#live-media-timeout=}"
139 export LIVE_MEDIA_TIMEOUT
142 module=*)
143 MODULE="${ARGUMENT#module=}"
144 export MODULE
147 netboot=*)
148 NETBOOT="${ARGUMENT#netboot=}"
149 export NETBOOT
152 nfsopts=*)
153 NFSOPTS="${ARGUMENT#nfsopts=}"
154 export NFSOPTS
157 nfsoverlay=*)
158 NFS_COW="${ARGUMENT#nfsoverlay=}"
159 export NFS_COW
162 nofastboot)
163 NOFASTBOOT="true"
164 export NOFASTBOOT
167 nofstab)
168 NOFSTAB="true"
169 export NOFSTAB
172 nonetworking)
173 NONETWORKING="true"
174 export NONETWORKING
177 ramdisk-size=*)
178 ramdisk_size="${ARGUMENT#ramdisk-size=}"
181 swapon)
182 SWAPON="true"
183 export SWAPON
186 persistence)
187 PERSISTENCE="true"
188 export PERSISTENCE
191 persistence-encryption=*)
192 PERSISTENCE_ENCRYPTION="${ARGUMENT#*=}"
193 export PERSISTENCE_ENCRYPTION
196 persistence-media=*)
197 PERSISTENCE_MEDIA="${ARGUMENT#*=}"
198 export PERSISTENCE_MEDIA
200 persistence-method=*)
201 PERSISTENCE_METHOD="${ARGUMENT#*=}"
202 export PERSISTENCE_METHOD
205 persistence-path=*)
206 PERSISTENCE_PATH="${ARGUMENT#persistence-path=}"
207 export PERSISTENCE_PATH
209 persistence-read-only)
210 PERSISTENCE_READONLY="true"
211 export PERSISTENCE_READONLY
214 persistence-storage=*)
215 PERSISTENCE_STORAGE="${ARGUMENT#persistence-storage=}"
216 export PERSISTENCE_STORAGE
219 persistence-subtext=*)
220 old_root_overlay_label="${old_root_overlay_label}-${ARGUMENT#persistence-subtext=}"
221 old_home_overlay_label="${old_home_overlay_label}-${ARGUMENT#persistence-subtext=}"
222 custom_overlay_label="${custom_overlay_label}-${ARGUMENT#persistence-subtext=}"
223 root_snapshot_label="${root_snapshot_label}-${ARGUMENT#persistence-subtext=}"
224 old_root_snapshot_label="${root_snapshot_label}-${ARGUMENT#persistence-subtext=}"
225 home_snapshot_label="${home_snapshot_label}-${ARGUMENT#persistence-subtext=}"
228 nopersistence)
229 NOPERSISTENCE="true"
230 export NOPERSISTENCE
233 noprompt)
234 NOPROMPT="true"
235 export NOPROMPT
238 noprompt=*)
239 NOPROMPT="${ARGUMENT#noprompt=}"
240 export NOPROMPT
243 quickusbmodules)
244 QUICKUSBMODULES="true"
245 export QUICKUSBMODULES
248 showmounts)
249 SHOWMOUNTS="true"
250 export SHOWMOUNTS
253 silent)
254 SILENT="true"
255 export SILENT
258 todisk=*)
259 TODISK="${ARGUMENT#todisk=}"
260 export TODISK
263 toram)
264 TORAM="true"
265 export TORAM
268 toram=*)
269 TORAM="true"
270 MODULETORAM="${ARGUMENT#toram=}"
271 export TORAM MODULETORAM
274 exposedroot)
275 EXPOSED_ROOT="true"
276 export EXPOSED_ROOT
279 plainroot)
280 PLAIN_ROOT="true"
281 export PLAIN_ROOT
284 skipunion)
285 SKIP_UNION_MOUNTS="true"
286 export SKIP_UNION_MOUNTS
289 root=*)
290 ROOT="${ARGUMENT#root=}"
291 export ROOT
294 union=*)
295 UNIONTYPE="${ARGUMENT#union=}"
296 export UNIONTYPE
298 esac
299 done
301 # sort of compatibility with netboot.h from linux docs
302 if [ -z "${NETBOOT}" ]
303 then
304 if [ "${ROOT}" = "/dev/nfs" ]
305 then
306 NETBOOT="nfs"
307 export NETBOOT
308 elif [ "${ROOT}" = "/dev/cifs" ]
309 then
310 NETBOOT="cifs"
311 export NETBOOT
315 if [ -z "${MODULE}" ]
316 then
317 MODULE="filesystem"
318 export MODULE
321 if [ -z "${UNIONTYPE}" ]
322 then
323 UNIONTYPE="aufs"
324 export UNIONTYPE
327 if [ -z "${PERSISTENCE_ENCRYPTION}" ]
328 then
329 PERSISTENCE_ENCRYPTION="none"
330 export PERSISTENCE_ENCRYPTION
331 elif is_in_comma_sep_list luks ${PERSISTENCE_ENCRYPTION}
332 then
333 if ! modprobe dm-crypt
334 then
335 log_warning_msg "Unable to load module dm-crypt"
336 PERSISTENCE_ENCRYPTION=$(echo ${PERSISTENCE_ENCRYPTION} | sed -e 's/\<luks,\|,\?luks$//g')
337 export PERSISTENCE_ENCRYPTION
340 if [ ! -x /lib/cryptsetup/askpass ] || [ ! -x /sbin/cryptsetup ]
341 then
342 log_warning_msg "cryptsetup in unavailable"
343 PERSISTENCE_ENCRYPTION=$(echo ${PERSISTENCE_ENCRYPTION} | sed -e 's/\<luks,\|,\?luks$//g')
344 export PERSISTENCE_ENCRYPTION
348 if [ -z "${PERSISTENCE_METHOD}" ]
349 then
350 PERSISTENCE_METHOD="snapshot,overlay"
351 export PERSISTENCE_METHOD
354 if [ -z "${PERSISTENCE_STORAGE}" ]
355 then
356 PERSISTENCE_STORAGE="filesystem,file"
357 export PERSISTENCE_STORAGE