Adding upstream version 3.0~a34.
[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-label=*)
210                                 old_root_overlay_label="${_PARAMETER#persistence-label=*}"
211                                 old_home_overlay_label="${_PARAMETER#persistence-label=*}"
212                                 custom_overlay_label="${_PARAMETER#persistence-label=*}"
213                                 ;;
214
215                         nopersistence)
216                                 NOPERSISTENCE="true"
217                                 export NOPERSISTENCE
218                                 ;;
219
220                         quickusbmodules)
221                                 QUICKUSBMODULES="true"
222                                 export QUICKUSBMODULES
223                                 ;;
224
225                         showmounts)
226                                 SHOWMOUNTS="true"
227                                 export SHOWMOUNTS
228                                 ;;
229
230                         todisk=*)
231                                 TODISK="${_PARAMETER#todisk=}"
232                                 export TODISK
233                                 ;;
234
235                         toram)
236                                 TORAM="true"
237                                 export TORAM
238                                 ;;
239
240                         toram=*)
241                                 TORAM="true"
242                                 MODULETORAM="${_PARAMETER#toram=}"
243                                 export TORAM MODULETORAM
244                                 ;;
245
246                         exposedroot)
247                                 EXPOSED_ROOT="true"
248                                 export EXPOSED_ROOT
249                                 ;;
250
251                         plainroot)
252                                 PLAIN_ROOT="true"
253                                 export PLAIN_ROOT
254                                 ;;
255
256                         skipunion)
257                                 SKIP_UNION_MOUNTS="true"
258                                 export SKIP_UNION_MOUNTS
259                                 ;;
260
261                         root=*)
262                                 ROOT="${_PARAMETER#root=}"
263                                 export ROOT
264                                 ;;
265
266                         union=*)
267                                 UNIONTYPE="${_PARAMETER#union=}"
268                                 export UNIONTYPE
269                                 ;;
270                 esac
271         done
272
273         # sort of compatibility with netboot.h from linux docs
274         if [ -z "${NETBOOT}" ]
275         then
276                 if [ "${ROOT}" = "/dev/nfs" ]
277                 then
278                         NETBOOT="nfs"
279                         export NETBOOT
280                 elif [ "${ROOT}" = "/dev/cifs" ]
281                 then
282                         NETBOOT="cifs"
283                         export NETBOOT
284                 fi
285         fi
286
287         if [ -z "${MODULE}" ]
288         then
289                 MODULE="filesystem"
290                 export MODULE
291         fi
292
293         if [ -z "${UNIONTYPE}" ]
294         then
295                 UNIONTYPE="aufs"
296                 export UNIONTYPE
297         fi
298
299         if [ -z "${PERSISTENCE_ENCRYPTION}" ]
300         then
301                 PERSISTENCE_ENCRYPTION="none"
302                 export PERSISTENCE_ENCRYPTION
303         elif is_in_comma_sep_list luks ${PERSISTENCE_ENCRYPTION}
304         then
305                 if ! modprobe dm-crypt
306                 then
307                         log_warning_msg "Unable to load module dm-crypt"
308                         PERSISTENCE_ENCRYPTION=$(echo ${PERSISTENCE_ENCRYPTION} | sed -e 's/\<luks,\|,\?luks$//g')
309                         export PERSISTENCE_ENCRYPTION
310                 fi
311
312                 if [ ! -x /lib/cryptsetup/askpass ] || [ ! -x /sbin/cryptsetup ]
313                 then
314                         log_warning_msg "cryptsetup in unavailable"
315                         PERSISTENCE_ENCRYPTION=$(echo ${PERSISTENCE_ENCRYPTION} | sed -e 's/\<luks,\|,\?luks$//g')
316                         export PERSISTENCE_ENCRYPTION
317                 fi
318         fi
319
320         if [ -z "${PERSISTENCE_METHOD}" ]
321         then
322                 PERSISTENCE_METHOD="overlay"
323                 export PERSISTENCE_METHOD
324         fi
325
326         if [ -z "${PERSISTENCE_STORAGE}" ]
327         then
328                 PERSISTENCE_STORAGE="filesystem,file"
329                 export PERSISTENCE_STORAGE
330         fi
331 }