Dropping snapshot functionality, superseeded by awesome custom mount persistence.
[live-boot-grml.git] / scripts / boot / cmdline.sh
1 #!/bin/sh
2
3 #set -e
4
5 Cmdline ()
6 {
7         for _PARAMETER in ${_CMDLINE}
8         do
9                 case "${_PARAMETER}" in
10                         live-boot.read-only|read-only)
11                                 LIVE_READ_ONLY="true"
12                                 ;;
13
14                         live-boot.swapon)
15                                 LIVE_SWAPON="true"
16                                 ;;
17
18                         live-boot.verify-checksums|verify-checksums)
19                                 LIVE_VERIFY_CHECKSUMS="true"
20                                 ;;
21
22                         # Special options
23                         live-boot.debug|debug)
24                                 LIVE_DEBUG="true"
25                                 ;;
26
27
28                         # parameters below need review (FIXME)
29                         skipconfig)
30                                 NOFSTAB="true"
31                                 NONETWORKING="true"
32
33                                 export NOFSTAB NONETWORKING
34                                 ;;
35
36                         BOOTIF=*)
37                                 BOOTIF="${x#BOOTIF=}"
38                                 ;;
39
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
45                                 ;;
46
47                         nodhcp)
48                                 DHCP=""
49                                 export DHCP
50                                 ;;
51
52                         ethdevice=*)
53                                 DEVICE="${_PARAMETER#ethdevice=}"
54                                 ETHDEVICE="${DEVICE}"
55                                 export DEVICE ETHDEVICE
56                                 ;;
57
58                         ethdevice-timeout=*)
59                                 ETHDEV_TIMEOUT="${_PARAMETER#ethdevice-timeout=}"
60                                 export ETHDEV_TIMEOUT
61                                 ;;
62
63                         fetch=*)
64                                 FETCH="${_PARAMETER#fetch=}"
65                                 export FETCH
66                                 ;;
67
68                         findiso=*)
69                                 FINDISO="${_PARAMETER#findiso=}"
70                                 export FINDISO
71                                 ;;
72
73                         ftpfs=*)
74                                 FTPFS="${_PARAMETER#ftpfs=}"
75                                 export FTPFS
76                                 ;;
77
78                         httpfs=*)
79                                 HTTPFS="${_PARAMETER#httpfs=}"
80                                 export HTTPFS
81                                 ;;
82
83                         iscsi=*)
84                                 ISCSI="${_PARAMETER#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#*,}"
90                                 fi
91                                 #target name
92                                 ISCSI_TARGET="${ISCSI#*;}"
93                                 export ISCSI ISCSI_PORTAL ISCSI_TARGET ISCSI_SERVER ISCSI_PORT
94                                 ;;
95
96                         isofrom=*|fromiso=*)
97                                 FROMISO="${_PARAMETER#*=}"
98                                 export FROMISO
99                                 ;;
100
101                         ignore_uuid)
102                                 IGNORE_UUID="true"
103                                 export IGNORE_UUID
104                                 ;;
105
106                         ip=*)
107                                 STATICIP="${_PARAMETER#ip=}"
108
109                                 if [ -z "${STATICIP}" ]
110                                 then
111                                         STATICIP="frommedia"
112                                 fi
113
114                                 export STATICIP
115                                 ;;
116
117                         live-media=*|bootfrom=*)
118                                 LIVE_MEDIA="${_PARAMETER#*=}"
119                                 export LIVE_MEDIA
120                                 ;;
121
122                         live-media-encryption=*|encryption=*)
123                                 LIVE_MEDIA_ENCRYPTION="${_PARAMETER#*=}"
124                                 export LIVE_MEDIA_ENCRYPTION
125                                 ;;
126
127                         live-media-offset=*)
128                                 LIVE_MEDIA_OFFSET="${_PARAMETER#live-media-offset=}"
129                                 export LIVE_MEDIA_OFFSET
130                                 ;;
131
132                         live-media-path=*)
133                                 LIVE_MEDIA_PATH="${_PARAMETER#live-media-path=}"
134                                 export LIVE_MEDIA_PATH
135                                 ;;
136
137                         live-media-timeout=*)
138                                 LIVE_MEDIA_TIMEOUT="${_PARAMETER#live-media-timeout=}"
139                                 export LIVE_MEDIA_TIMEOUT
140                                 ;;
141
142                         module=*)
143                                 MODULE="${_PARAMETER#module=}"
144                                 export MODULE
145                                 ;;
146
147                         netboot=*)
148                                 NETBOOT="${_PARAMETER#netboot=}"
149                                 export NETBOOT
150                                 ;;
151
152                         nfsopts=*)
153                                 NFSOPTS="${_PARAMETER#nfsopts=}"
154                                 export NFSOPTS
155                                 ;;
156
157                         nfsoverlay=*)
158                                 NFS_COW="${_PARAMETER#nfsoverlay=}"
159                                 export NFS_COW
160                                 ;;
161
162                         nofstab)
163                                 NOFSTAB="true"
164                                 export NOFSTAB
165                                 ;;
166
167                         nonetworking)
168                                 NONETWORKING="true"
169                                 export NONETWORKING
170                                 ;;
171
172                         ramdisk-size=*)
173                                 ramdisk_size="${_PARAMETER#ramdisk-size=}"
174                                 ;;
175
176                         persistence)
177                                 PERSISTENCE="true"
178                                 export PERSISTENCE
179                                 ;;
180
181                         persistence-encryption=*)
182                                 PERSISTENCE_ENCRYPTION="${_PARAMETER#*=}"
183                                 export PERSISTENCE_ENCRYPTION
184                                 ;;
185
186                         persistence-media=*)
187                                 PERSISTENCE_MEDIA="${_PARAMETER#*=}"
188                                 export PERSISTENCE_MEDIA
189                                 ;;
190                         persistence-method=*)
191                                 PERSISTENCE_METHOD="${_PARAMETER#*=}"
192                                 export PERSISTENCE_METHOD
193                                 ;;
194
195                         persistence-path=*)
196                                 PERSISTENCE_PATH="${_PARAMETER#persistence-path=}"
197                                 export PERSISTENCE_PATH
198                                 ;;
199                         persistence-read-only)
200                                 PERSISTENCE_READONLY="true"
201                                 export PERSISTENCE_READONLY
202                                 ;;
203
204                         persistence-storage=*)
205                                 PERSISTENCE_STORAGE="${_PARAMETER#persistence-storage=}"
206                                 export PERSISTENCE_STORAGE
207                                 ;;
208
209                         persistence-subtext=*)
210                                 old_root_overlay_label="${old_root_overlay_label}-${_PARAMETER#persistence-subtext=}"
211                                 old_home_overlay_label="${old_home_overlay_label}-${_PARAMETER#persistence-subtext=}"
212                                 custom_overlay_label="${custom_overlay_label}-${_PARAMETER#persistence-subtext=}"
213                                 ;;
214
215                         nopersistence)
216                                 NOPERSISTENCE="true"
217                                 export NOPERSISTENCE
218                                 ;;
219
220                         noprompt)
221                                 NOPROMPT="true"
222                                 export NOPROMPT
223                                 ;;
224
225                         noprompt=*)
226                                 NOPROMPT="${_PARAMETER#noprompt=}"
227                                 export NOPROMPT
228                                 ;;
229
230                         quickusbmodules)
231                                 QUICKUSBMODULES="true"
232                                 export QUICKUSBMODULES
233                                 ;;
234
235                         showmounts)
236                                 SHOWMOUNTS="true"
237                                 export SHOWMOUNTS
238                                 ;;
239
240                         silent)
241                                 SILENT="true"
242                                 export SILENT
243                                 ;;
244
245                         todisk=*)
246                                 TODISK="${_PARAMETER#todisk=}"
247                                 export TODISK
248                                 ;;
249
250                         toram)
251                                 TORAM="true"
252                                 export TORAM
253                                 ;;
254
255                         toram=*)
256                                 TORAM="true"
257                                 MODULETORAM="${_PARAMETER#toram=}"
258                                 export TORAM MODULETORAM
259                                 ;;
260
261                         exposedroot)
262                                 EXPOSED_ROOT="true"
263                                 export EXPOSED_ROOT
264                                 ;;
265
266                         plainroot)
267                                 PLAIN_ROOT="true"
268                                 export PLAIN_ROOT
269                                 ;;
270
271                         skipunion)
272                                 SKIP_UNION_MOUNTS="true"
273                                 export SKIP_UNION_MOUNTS
274                                 ;;
275
276                         root=*)
277                                 ROOT="${_PARAMETER#root=}"
278                                 export ROOT
279                                 ;;
280
281                         union=*)
282                                 UNIONTYPE="${_PARAMETER#union=}"
283                                 export UNIONTYPE
284                                 ;;
285                 esac
286         done
287
288         # sort of compatibility with netboot.h from linux docs
289         if [ -z "${NETBOOT}" ]
290         then
291                 if [ "${ROOT}" = "/dev/nfs" ]
292                 then
293                         NETBOOT="nfs"
294                         export NETBOOT
295                 elif [ "${ROOT}" = "/dev/cifs" ]
296                 then
297                         NETBOOT="cifs"
298                         export NETBOOT
299                 fi
300         fi
301
302         if [ -z "${MODULE}" ]
303         then
304                 MODULE="filesystem"
305                 export MODULE
306         fi
307
308         if [ -z "${UNIONTYPE}" ]
309         then
310                 UNIONTYPE="aufs"
311                 export UNIONTYPE
312         fi
313
314         if [ -z "${PERSISTENCE_ENCRYPTION}" ]
315         then
316                 PERSISTENCE_ENCRYPTION="none"
317                 export PERSISTENCE_ENCRYPTION
318         elif is_in_comma_sep_list luks ${PERSISTENCE_ENCRYPTION}
319         then
320                 if ! modprobe dm-crypt
321                 then
322                         log_warning_msg "Unable to load module dm-crypt"
323                         PERSISTENCE_ENCRYPTION=$(echo ${PERSISTENCE_ENCRYPTION} | sed -e 's/\<luks,\|,\?luks$//g')
324                         export PERSISTENCE_ENCRYPTION
325                 fi
326
327                 if [ ! -x /lib/cryptsetup/askpass ] || [ ! -x /sbin/cryptsetup ]
328                 then
329                         log_warning_msg "cryptsetup in unavailable"
330                         PERSISTENCE_ENCRYPTION=$(echo ${PERSISTENCE_ENCRYPTION} | sed -e 's/\<luks,\|,\?luks$//g')
331                         export PERSISTENCE_ENCRYPTION
332                 fi
333         fi
334
335         if [ -z "${PERSISTENCE_METHOD}" ]
336         then
337                 PERSISTENCE_METHOD="overlay"
338                 export PERSISTENCE_METHOD
339         fi
340
341         if [ -z "${PERSISTENCE_STORAGE}" ]
342         then
343                 PERSISTENCE_STORAGE="filesystem,file"
344                 export PERSISTENCE_STORAGE
345         fi
346 }