]>
Commit | Line | Data |
---|---|---|
888d53f2 HH |
1 | DRACUT.CMDLINE(7) |
2 | ================= | |
3 | :doctype: manpage | |
4 | :man source: dracut | |
5 | :man manual: dracut | |
6 | ||
7 | NAME | |
8 | ---- | |
9 | dracut.cmdline - dracut kernel command line options | |
10 | ||
11 | DESCRIPTION | |
12 | ----------- | |
13 | The root device used by the kernel is specified in the boot configuration | |
14 | file on the kernel command line, as always. | |
15 | ||
16 | The traditional _root=/dev/sda1_ style device specification is allowed, but not | |
17 | encouraged. The root device should better be identified by LABEL or UUID. If a | |
18 | label is used, as in _root=LABEL=<label_of_root>_ the initramfs will search all | |
19 | available devices for a filesystem with the appropriate label, and mount that | |
20 | device as the root filesystem. _root=UUID=<uuidnumber>_ will mount the partition | |
21 | with that UUID as the root filesystem. | |
22 | ||
23 | In the following all kernel command line parameters, which are processed by | |
24 | dracut, are described. | |
25 | ||
26 | "rd.*" parameters mentioned without "=" are boolean parameters. They can be | |
27 | turned on/off by setting them to {0|1}. If the assignment with "=" is missing | |
28 | "=1" is implied. For example _rd.info_ can be turned off with _rd.info=0_ or | |
29 | turned on with _rd.info=1_ or _rd.info_. The last value in the kernel command | |
30 | line is the value, which is honored. | |
31 | ||
32 | Standard | |
33 | ~~~~~~~~ | |
b6c89768 | 34 | **init=**__<path to real init>__:: |
ae753bae | 35 | specify the path to the init program to be started after the initramfs has |
888d53f2 HH |
36 | finished |
37 | ||
b6c89768 | 38 | **root=**__<path to blockdevice>__:: |
888d53f2 HH |
39 | specify the block device to use as the root filesystem. |
40 | + | |
b6c89768 HH |
41 | [listing] |
42 | .Example | |
43 | -- | |
888d53f2 HH |
44 | root=/dev/sda1 |
45 | root=/dev/disk/by-path/pci-0000:00:1f.1-scsi-0:0:1:0-part1 | |
46 | root=/dev/disk/by-label/Root | |
47 | root=LABEL=Root | |
48 | root=/dev/disk/by-uuid/3f5ad593-4546-4a94-a374-bcfb68aa11f7 | |
49 | root=UUID=3f5ad593-4546-4a94-a374-bcfb68aa11f7 | |
b23a2837 | 50 | root=PARTUUID=3f5ad593-4546-4a94-a374-bcfb68aa11f7 |
b6c89768 | 51 | -- |
888d53f2 | 52 | |
b6c89768 | 53 | **rootfstype=**__<filesystem type>__:: "auto" if not specified. |
888d53f2 | 54 | + |
b6c89768 HH |
55 | [listing] |
56 | .Example | |
57 | -- | |
888d53f2 | 58 | rootfstype=ext3 |
b6c89768 | 59 | -- |
888d53f2 | 60 | |
b6c89768 | 61 | **rootflags=**__<mount options>__:: |
888d53f2 HH |
62 | specify additional mount options for the root filesystem. If not set, |
63 | _/etc/fstab_ of the real root will be parsed for special mount options and | |
64 | mounted accordingly. | |
65 | ||
5afa9579 AŻ |
66 | **ro**:: |
67 | force mounting _/_ and _/usr_ (if it is a separate device) read-only. If | |
68 | none of ro and rw is present, both are mounted according to _/etc/fstab_. | |
69 | ||
70 | **rw**:: | |
71 | force mounting _/_ and _/usr_ (if it is a separate device) read-write. | |
72 | See also ro option. | |
73 | ||
b6c89768 | 74 | **rootfallback=**__<path to blockdevice>__:: |
ef9ddb91 HH |
75 | specify the block device to use as the root filesystem, if the normal root |
76 | cannot be found. This can only be a simple block device with a simple file | |
77 | system, for which the filesystem driver is either compiled in, or added | |
78 | manually to the initramfs. This parameter can be specified multiple times. | |
c4c1c4f4 | 79 | |
a6332e69 | 80 | **rd.auto** **rd.auto=1**:: |
ef9ddb91 HH |
81 | enable autoassembly of special devices like cryptoLUKS, dmraid, mdraid or |
82 | lvm. Default is off as of dracut version >= 024. | |
e0641277 | 83 | |
5a575820 HH |
84 | **rd.hostonly=0**:: |
85 | removes all compiled in configuration of the host system the initramfs image | |
86 | was built on. This helps booting, if any disk layout changed, especially in | |
87 | combination with rd.auto or other parameters specifying the layout. | |
88 | ||
f232f662 HH |
89 | **rd.cmdline=ask**:: |
90 | prompts the user for additional kernel command line parameters | |
91 | ||
888d53f2 HH |
92 | **rd.fstab=0**:: |
93 | do not honor special mount options for the root filesystem found in | |
94 | _/etc/fstab_ of the real root. | |
95 | ||
b6c89768 | 96 | **resume=**__<path to resume partition>__:: |
5d0404e3 | 97 | resume from a swap partition |
97903dfc | 98 | + |
b6c89768 HH |
99 | [listing] |
100 | .Example | |
101 | -- | |
97903dfc HH |
102 | resume=/dev/disk/by-path/pci-0000:00:1f.1-scsi-0:0:1:0-part1 |
103 | resume=/dev/disk/by-uuid/3f5ad593-4546-4a94-a374-bcfb68aa11f7 | |
104 | resume=UUID=3f5ad593-4546-4a94-a374-bcfb68aa11f7 | |
b6c89768 | 105 | -- |
97903dfc | 106 | |
9fb01d49 AŻ |
107 | **rd.skipfsck**:: |
108 | skip fsck for rootfs and _/usr_. If you're mounting _/usr_ read-only and | |
109 | the init system performs fsck before remount, you might want to use this | |
110 | option to avoid duplication. | |
97903dfc | 111 | |
d4ce0e5e HH |
112 | iso-scan/filename |
113 | ~~~~~~~~~~~~~~~~~ | |
114 | ||
115 | Using iso-scan/filename with a Fedora/Red Hat/CentOS Live iso should just work | |
116 | by copying the original kernel cmdline parameters. | |
117 | ||
118 | [listing] | |
119 | .Example | |
120 | -- | |
121 | menuentry 'Live Fedora 20' --class fedora --class gnu-linux --class gnu --class os { | |
122 | set isolabel=Fedora-Live-LXDE-x86_64-20-1 | |
123 | set isofile="/boot/iso/Fedora-Live-LXDE-x86_64-20-1.iso" | |
124 | loopback loop $isofile | |
125 | linux (loop)/isolinux/vmlinuz0 boot=isolinux iso-scan/filename=$isofile root=live:LABEL=$isolabel ro rd.live.image quiet rhgb | |
126 | initrd (loop)/isolinux/initrd0.img | |
127 | } | |
128 | -- | |
2ee48b4b | 129 | |
888d53f2 HH |
130 | Misc |
131 | ~~~~ | |
c45e856a | 132 | **rd.emergency=**__[reboot|poweroff|halt]__:: |
5db79ae4 HH |
133 | specify, what action to execute in case of a critical failure. rd.shell=0 also |
134 | be specified. | |
c45e856a | 135 | |
b6c89768 | 136 | **rd.driver.blacklist=**__<drivername>__[,__<drivername>__,...]:: |
888d53f2 HH |
137 | do not load kernel module <drivername>. This parameter can be specified |
138 | multiple times. | |
139 | ||
b6c89768 | 140 | **rd.driver.pre=**__<drivername>__[,__<drivername>__,...]:: |
888d53f2 HH |
141 | force loading kernel module <drivername>. This parameter can be specified |
142 | multiple times. | |
143 | ||
b6c89768 | 144 | **rd.driver.post=**__<drivername>__[,__<drivername>__,...]:: |
888d53f2 HH |
145 | force loading kernel module <drivername> after all automatic loading modules |
146 | have been loaded. This parameter can be specified multiple times. | |
147 | ||
b6c89768 | 148 | **rd.retry=**__<seconds>__:: |
56663e7e | 149 | specify how long dracut should retry the initqueue to configure devices. |
5cd7c104 | 150 | The default is 30 seconds. After 2/3 of the time, degraded raids are force |
52da8a51 HH |
151 | started. If you have hardware, which takes a very long time to announce its |
152 | drives, you might want to extend this value. | |
5cd7c104 | 153 | |
56663e7e HR |
154 | **rd.timeout=**__<seconds>__:: |
155 | specify how long dracut should wait for devices to appear. The | |
156 | default is '0', which means 'forever'. Note that this timeout | |
157 | should be longer than rd.retry to allow for proper configuration. | |
158 | ||
13cb578a BL |
159 | **rd.noverifyssl**:: |
160 | accept self-signed certificates for ssl downloads. | |
161 | ||
b6c89768 | 162 | **rd.ctty=**__<terminal device>__:: |
14986b9d HH |
163 | specify the controlling terminal for the console. |
164 | This is useful, if you have multiple "console=" arguments. | |
165 | ||
888d53f2 HH |
166 | [[dracutkerneldebug]] |
167 | Debug | |
168 | ~~~~~ | |
ef9ddb91 | 169 | If you are dropped to an emergency shell, the file |
05b879ed | 170 | _/run/initramfs/rdsosreport.txt_ is created, which can be saved to a (to be |
ef9ddb91 HH |
171 | mounted by hand) partition (usually /boot) or a USB stick. Additional debugging |
172 | info can be produced by adding **rd.debug** to the kernel command line. | |
c33488fe | 173 | _/run/initramfs/rdsosreport.txt_ contains all logs and the output of some tools. |
64d144ae HH |
174 | It should be attached to any report about dracut problems. |
175 | ||
888d53f2 HH |
176 | **rd.info**:: |
177 | print informational output though "quiet" is set | |
178 | ||
179 | **rd.shell**:: | |
180 | allow dropping to a shell, if root mounting fails | |
181 | ||
182 | **rd.debug**:: | |
64d144ae | 183 | set -x for the dracut shell. |
ef9ddb91 HH |
184 | If systemd is active in the initramfs, all output is logged to the systemd |
185 | journal, which you can inspect with "journalctl -ab". | |
186 | If systemd is not active, the logs are written to dmesg and | |
187 | _/run/initramfs/init.log_. | |
64d144ae | 188 | If "quiet" is set, it also logs to the console. |
888d53f2 | 189 | |
7a5949ff XP |
190 | **rd.memdebug=[0-4]**:: |
191 | Print memory usage info at various points, set the verbose level from 0 to 4. | |
ef9ddb91 | 192 | + |
9c322b2f | 193 | Higher level means more debugging output: |
b6c89768 HH |
194 | + |
195 | ---- | |
9c322b2f DY |
196 | 0 - no output |
197 | 1 - partial /proc/meminfo | |
198 | 2 - /proc/meminfo | |
199 | 3 - /proc/meminfo + /proc/slabinfo | |
7a5949ff XP |
200 | 4 - /proc/meminfo + /proc/slabinfo + tracekomem |
201 | NOTE: tracekomem is a shell script utilizing kernel trace to track | |
202 | the rough total memory consumption of kernel modules during | |
203 | loading. It may override other trace configurations. | |
b6c89768 | 204 | ---- |
7bd8f233 | 205 | |
888d53f2 HH |
206 | **rd.break**:: |
207 | drop to a shell at the end | |
208 | ||
b6c89768 | 209 | **rd.break=**__{cmdline|pre-udev|pre-trigger|initqueue|pre-mount|mount|pre-pivot|cleanup}__:: |
888d53f2 HH |
210 | drop to a shell on defined breakpoint |
211 | ||
212 | **rd.udev.info**:: | |
213 | set udev to loglevel info | |
214 | ||
215 | **rd.udev.debug**:: | |
216 | set udev to loglevel debug | |
217 | ||
218 | I18N | |
219 | ~~~~ | |
b6c89768 | 220 | **rd.vconsole.keymap=**__<keymap base file name>__:: |
888d53f2 | 221 | keyboard translation table loaded by loadkeys; taken from keymaps directory; |
b6c89768 | 222 | will be written as KEYMAP to _/etc/vconsole.conf_ in the initramfs. |
888d53f2 | 223 | + |
b6c89768 HH |
224 | [listing] |
225 | .Example | |
226 | -- | |
227 | rd.vconsole.keymap=de-latin1-nodeadkeys | |
228 | -- | |
888d53f2 | 229 | |
b6c89768 | 230 | **rd.vconsole.keymap.ext=**__<list of keymap base file names>__:: |
888d53f2 HH |
231 | list of extra keymaps to bo loaded (sep. by space); will be written as |
232 | EXT_KEYMAP to _/etc/vconsole.conf_ in the initramfs | |
233 | ||
b6c89768 | 234 | **rd.vconsole.unicode**:: |
888d53f2 HH |
235 | boolean, indicating UTF-8 mode; will be written as UNICODE to |
236 | _/etc/vconsole.conf_ in the initramfs | |
237 | ||
b6c89768 | 238 | **rd.vconsole.font=**__<font base file name>__:: |
888d53f2 | 239 | console font; taken from consolefonts directory; will be written as FONT to |
b6c89768 | 240 | _/etc/vconsole.conf_ in the initramfs. |
888d53f2 | 241 | + |
b6c89768 HH |
242 | [listing] |
243 | .Example | |
244 | -- | |
42d93d34 | 245 | rd.vconsole.font=eurlatgr |
b6c89768 | 246 | -- |
888d53f2 | 247 | |
b6c89768 | 248 | **rd.vconsole.font.map=**__<console map base file name>__:: |
888d53f2 HH |
249 | see description of '-m' parameter in setfont manual; taken from consoletrans |
250 | directory; will be written as FONT_MAP to _/etc/vconsole.conf_ in the | |
251 | initramfs | |
252 | ||
b6c89768 | 253 | **rd.vconsole.font.unimap=**__<unicode table base file name>__:: |
888d53f2 HH |
254 | see description of '-u' parameter in setfont manual; taken from unimaps |
255 | directory; will be written as FONT_UNIMAP to _/etc/vconsole.conf_ in the | |
256 | initramfs | |
257 | ||
b6c89768 | 258 | **rd.locale.LANG=**__<locale>__:: |
888d53f2 HH |
259 | taken from the environment; if no UNICODE is defined we set its value in |
260 | basis of LANG value (whether it ends with ".utf8" (or similar) or not); will | |
b6c89768 | 261 | be written as LANG to _/etc/locale.conf_ in the initramfs. |
888d53f2 | 262 | + |
b6c89768 HH |
263 | [listing] |
264 | .Example | |
265 | -- | |
266 | rd.locale.LANG=pl_PL.utf8 | |
267 | -- | |
888d53f2 | 268 | |
b6c89768 | 269 | **rd.locale.LC_ALL=**__<locale>__:: |
888d53f2 HH |
270 | taken from the environment; will be written as LC_ALL to _/etc/locale.conf_ |
271 | in the initramfs | |
272 | ||
273 | LVM | |
274 | ~~~ | |
275 | **rd.lvm=0**:: | |
276 | disable LVM detection | |
277 | ||
b6c89768 | 278 | **rd.lvm.vg=**__<volume group name>__:: |
888d53f2 HH |
279 | only activate the volume groups with the given name. rd.lvm.vg can be |
280 | specified multiple times on the kernel command line. | |
281 | ||
b6c89768 | 282 | **rd.lvm.lv=**__<logical volume name>__:: |
888d53f2 HH |
283 | only activate the logical volumes with the given name. rd.lvm.lv can be |
284 | specified multiple times on the kernel command line. | |
285 | ||
286 | **rd.lvm.conf=0**:: | |
287 | remove any _/etc/lvm/lvm.conf_, which may exist in the initramfs | |
288 | ||
289 | crypto LUKS | |
290 | ~~~~~~~~~~~ | |
291 | **rd.luks=0**:: | |
292 | disable crypto LUKS detection | |
293 | ||
b6c89768 | 294 | **rd.luks.uuid=**__<luks uuid>__:: |
888d53f2 HH |
295 | only activate the LUKS partitions with the given UUID. Any "luks-" of the |
296 | LUKS UUID is removed before comparing to _<luks uuid>_. | |
297 | The comparisons also matches, if _<luks uuid>_ is only the beginning of the | |
298 | LUKS UUID, so you don't have to specify the full UUID. | |
299 | This parameter can be specified multiple times. | |
300 | ||
b6c89768 | 301 | **rd.luks.allow-discards=**__<luks uuid>__:: |
ef9ddb91 HH |
302 | Allow using of discards (TRIM) requests for LUKS partitions with the given |
303 | UUID. Any "luks-" of the LUKS UUID is removed before comparing to | |
304 | _<luks uuid>_. The comparisons also matches, if _<luks uuid>_ is only the | |
305 | beginning of the LUKS UUID, so you don't have to specify the full UUID. | |
5ad3803d HH |
306 | This parameter can be specified multiple times. |
307 | ||
f7235c22 | 308 | **rd.luks.allow-discards**:: |
5ad3803d HH |
309 | Allow using of discards (TRIM) requests on all LUKS partitions. |
310 | ||
888d53f2 HH |
311 | **rd.luks.crypttab=0**:: |
312 | do not check, if LUKS partition is in _/etc/crypttab_ | |
313 | ||
c1688560 NP |
314 | **rd.luks.timeout=**__<seconds>__:: |
315 | specify how long dracut should wait when waiting for the user to enter the | |
316 | password. This avoid blocking the boot if no password is entered. It does | |
317 | not apply to luks key. The default is '0', which means 'forever'. | |
318 | ||
888d53f2 HH |
319 | crypto LUKS - key on removable device support |
320 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
7f0b4862 JB |
321 | |
322 | NB: If systemd is included in the dracut initrd, dracut's built in | |
323 | removable device keying support won't work. systemd will prompt for | |
324 | a password from the console even if you've supplied **rd.luks.key**. | |
325 | You may be able to use standard systemd *fstab*(5) syntax to | |
326 | get the same effect. If you do need **rd.luks.key** to work, | |
327 | you will have to exclude the "systemd" dracut module and any modules | |
328 | that depend on it. See *dracut.conf*(5) and | |
329 | https://bugzilla.redhat.com/show_bug.cgi?id=905683 for more | |
330 | information. | |
331 | ||
332 | **rd.luks.key=**_<keypath>[:<keydev>[:<luksdev>]]_:: | |
333 | _<keypath>_ is the pathname of a key file, relative to the root | |
334 | of the filesystem on some device. It's REQUIRED. When | |
335 | _<keypath>_ ends with '.gpg' it's considered to be key encrypted | |
336 | symmetrically with GPG. You will be prompted for the GPG password on | |
337 | boot. GPG support comes with the 'crypt-gpg' module, which needs to be | |
338 | added explicitly. | |
ef9ddb91 | 339 | + |
7f0b4862 JB |
340 | _<keydev>_ identifies the device on which the key file resides. It may |
341 | be the kernel name of the device (should start with "/dev/"), a UUID | |
342 | (prefixed with "UUID=") or a label (prefix with "LABEL="). You don't | |
343 | have to specify a full UUID. Just its beginning will suffice, even if | |
344 | its ambiguous. All matching devices will be probed. This parameter is | |
345 | recommended, but not required. If it's not present, all block devices will | |
346 | be probed, which may significantly increase boot time. | |
ef9ddb91 | 347 | + |
7f0b4862 JB |
348 | If _<luksdev>_ is given, the specified key will only be used for |
349 | the specified LUKS device. Possible values are the same as for | |
350 | _<keydev>_. Unless you have several LUKS devices, you don't have to | |
351 | specify this parameter. The simplest usage is: | |
888d53f2 | 352 | + |
b6c89768 HH |
353 | [listing] |
354 | .Example | |
355 | -- | |
888d53f2 | 356 | rd.luks.key=/foo/bar.key |
b6c89768 | 357 | -- |
888d53f2 HH |
358 | + |
359 | As you see, you can skip colons in such a case. | |
7f0b4862 | 360 | |
173edca0 AŻ |
361 | [NOTE] |
362 | =============================== | |
7f0b4862 JB |
363 | Your LUKS partition must match your key file. |
364 | ||
365 | dracut provides keys to cryptsetup with _-d_ (an older alias for | |
366 | _--key-file_). This uses the entire binary | |
367 | content of the key file as part of the secret. If | |
368 | you pipe a password into cryptsetup *without* _-d_ or _--key-file_, | |
369 | it will be treated as text user input, and only characters before | |
370 | the first newline will be used. Therefore, when you're creating | |
371 | an encrypted partition for dracut to mount, and you pipe a key into | |
372 | _cryptsetup luksFormat_,you must use _-d -_. | |
173edca0 | 373 | |
7f0b4862 JB |
374 | Here is an example for a key encrypted with GPG (warning: |
375 | _--batch-mode_ will overwrite the device without asking for | |
376 | confirmation): | |
173edca0 | 377 | |
b6c89768 HH |
378 | [listing] |
379 | -- | |
380 | gpg --quiet --decrypt rootkey.gpg | \ | |
7f0b4862 JB |
381 | cryptsetup --batch-mode --key-file - \ |
382 | luksFormat /dev/sda47 | |
b6c89768 | 383 | -- |
173edca0 | 384 | |
7f0b4862 JB |
385 | If you use unencrypted key files, just use the key file pathname |
386 | instead of the standard input. For a random key with 256 bits of | |
387 | entropy, you might use: | |
173edca0 | 388 | |
b6c89768 HH |
389 | [listing] |
390 | -- | |
7f0b4862 JB |
391 | head -32c /dev/urandom > rootkey.key |
392 | cryptsetup --batch-mode --key-file rootkey.key \ | |
393 | luksFormat /dev/sda47 | |
b6c89768 | 394 | -- |
173edca0 | 395 | =============================== |
888d53f2 HH |
396 | |
397 | MD RAID | |
398 | ~~~~~~~ | |
399 | **rd.md=0**:: | |
400 | disable MD RAID detection | |
401 | ||
402 | **rd.md.imsm=0**:: | |
403 | disable MD RAID for imsm/isw raids, use DM RAID instead | |
404 | ||
405 | **rd.md.ddf=0**:: | |
406 | disable MD RAID for SNIA ddf raids, use DM RAID instead | |
407 | ||
408 | **rd.md.conf=0**:: | |
409 | ignore mdadm.conf included in initramfs | |
410 | ||
411 | **rd.md.waitclean=1**:: | |
ef9ddb91 HH |
412 | wait for any resync, recovery, or reshape activity to finish before |
413 | continuing | |
888d53f2 | 414 | |
b6c89768 | 415 | **rd.md.uuid=**__<md raid uuid>__:: |
888d53f2 HH |
416 | only activate the raid sets with the given UUID. This parameter can be |
417 | specified multiple times. | |
418 | ||
419 | DM RAID | |
420 | ~~~~~~~ | |
421 | **rd.dm=0**:: | |
422 | disable DM RAID detection | |
423 | ||
b6c89768 | 424 | **rd.dm.uuid=**__<dm raid uuid>__:: |
888d53f2 HH |
425 | only activate the raid sets with the given UUID. This parameter can be |
426 | specified multiple times. | |
427 | ||
778b3543 HH |
428 | MULTIPATH |
429 | ~~~~~~~~~ | |
430 | **rd.multipath=0**:: | |
431 | disable multipath detection | |
432 | ||
888d53f2 HH |
433 | FIPS |
434 | ~~~~ | |
435 | **rd.fips**:: | |
436 | enable FIPS | |
437 | ||
b6c89768 HH |
438 | **boot=**__<boot device>__:: |
439 | specify the device, where /boot is located. | |
888d53f2 | 440 | + |
b6c89768 HH |
441 | [listing] |
442 | .Example | |
443 | -- | |
888d53f2 HH |
444 | boot=/dev/sda1 |
445 | boot=/dev/disk/by-path/pci-0000:00:1f.1-scsi-0:0:1:0-part1 | |
446 | boot=UUID=<uuid> | |
447 | boot=LABEL=<label> | |
b6c89768 | 448 | -- |
888d53f2 HH |
449 | |
450 | **rd.fips.skipkernel**:: | |
451 | skip checksum check of the kernel image. Useful, if the kernel image is not | |
452 | in a separate boot partition. | |
453 | ||
454 | Network | |
455 | ~~~~~~~ | |
b6c89768 HH |
456 | |
457 | [IMPORTANT] | |
458 | ===================== | |
ef9ddb91 HH |
459 | It is recommended to either bind an interface to a MAC with the **ifname** |
460 | argument, or to use the systemd-udevd predictable network interface names. | |
b6c89768 HH |
461 | |
462 | Predictable network interface device names based on: | |
463 | ||
464 | - firmware/bios-provided index numbers for on-board devices | |
465 | - firmware-provided pci-express hotplug slot index number | |
466 | - physical/geographical location of the hardware | |
467 | - the interface's MAC address | |
468 | ||
ef9ddb91 HH |
469 | See: |
470 | http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames | |
b6c89768 HH |
471 | |
472 | Two character prefixes based on the type of interface: | |
473 | ||
474 | en:: ethernet | |
475 | wl:: wlan | |
476 | ww:: wwan | |
477 | ||
478 | Type of names: | |
479 | ||
480 | o<index>:: on-board device index number | |
481 | s<slot>[f<function>][d<dev_id>]:: hotplug slot index number | |
482 | x<MAC>:: MAC address | |
483 | [P<domain>]p<bus>s<slot>[f<function>][d<dev_id>]:: PCI geographical location | |
484 | [P<domain>]p<bus>s<slot>[f<function>][u<port>][..][c<config>][i<interface>]:: USB port number chain | |
485 | ||
486 | All multi-function PCI devices will carry the [f<function>] number in the | |
487 | device name, including the function 0 device. | |
488 | ||
489 | When using PCI geography, The PCI domain is only prepended when it is not 0. | |
490 | ||
491 | For USB devices the full chain of port numbers of hubs is composed. If the | |
492 | name gets longer than the maximum number of 15 characters, the name is not | |
493 | exported. | |
494 | The usual USB configuration == 1 and interface == 0 values are suppressed. | |
495 | ||
496 | PCI ethernet card with firmware index "1":: | |
497 | * eno1 | |
498 | ||
499 | PCI ethernet card in hotplug slot with firmware index number:: | |
500 | * ens1 | |
501 | ||
502 | PCI ethernet multi-function card with 2 ports:: | |
503 | * enp2s0f0 | |
504 | * enp2s0f1 | |
505 | ||
506 | PCI wlan card:: | |
507 | * wlp3s0 | |
508 | ||
509 | USB built-in 3G modem:: | |
510 | * wwp0s29u1u4i6 | |
511 | ||
512 | USB Android phone:: | |
513 | * enp0s29u1u2 | |
514 | ===================== | |
515 | ||
67354eeb | 516 | **ip=**__{dhcp|on|any|dhcp6|auto6|either6}__:: |
ef9ddb91 HH |
517 | dhcp|on|any::: get ip from dhcp server from all interfaces. If root=dhcp, |
518 | loop sequentially through all interfaces (eth0, eth1, ...) and use the first | |
519 | with a valid DHCP root-path. | |
888d53f2 HH |
520 | |
521 | auto6::: IPv6 autoconfiguration | |
522 | ||
523 | dhcp6::: IPv6 DHCP | |
524 | ||
67354eeb PL |
525 | either6::: if auto6 fails, then dhcp6 |
526 | ||
b6c89768 | 527 | **ip=**__<interface>__:__{dhcp|on|any|dhcp6|auto6}__[:[__<mtu>__][:__<macaddr>__]]:: |
888d53f2 HH |
528 | This parameter can be specified multiple times. |
529 | + | |
1760dfc0 | 530 | ===================== |
888d53f2 HH |
531 | dhcp|on|any|dhcp6::: get ip from dhcp server on a specific interface |
532 | auto6::: do IPv6 autoconfiguration | |
1760dfc0 HH |
533 | <macaddr>::: optionally **set** <macaddr> on the <interface>. This |
534 | cannot be used in conjunction with the **ifname** argument for the | |
535 | same <interface>. | |
536 | ===================== | |
537 | ||
0a7d7f63 | 538 | **ip=**__<client-IP>__:[__<peer>__]:__<gateway-IP>__:__<netmask>__:__<client_hostname>__:__<interface>__:__{none|off|dhcp|on|any|dhcp6|auto6|ibft}__[:[__<mtu>__][:__<macaddr>__]]:: |
888d53f2 HH |
539 | explicit network configuration. If you want do define a IPv6 address, put it |
540 | in brackets (e.g. [2001:DB8::1]). This parameter can be specified multiple | |
e38e73d5 | 541 | times. __<peer>__ is optional and is the address of the remote endpoint |
ef9ddb91 HH |
542 | for pointopoint interfaces and it may be followed by a slash and a decimal |
543 | number, encoding the network prefix length. | |
990e945f | 544 | + |
1760dfc0 HH |
545 | ===================== |
546 | <macaddr>::: optionally **set** <macaddr> on the <interface>. This | |
547 | cannot be used in conjunction with the **ifname** argument for the | |
548 | same <interface>. | |
549 | ===================== | |
550 | ||
1982098e HH |
551 | **ip=**__<client-IP>__:[__<peer>__]:__<gateway-IP>__:__<netmask>__:__<client_hostname>__:__<interface>__:__{none|off|dhcp|on|any|dhcp6|auto6|ibft}__[:[__<dns1>__][:__<dns2>__]]:: |
552 | explicit network configuration. If you want do define a IPv6 address, put it | |
553 | in brackets (e.g. [2001:DB8::1]). This parameter can be specified multiple | |
554 | times. __<peer>__ is optional and is the address of the remote endpoint | |
555 | for pointopoint interfaces and it may be followed by a slash and a decimal | |
556 | number, encoding the network prefix length. | |
557 | ||
b6c89768 | 558 | **ifname=**__<interface>__:__<MAC>__:: |
ead8729b | 559 | Assign network device name <interface> (i.e. "bootnet") to the NIC with |
ef9ddb91 | 560 | MAC <MAC>. |
1760dfc0 | 561 | + |
b6c89768 | 562 | WARNING: Do **not** use the default kernel naming scheme for the interface name, |
1760dfc0 HH |
563 | as it can conflict with the kernel names. So, don't use "eth[0-9]+" for the |
564 | interface name. Better name it "bootnet" or "bluesocket". | |
888d53f2 | 565 | |
7b46244b HH |
566 | **rd.route=**__<net>__/__<netmask>__:__<gateway>__[:__<interface>__]:: |
567 | Add a static route with route options, which are separated by a colon. | |
568 | IPv6 addresses have to be put in brackets. | |
569 | + | |
570 | [listing] | |
571 | .Example | |
572 | -- | |
573 | rd.route=192.168.200.0/24:192.168.100.222:ens10 | |
574 | rd.route=192.168.200.0/24:192.168.100.222 | |
575 | rd.route=192.168.200.0/24::ens10 | |
576 | rd.route=[2001:DB8:3::/8]:[2001:DB8:2::1]:ens10 | |
577 | -- | |
578 | ||
b6c89768 | 579 | **bootdev=**__<interface>__:: |
888d53f2 HH |
580 | specify network interface to use routing and netroot information from. |
581 | Required if multiple ip= lines are used. | |
582 | ||
ee993857 HH |
583 | **BOOTIF=**__<MAC>__:: |
584 | specify network interface to use routing and netroot information from. | |
585 | ||
586 | **rd.bootif=0**:: | |
587 | Disable BOOTIF parsing, which is provided by PXE | |
588 | ||
888d53f2 HH |
589 | **nameserver=**__<IP>__ [**nameserver=**__<IP>__ ...]:: |
590 | specify nameserver(s) to use | |
591 | ||
df0bdd5a HH |
592 | **rd.peerdns=0**:: |
593 | Disable DNS setting of DHCP parameters. | |
594 | ||
888d53f2 HH |
595 | **biosdevname=0**:: |
596 | boolean, turn off biosdevname network interface renaming | |
597 | ||
48dba7f9 HH |
598 | **rd.neednet=1**:: |
599 | boolean, bring up network even without netroot set | |
600 | ||
b6c89768 | 601 | **vlan=**__<vlanname>__:__<phydevice>__:: |
144787fe | 602 | Setup vlan device named <vlanname> on <phydeivce>. |
ef9ddb91 HH |
603 | We support the four styles of vlan names: VLAN_PLUS_VID (vlan0005), |
604 | VLAN_PLUS_VID_NO_PAD (vlan5), DEV_PLUS_VID (eth0.0005), | |
605 | DEV_PLUS_VID_NO_PAD (eth0.5) | |
144787fe | 606 | |
65960fda | 607 | **bond=**__<bondname>__[:__<bondslaves>__:[:__<options>__[:<mtu>]]]:: |
c438bdb0 AW |
608 | Setup bonding device <bondname> on top of <bondslaves>. |
609 | <bondslaves> is a comma-separated list of physical (ethernet) interfaces. | |
ef9ddb91 HH |
610 | <options> is a comma-separated list on bonding options (modinfo bonding for |
611 | details) in format compatible with initscripts. If <options> includes | |
612 | multi-valued arp_ip_target option, then its values should be separated by | |
65960fda HH |
613 | semicolon. if the mtu is specified, it will be set on the bond master. |
614 | Bond without parameters assumes | |
ef9ddb91 | 615 | bond=bond0:eth0,eth1:mode=balance-rr |
c438bdb0 | 616 | |
b6c89768 | 617 | **team=**__<teammaster>__:__<teamslaves>__:: |
3baa150b CW |
618 | Setup team device <teammaster> on top of <teamslaves>. |
619 | <teamslaves> is a comma-separated list of physical (ethernet) interfaces. | |
620 | ||
b6c89768 | 621 | **bridge=**__<bridgename>__:__<ethnames>__:: |
21928b97 | 622 | Setup bridge <bridgename> with <ethnames>. <ethnames> is a comma-separated |
ef9ddb91 HH |
623 | list of physical (ethernet) interfaces. Bridge without parameters assumes |
624 | bridge=br0:eth0 | |
9337c692 | 625 | |
888d53f2 HH |
626 | NFS |
627 | ~~~ | |
b6c89768 | 628 | **root=**\[_<server-ip>_:]__<root-dir>__[:__<nfs-options>__]:: |
888d53f2 | 629 | mount nfs share from <server-ip>:/<root-dir>, if no server-ip is given, use |
7b46244b | 630 | dhcp next_server. If server-ip is an IPv6 address it has to be put in |
888d53f2 | 631 | brackets, e.g. [2001:DB8::1]. NFS options can be appended with the prefix |
d0921882 | 632 | ":" or "," and are separated by ",". |
888d53f2 | 633 | |
b6c89768 | 634 | **root=**nfs:\[_<server-ip>_:]__<root-dir>__[:__<nfs-options>__], **root=**nfs4:\[_<server-ip>_:]__<root-dir>__[:__<nfs-options>__], **root=**__{dhcp|dhcp6}__:: |
888d53f2 HH |
635 | root=dhcp alone directs initrd to look at the DHCP root-path where NFS |
636 | options can be specified. | |
637 | + | |
b6c89768 HH |
638 | [listing] |
639 | .Example | |
640 | -- | |
888d53f2 HH |
641 | root-path=<server-ip>:<root-dir>[,<nfs-options>] |
642 | root-path=nfs:<server-ip>:<root-dir>[,<nfs-options>] | |
643 | root-path=nfs4:<server-ip>:<root-dir>[,<nfs-options>] | |
b6c89768 | 644 | -- |
888d53f2 | 645 | |
b6c89768 | 646 | **root=**_/dev/nfs_ nfsroot=\[_<server-ip>_:]__<root-dir>__[:__<nfs-options>__]:: |
888d53f2 HH |
647 | _Deprecated!_ kernel Documentation_/filesystems/nfsroot.txt_ defines this |
648 | method. This is supported by dracut, but not recommended. | |
649 | ||
b6c89768 | 650 | **rd.nfs.domain=**__<NFSv4 domain name>__:: |
85c8217d | 651 | Set the NFSv4 domain name. Will override the settings in _/etc/idmap.conf_. |
888d53f2 | 652 | |
2448fbf1 HH |
653 | **rd.net.dhcp.retry=**__<cnt>__:: |
654 | If this option is set, dracut will try to connect via dhcp <cnt> times before failing. | |
655 | Default is 1. | |
656 | ||
657 | **rd.net.timeout.dhcp=**__<arg>__:: | |
658 | If this option is set, dhclient is called with "-timeout <arg>". | |
659 | ||
660 | **rd.net.timeout.iflink=**__<seconds>__:: | |
661 | Wait <seconds> until link shows up. Default is 60 seconds. | |
662 | ||
663 | **rd.net.timeout.ifup=**__<seconds>__:: | |
664 | Wait <seconds> until link has state "UP". Default is 20 seconds. | |
665 | ||
666 | **rd.net.timeout.route=**__<seconds>__:: | |
667 | Wait <seconds> until route shows up. Default is 20 seconds. | |
668 | ||
669 | **rd.net.timeout.ipv6dad=**__<seconds>__:: | |
670 | Wait <seconds> until IPv6 DAD is finished. Default is 50 seconds. | |
671 | ||
672 | **rd.net.timeout.ipv6auto=**__<seconds>__:: | |
673 | Wait <seconds> until IPv6 automatic addresses are assigned. Default is 40 seconds. | |
674 | ||
675 | **rd.net.timeout.carrier=**__<seconds>__:: | |
676 | Wait <seconds> until carrier is recognized. Default is 5 seconds. | |
677 | ||
d580636e MG |
678 | CIFS |
679 | ~~~ | |
b6c89768 | 680 | **root=**cifs://[__<username>__[:__<password>__]@]__<server-ip>__:__<root-dir>__:: |
d580636e MG |
681 | mount cifs share from <server-ip>:/<root-dir>, if no server-ip is given, use |
682 | dhcp next_server. if server-ip is an IPv6 address it has to be put in | |
683 | brackets, e.g. [2001:DB8::1]. If a username or password are not specified | |
684 | as part of the root, then they must be passed on the command line through | |
685 | cifsuser/cifspass. | |
833685de | 686 | + |
ef9ddb91 HH |
687 | WARNING: Passwords specified on the kernel command line are visible for all |
688 | users via the file _/proc/cmdline_ and via dmesg or can be sniffed on the | |
689 | network, when using DHCP with DHCP root-path. | |
d580636e | 690 | |
b6c89768 | 691 | **cifsuser**=__<username>__:: |
d580636e MG |
692 | Set the cifs username, if not specified as part of the root. |
693 | ||
b6c89768 | 694 | **cifspass**=__<password>__:: |
d580636e | 695 | Set the cifs password, if not specified as part of the root. |
833685de | 696 | + |
ef9ddb91 HH |
697 | WARNING: Passwords specified on the kernel command line are visible for all |
698 | users via the file _/proc/cmdline_ and via dmesg or can be sniffed on the | |
699 | network, when using DHCP with DHCP root-path. | |
d580636e | 700 | |
888d53f2 HH |
701 | iSCSI |
702 | ~~~~~ | |
b6c89768 | 703 | **root=**iscsi:[__<username>__:__<password>__[:__<reverse>__:__<password>__]@][__<servername>__]:[__<protocol>__]:[__<port>__][:[__<iscsi_iface_name>__]:[__<netdev_name>__]]:[__<LUN>__]:__<targetname>__:: |
888d53f2 HH |
704 | protocol defaults to "6", LUN defaults to "0". If the "servername" field is |
705 | provided by BOOTP or DHCP, then that field is used in conjunction with other | |
706 | associated fields to contact the boot server in the Boot stage. However, if | |
707 | the "servername" field is not provided, then the "targetname" field is then | |
708 | used in the Discovery Service stage in conjunction with other associated | |
709 | fields. See | |
710 | link:$$http://tools.ietf.org/html/rfc4173#section-5$$[rfc4173]. | |
888d53f2 | 711 | + |
ef9ddb91 HH |
712 | WARNING: Passwords specified on the kernel command line are visible for all |
713 | users via the file _/proc/cmdline_ and via dmesg or can be sniffed on the | |
714 | network, when using DHCP with DHCP root-path. | |
b6c89768 HH |
715 | + |
716 | [listing] | |
717 | .Example | |
718 | -- | |
888d53f2 | 719 | root=iscsi:192.168.50.1::::iqn.2009-06.dracut:target0 |
b6c89768 | 720 | -- |
888d53f2 | 721 | + |
b6c89768 | 722 | If servername is an IPv6 address, it has to be put in brackets: |
888d53f2 | 723 | + |
b6c89768 HH |
724 | [listing] |
725 | .Example | |
726 | -- | |
888d53f2 | 727 | root=iscsi:[2001:DB8::1]::::iqn.2009-06.dracut:target0 |
b6c89768 | 728 | -- |
888d53f2 | 729 | |
b6c89768 HH |
730 | **root=**__???__ **netroot=**iscsi:[__<username>__:__<password>__[:__<reverse>__:__<password>__]@][__<servername>__]:[__<protocol>__]:[__<port>__][:[__<iscsi_iface_name>__]:[__<netdev_name>__]]:[__<LUN>__]:__<targetname>__ ...:: |
731 | multiple netroot options allow setting up multiple iscsi disks: | |
888d53f2 | 732 | + |
b6c89768 HH |
733 | [listing] |
734 | .Example | |
735 | -- | |
888d53f2 HH |
736 | root=UUID=12424547 |
737 | netroot=iscsi:192.168.50.1::::iqn.2009-06.dracut:target0 | |
738 | netroot=iscsi:192.168.50.1::::iqn.2009-06.dracut:target1 | |
b6c89768 | 739 | -- |
888d53f2 | 740 | + |
b6c89768 | 741 | If servername is an IPv6 address, it has to be put in brackets: |
888d53f2 | 742 | + |
b6c89768 HH |
743 | [listing] |
744 | .Example | |
745 | -- | |
888d53f2 | 746 | netroot=iscsi:[2001:DB8::1]::::iqn.2009-06.dracut:target0 |
b6c89768 | 747 | -- |
833685de | 748 | + |
ef9ddb91 HH |
749 | WARNING: Passwords specified on the kernel command line are visible for all |
750 | users via the file _/proc/cmdline_ and via dmesg or can be sniffed on the | |
751 | network, when using DHCP with DHCP root-path. | |
752 | You may want to use rd.iscsi.firmware. | |
888d53f2 | 753 | |
b6c89768 | 754 | **root=**__???__ **rd.iscsi.initiator=**__<initiator>__ **rd.iscsi.target.name=**__<target name>__ **rd.iscsi.target.ip=**__<target ip>__ **rd.iscsi.target.port=**__<target port>__ **rd.iscsi.target.group=**__<target group>__ **rd.iscsi.username=**__<username>__ **rd.iscsi.password=**__<password>__ **rd.iscsi.in.username=**__<in username>__ **rd.iscsi.in.password=**__<in password>__:: |
888d53f2 | 755 | manually specify all iscsistart parameter (see **+iscsistart --help+**) |
833685de | 756 | + |
ef9ddb91 HH |
757 | WARNING: Passwords specified on the kernel command line are visible for all |
758 | users via the file _/proc/cmdline_ and via dmesg or can be sniffed on the | |
759 | network, when using DHCP with DHCP root-path. | |
760 | You may want to use rd.iscsi.firmware. | |
888d53f2 HH |
761 | |
762 | **root=**_???_ **netroot=**iscsi **rd.iscsi.firmware=1**:: | |
763 | will read the iscsi parameter from the BIOS firmware | |
764 | ||
6ccb58a5 HH |
765 | **rd.iscsi.login_retry_max=**__<num>__:: |
766 | maximum number of login retries | |
767 | ||
b6c89768 | 768 | **rd.iscsi.param=**__<param>__:: |
8d51acbb HH |
769 | <param> will be passed as "--param <param>" to iscsistart. |
770 | This parameter can be specified multiple times. | |
8d51acbb | 771 | + |
b6c89768 HH |
772 | [listing] |
773 | .Example | |
774 | -- | |
833685de | 775 | "netroot=iscsi rd.iscsi.firmware=1 rd.iscsi.param=node.session.timeo.replacement_timeout=30" |
b6c89768 | 776 | -- |
8d51acbb HH |
777 | + |
778 | will result in | |
779 | + | |
b6c89768 HH |
780 | [listing] |
781 | -- | |
8d51acbb | 782 | iscsistart -b --param node.session.timeo.replacement_timeout=30 |
b6c89768 | 783 | -- |
8d51acbb | 784 | |
5580e4c1 HH |
785 | **rd.iscsi.ibft** **rd.iscsi.ibft=1**: |
786 | Turn on iBFT autoconfiguration for the interfaces | |
787 | ||
69171aa8 HH |
788 | **rd.iscsi.waitnet=0**: |
789 | Turn off waiting for all interfaces to be up before trying to login to the iSCSI targets. | |
790 | ||
791 | **rd.iscsi.testroute=0**: | |
792 | Turn off checking, if the route to the iSCSI target IP is possible before trying to login. | |
793 | ||
888d53f2 HH |
794 | FCoE |
795 | ~~~~ | |
7c6d2ad9 PT |
796 | **rd.nofcoe=0**:: |
797 | disable FCoE and lldpad | |
798 | ||
c75196e1 | 799 | **fcoe=**__<edd|interface|MAC>__:__{dcb|nodcb}__:__{fabric|vn2vn}__:: |
888d53f2 | 800 | Try to connect to a FCoE SAN through the NIC specified by _<interface>_ or |
c75196e1 HR |
801 | _<MAC>_ or EDD settings. The second argument specifies if DCB |
802 | should be used. The optional third argument specifies whether | |
803 | fabric or VN2VN mode should be used. | |
804 | This parameter can be specified multiple times. | |
1760dfc0 | 805 | + |
b6c89768 | 806 | NOTE: letters in the MAC-address must be lowercase! |
888d53f2 HH |
807 | |
808 | NBD | |
809 | ~~~ | |
b070c1d3 HH |
810 | **root=**??? **netroot=**nbd:__<server>__:__<port/exportname>__[:__<fstype>__[:__<mountopts>__[:__<nbdopts>__]]]:: |
811 | mount nbd share from <server>. | |
812 | + | |
813 | NOTE: | |
814 | If "exportname" instead of "port" is given the standard port is used. | |
815 | Newer versions of nbd are only supported with "exportname". | |
888d53f2 | 816 | |
b070c1d3 | 817 | **root=dhcp** with **dhcp** **root-path=**nbd:__<server>__:__<port/exportname>__[:__<fstype>__[:__<mountopts>__[:__<nbdopts>__]]]:: |
888d53f2 HH |
818 | root=dhcp alone directs initrd to look at the DHCP root-path where NBD |
819 | options can be specified. This syntax is only usable in cases where you are | |
820 | directly mounting the volume as the rootfs. | |
b070c1d3 HH |
821 | + |
822 | NOTE: | |
823 | If "exportname" instead of "port" is given the standard port is used. | |
824 | Newer versions of nbd are only supported with "exportname". | |
888d53f2 HH |
825 | |
826 | DASD | |
827 | ~~~~ | |
4d76a85d | 828 | **rd.dasd=**....:: |
888d53f2 HH |
829 | same syntax as the kernel module parameter (s390 only) |
830 | ||
888d53f2 HH |
831 | ZFCP |
832 | ~~~~ | |
b6c89768 | 833 | **rd.zfcp=**__<zfcp adaptor device bus ID>__,__<WWPN>__,__<FCPLUN>__:: |
c8aa1d94 HR |
834 | rd.zfcp can be specified multiple times on the kernel command |
835 | line. | |
836 | ||
837 | **rd.zfcp=**__<zfcp adaptor device bus ID>__:: | |
838 | If NPIV is enabled and the 'allow_lun_scan' parameter to the zfcp | |
839 | module is set to 'Y' then the zfcp adaptor will be initiating a | |
840 | scan internally and the <WWPN> and <FCPLUN> parameters can be omitted. | |
888d53f2 | 841 | + |
b6c89768 HH |
842 | [listing] |
843 | .Example | |
844 | -- | |
888d53f2 | 845 | rd.zfcp=0.0.4000,0x5005076300C213e9,0x5022000000000000 |
c8aa1d94 | 846 | rd.zfcp=0.0.4000 |
b6c89768 | 847 | -- |
888d53f2 HH |
848 | |
849 | **rd.zfcp.conf=0**:: | |
850 | ignore zfcp.conf included in the initramfs | |
851 | ||
852 | ZNET | |
853 | ~~~~ | |
b6c89768 | 854 | **rd.znet=**__<nettype>__,__<subchannels>__,__<options>__:: |
a5420672 HH |
855 | The whole parameter is appended to /etc/ccw.conf, which is used on |
856 | RHEL/Fedora with ccw_init, which is called from udev for certain | |
857 | devices on z-series. | |
b6c89768 | 858 | rd.znet can be specified multiple times on the kernel command line. |
888d53f2 | 859 | + |
b6c89768 HH |
860 | [listing] |
861 | .Example | |
862 | -- | |
888d53f2 | 863 | rd.znet=qeth,0.0.0600,0.0.0601,0.0.0602,layer2=1,portname=foo |
62fd2b36 | 864 | rd.znet=ctc,0.0.0600,0.0.0601,protocol=bar |
b6c89768 | 865 | -- |
888d53f2 | 866 | |
504c0a8f MH |
867 | Booting live images |
868 | ~~~~~~~~~~~~~~~~~~~ | |
869 | Dracut offers multiple options for live booted images: | |
870 | ||
871 | ===================== | |
789668de FG |
872 | SquashFS with read-only filesystem image::: The system will boot with a |
873 | read-only filesystem from the SquashFS and apply a writable Device-mapper | |
874 | snapshot or an OverlayFS overlay mount for the read-only base filesystem. This | |
875 | method ensures a relatively fast boot and lower RAM usage. Users **must be | |
876 | careful** to avoid writing too many blocks to a snapshot volume. Once the | |
877 | blocks of the snapshot overlay are exhausted, the root filesystem becomes | |
878 | read-only and may cause application failures. The snapshot overlay file is | |
879 | marked 'Overflow', and a difficult recovery is required to repair and enlarge | |
880 | the overlay offline. Non-persistent overlays are sparse files in RAM that only | |
881 | consume content space as required blocks are allocated. They default to an | |
882 | apparent size of 32 GiB in RAM. The size can be adjusted with the | |
883 | **rd.live.overlay.size=** kernel command line option. | |
504c0a8f | 884 | + |
789668de | 885 | The filesystem structure is traditionally expected to be: |
504c0a8f MH |
886 | + |
887 | [listing] | |
888 | -- | |
789668de | 889 | squashfs.img | SquashFS from LiveCD .iso |
504c0a8f MH |
890 | !(mount) |
891 | /LiveOS | |
ea288240 | 892 | |- rootfs.img | Filesystem image to mount read-only |
504c0a8f MH |
893 | !(mount) |
894 | /bin | Live filesystem | |
895 | /boot | | |
896 | /dev | | |
897 | ... | | |
898 | -- | |
899 | + | |
789668de FG |
900 | For OverlayFS mount overlays, the filesystem structure may also be a direct |
901 | compression of the root filesystem: | |
902 | + | |
903 | [listing] | |
904 | -- | |
905 | squashfs.img | SquashFS from LiveCD .iso | |
906 | !(mount) | |
907 | /bin | Live filesystem | |
908 | /boot | | |
909 | /dev | | |
910 | ... | | |
911 | -- | |
912 | + | |
913 | Dracut uses one of the overlay methods of live booting by default. No | |
914 | additional command line options are required other than **root=live:<URL>** to | |
915 | specify the location of your squashed filesystem. | |
504c0a8f | 916 | + |
33a4198e FG |
917 | - The compressed SquashFS image can be copied during boot to RAM at |
918 | `/run/initramfs/squashed.img` by using the **rd.live.ram=1** option. | |
789668de | 919 | - A device with a persistent overlay can be booted read-only by using the |
33a4198e | 920 | **rd.live.overlay.readonly** option on the kernel command line. This will |
789668de FG |
921 | either cause a temporary, writable overlay to be stacked over a read-only |
922 | snapshot of the root filesystem or the OverlayFS mount will use an additional | |
923 | lower layer with the root filesystem. | |
33a4198e FG |
924 | + |
925 | Uncompressed live filesystem image::: | |
926 | When the live system was installed with the '--skipcompress' option of the | |
927 | __livecd-iso-to-disk__ installation script for Live USB devices, the root | |
789668de | 928 | filesystem image, __rootfs.img__, is expanded on installation and no SquashFS |
33a4198e FG |
929 | is involved during boot. |
930 | + | |
931 | - If **rd.live.ram=1** is used in this situation, the full, uncompressed | |
932 | root filesystem is copied during boot to `/run/initramfs/rootfs.img` in the | |
933 | `/run` tmpfs. | |
934 | + | |
935 | - If **rd.live.overlay=none** is provided as a kernel command line option, | |
789668de | 936 | a writable, linear Device-mapper target is created on boot with no overlay. |
33a4198e | 937 | |
789668de | 938 | Writable filesystem image::: |
33a4198e FG |
939 | The system will retrieve a compressed filesystem image, extract it to |
940 | `/run/initramfs/fsimg/rootfs.img`, connect it to a loop device, create a | |
789668de | 941 | writable, linear Device-mapper target at `/dev/mapper/live-rw`, and mount that |
33a4198e FG |
942 | as a writable volume at `/`. More RAM is required during boot but the live |
943 | filesystem is easier to manage if it becomes full. Users can make a filesystem | |
944 | image of any size and that size will be maintained when the system boots. There | |
945 | is no persistence of root filesystem changes between boots with this option. | |
504c0a8f MH |
946 | + |
947 | The filesystem structure is expected to be: | |
948 | + | |
949 | [listing] | |
950 | -- | |
789668de | 951 | rootfs.tgz | Compressed tarball containing filesystem image |
504c0a8f | 952 | !(unpack) |
33a4198e | 953 | /rootfs.img | Filesystem image at /run/initramfs/fsimg/ |
504c0a8f MH |
954 | !(mount) |
955 | /bin | Live filesystem | |
956 | /boot | | |
957 | /dev | | |
958 | ... | | |
959 | -- | |
960 | + | |
33a4198e | 961 | To use this boot option, ensure that **rd.writable.fsimg=1** is in your kernel |
504c0a8f | 962 | command line and add the **root=live:<URL>** to specify the location |
33a4198e | 963 | of your compressed filesystem image tarball or SquashFS image. |
504c0a8f MH |
964 | ===================== |
965 | ||
33a4198e FG |
966 | **rd.writable.fsimg=**1:: |
967 | Enables writable filesystem support. The system will boot with a fully | |
968 | writable (but non-persistent) filesystem without snapshots __(see notes above | |
969 | about available live boot options)__. You can use the **rootflags** option to | |
970 | set mount options for the live filesystem as well __(see documentation about | |
971 | rootflags in the **Standard** section above)__. | |
972 | This implies that the whole image is copied to RAM before the boot continues. | |
973 | + | |
974 | NOTE: There must be enough free RAM available to hold the complete image. | |
975 | + | |
976 | This method is very suitable for diskless boots. | |
977 | ||
504c0a8f | 978 | **root=**live:__<url>__:: |
789668de FG |
979 | Boots a live image retrieved from __<url>__. Requires the dracut 'livenet' |
980 | module. Valid handlers: __http, https, ftp, torrent, tftp__. | |
504c0a8f MH |
981 | + |
982 | [listing] | |
789668de | 983 | .Examples |
504c0a8f MH |
984 | -- |
985 | root=live:http://example.com/liveboot.img | |
986 | root=live:ftp://ftp.example.com/liveboot.img | |
338bad63 | 987 | root=live:torrent://example.com/liveboot.img.torrent |
504c0a8f MH |
988 | -- |
989 | ||
990 | **rd.live.debug=**1:: | |
991 | Enables debug output from the live boot process. | |
992 | ||
993 | **rd.live.dir=**__<path>__:: | |
ea288240 | 994 | Specifies the directory within the boot device where the squashfs.img or |
789668de | 995 | rootfs.img can be found. By default, this is `/LiveOS`. |
504c0a8f | 996 | |
33a4198e FG |
997 | **rd.live.squashimg=**__<filename of SquashFS image>__:: |
998 | Specifies the filename for a SquashFS image of the root filesystem. | |
999 | By default, this is __squashfs.img__. | |
1000 | ||
b0472eac FD |
1001 | **rd.live.ram=**1:: |
1002 | Copy the complete image to RAM and use this for booting. This is useful | |
789668de | 1003 | when the image resides on, e.g., a DVD which needs to be ejected later on. |
b0472eac | 1004 | |
e791d753 | 1005 | **rd.live.overlay={**__<devspec>__[:__{<pathspec>|auto}__]|__none__}:: |
789668de FG |
1006 | Manage the usage of a permanent overlay. |
1007 | + | |
1008 | -- | |
1009 | * _<devspec>_ specifies the path to a device with a mountable filesystem. | |
1010 | * _<pathspec>_ is the path to a file within that filesystem, which shall be | |
33a4198e FG |
1011 | used to persist the changes made to the device specified by the |
1012 | **root=live:__<url>__** option. | |
789668de FG |
1013 | + |
1014 | The default _pathspec_, when _auto_ or no _:<pathspec>_ is given, is | |
1015 | `/<+++<b>rd.live.dir</b>+++>/overlay-<label>-<uuid>`, where _<label>_ is the | |
1016 | device LABEL, and _<uuid>_ is the device UUID. | |
1017 | * _none_ (the word itself) specifies that no overlay will be used, such as when | |
1018 | an uncompressed, writable live root filesystem is available. | |
1019 | + | |
1020 | If a persistent overlay __is detected__ at the standard LiveOS path, the | |
1021 | overlay & overlay type detected, whether Device-mapper or OverlayFS, will be | |
1022 | used. | |
1023 | -- | |
a1b4efe6 FD |
1024 | + |
1025 | [listing] | |
789668de | 1026 | .Examples |
a1b4efe6 FD |
1027 | -- |
1028 | rd.live.overlay=/dev/sdb1:persistent-overlay.img | |
789668de | 1029 | rd.live.overlay=UUID=99440c1f-8daa-41bf-b965-b7240a8996f4 |
a1b4efe6 FD |
1030 | -- |
1031 | ||
33a4198e | 1032 | **rd.live.overlay.size=**__<size_MiB>__:: |
789668de FG |
1033 | Specifies a non-persistent Device-mapper overlay size in MiB. The default is |
1034 | _32768_. | |
33a4198e FG |
1035 | |
1036 | **rd.live.overlay.readonly=**1:: | |
789668de FG |
1037 | This is used to boot with a normally read-write persistent overlay in a |
1038 | read-only mode. With this option, either an additional, non-persistent, | |
1039 | writable snapshot overlay will be stacked over a read-only snapshot, | |
1040 | `/dev/mapper/live‑ro`, of the base filesystem with the persistent overlay, or a | |
1041 | read-only loop device, in the case of a writable __rootfs.img__, or an OverlayFS | |
1042 | mount will use the persistent overlay directory linked at `/run/overlayfs‑r` as | |
1043 | an additional lower layer along with the base root filesystem and apply a | |
1044 | transient, writable upper directory overlay, in order to complete the booted | |
1045 | root filesystem. | |
33a4198e FG |
1046 | |
1047 | **rd.live.overlay.reset=**1:: | |
789668de | 1048 | Specifies that a persistent overlay should be reset on boot. All previous root |
33a4198e FG |
1049 | filesystem changes are vacated by this action. |
1050 | ||
d6e34d36 FD |
1051 | **rd.live.overlay.thin=**1:: |
1052 | Enables the usage of thin snapshots instead of classic dm snapshots. | |
33a4198e FG |
1053 | The advantage of thin snapshots is that they support discards, and will free |
1054 | blocks that are not claimed by the filesystem. In this use case, this means | |
1055 | that memory is given back to the kernel when the filesystem does not claim it | |
d6e34d36 FD |
1056 | anymore. |
1057 | ||
ea288240 | 1058 | **rd.live.overlay.overlayfs=**1:: |
789668de | 1059 | Enables the use of the *OverlayFS* kernel module, if available, to provide a |
ea288240 FG |
1060 | copy-on-write union directory for the root filesystem. OverlayFS overlays are |
1061 | directories of the files that have changed on the read-only base (lower) | |
1062 | filesystem. The root filesystem is provided through a special overlay type | |
1063 | mount that merges the lower and upper directories. If an OverlayFS upper | |
1064 | directory is not present on the boot device, a tmpfs directory will be created | |
789668de | 1065 | at `/run/overlayfs` to provide temporary storage. Persistent storage can be |
ea288240 FG |
1066 | provided on vfat or msdos formatted devices by supplying the OverlayFS upper |
1067 | directory within an embedded filesystem that supports the creation of trusted.* | |
1068 | extended attributes and provides a valid d_type in readdir responses, such as | |
1069 | with ext4 and xfs. On non-vfat-formatted devices, a persistent OverlayFS | |
1070 | overlay can extend the available root filesystem storage up to the capacity of | |
789668de | 1071 | the LiveOS disk device. |
e791d753 | 1072 | + |
ea288240 | 1073 | If a persistent overlay is detected at the standard LiveOS path, the overlay & |
789668de | 1074 | overlay type detected, whether OverlayFS or Device-mapper, will be used. |
e791d753 | 1075 | + |
ea288240 | 1076 | The **rd.live.overlay.readonly** option, which allows a persistent overlayfs to |
789668de | 1077 | be mounted read-only through a higher level transient overlay directory, has |
ea288240 FG |
1078 | been implemented through the multiple lower layers feature of OverlayFS. |
1079 | ||
504c0a8f | 1080 | |
ea7ffef1 HR |
1081 | ZIPL |
1082 | ~~~~ | |
1083 | **rd.zipl=**__<path to blockdevice>__:: | |
1084 | Update the dracut commandline with the values found in the | |
1085 | _dracut-cmdline.conf_ file on the given device. | |
1086 | The values are merged into the existing commandline values | |
1087 | and the udev events are regenerated. | |
1088 | + | |
1089 | [listing] | |
1090 | .Example | |
1091 | -- | |
1092 | rd.zipl=UUID=0fb28157-99e3-4395-adef-da3f7d44835a | |
1093 | -- | |
1094 | ||
637fb762 HR |
1095 | CIO_IGNORE |
1096 | ~~~~~~~~~~ | |
1097 | **rd.cio_accept=**__<device-ids>__:: | |
1098 | Remove the devices listed in <device-ids> from the default | |
1099 | cio_ignore kernel command-line settings. | |
1100 | <device-ids> is a list of comma-separated CCW device ids. | |
1101 | The default for this value is taken from the | |
1102 | _/boot/zipl/active_devices.txt_ file. | |
1103 | + | |
1104 | [listing] | |
1105 | .Example | |
1106 | -- | |
1107 | rd.cio_accept=0.0.0180,0.0.0800,0.0.0801,0.0.0802 | |
1108 | -- | |
1109 | ||
888d53f2 HH |
1110 | Plymouth Boot Splash |
1111 | ~~~~~~~~~~~~~~~~~~~~ | |
1112 | **plymouth.enable=0**:: | |
504c0a8f | 1113 | disable the plymouth bootsplash completely. |
888d53f2 HH |
1114 | |
1115 | **rd.plymouth=0**:: | |
1116 | disable the plymouth bootsplash only for the initramfs. | |
1117 | ||
1118 | Kernel keys | |
1119 | ~~~~~~~~~~~ | |
b6c89768 HH |
1120 | **masterkey=**__<kernel master key path name>__:: |
1121 | Set the path name of the kernel master key. | |
888d53f2 | 1122 | + |
b6c89768 HH |
1123 | [listing] |
1124 | .Example | |
1125 | -- | |
888d53f2 | 1126 | masterkey=/etc/keys/kmk-trusted.blob |
b6c89768 | 1127 | -- |
888d53f2 | 1128 | |
b6c89768 HH |
1129 | **masterkeytype=**__<kernel master key type>__:: |
1130 | Set the type of the kernel master key. | |
888d53f2 | 1131 | + |
b6c89768 HH |
1132 | [listing] |
1133 | .Example | |
1134 | -- | |
888d53f2 | 1135 | masterkeytype=trusted |
b6c89768 | 1136 | -- |
888d53f2 | 1137 | |
b6c89768 HH |
1138 | **evmkey=**__<EVM key path name>__:: |
1139 | Set the path name of the EVM key. | |
888d53f2 | 1140 | + |
b6c89768 HH |
1141 | [listing] |
1142 | .Example | |
1143 | -- | |
888d53f2 | 1144 | evmkey=/etc/keys/evm-trusted.blob |
b6c89768 | 1145 | -- |
888d53f2 | 1146 | |
b6c89768 HH |
1147 | **ecryptfskey=**__<eCryptfs key path name>__:: |
1148 | Set the path name of the eCryptfs key. | |
888d53f2 | 1149 | + |
b6c89768 HH |
1150 | [listing] |
1151 | .Example | |
1152 | -- | |
888d53f2 | 1153 | ecryptfskey=/etc/keys/ecryptfs-trusted.blob |
b6c89768 | 1154 | -- |
888d53f2 HH |
1155 | |
1156 | Deprecated, renamed Options | |
1157 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
ef9ddb91 HH |
1158 | Here is a list of options, which were used in dracut prior to version 008, and |
1159 | their new replacement. | |
888d53f2 HH |
1160 | |
1161 | rdbreak:: rd.break | |
1162 | ||
a5420672 HH |
1163 | rd.ccw:: rd.znet |
1164 | rd_CCW:: rd.znet | |
888d53f2 | 1165 | |
4d76a85d | 1166 | rd_DASD_MOD:: rd.dasd |
888d53f2 HH |
1167 | |
1168 | rd_DASD:: rd.dasd | |
1169 | ||
1170 | rdinitdebug rdnetdebug:: rd.debug | |
1171 | ||
1172 | rd_NO_DM:: rd.dm=0 | |
1173 | ||
1174 | rd_DM_UUID:: rd.dm.uuid | |
1175 | ||
1176 | rdblacklist:: rd.driver.blacklist | |
1177 | ||
1178 | rdinsmodpost:: rd.driver.post | |
1179 | ||
1180 | rdloaddriver:: rd.driver.pre | |
1181 | ||
1182 | rd_NO_FSTAB:: rd.fstab=0 | |
1183 | ||
1184 | rdinfo:: rd.info | |
1185 | ||
1186 | check:: rd.live.check | |
1187 | ||
1188 | rdlivedebug:: rd.live.debug | |
1189 | ||
1190 | live_dir:: rd.live.dir | |
1191 | ||
1192 | liveimg:: rd.live.image | |
1193 | ||
1194 | overlay:: rd.live.overlay | |
1195 | ||
1196 | readonly_overlay:: rd.live.overlay.readonly | |
1197 | ||
1198 | reset_overlay:: rd.live.overlay.reset | |
1199 | ||
1200 | live_ram:: rd.live.ram | |
1201 | ||
1202 | rd_NO_CRYPTTAB:: rd.luks.crypttab=0 | |
1203 | ||
1204 | rd_LUKS_KEYDEV_UUID:: rd.luks.keydev.uuid | |
1205 | ||
1206 | rd_LUKS_KEYPATH:: rd.luks.keypath | |
1207 | ||
1208 | rd_NO_LUKS:: rd.luks=0 | |
1209 | ||
1210 | rd_LUKS_UUID:: rd.luks.uuid | |
1211 | ||
1212 | rd_NO_LVMCONF:: rd.lvm.conf | |
1213 | ||
1214 | rd_LVM_LV:: rd.lvm.lv | |
1215 | ||
1216 | rd_NO_LVM:: rd.lvm=0 | |
1217 | ||
1218 | rd_LVM_SNAPSHOT:: rd.lvm.snapshot | |
1219 | ||
1220 | rd_LVM_SNAPSIZE:: rd.lvm.snapsize | |
1221 | ||
1222 | rd_LVM_VG:: rd.lvm.vg | |
1223 | ||
1224 | rd_NO_MDADMCONF:: rd.md.conf=0 | |
1225 | ||
1226 | rd_NO_MDIMSM:: rd.md.imsm=0 | |
1227 | ||
1228 | rd_NO_MD:: rd.md=0 | |
1229 | ||
1230 | rd_MD_UUID:: rd.md.uuid | |
1231 | ||
778b3543 HH |
1232 | rd_NO_MULTIPATH: rd.multipath=0 |
1233 | ||
888d53f2 HH |
1234 | rd_NFS_DOMAIN:: rd.nfs.domain |
1235 | ||
1236 | iscsi_initiator:: rd.iscsi.initiator | |
1237 | ||
1238 | iscsi_target_name:: rd.iscsi.target.name | |
1239 | ||
1240 | iscsi_target_ip:: rd.iscsi.target.ip | |
1241 | ||
1242 | iscsi_target_port:: rd.iscsi.target.port | |
1243 | ||
1244 | iscsi_target_group:: rd.iscsi.target.group | |
1245 | ||
1246 | iscsi_username:: rd.iscsi.username | |
1247 | ||
1248 | iscsi_password:: rd.iscsi.password | |
1249 | ||
1250 | iscsi_in_username:: rd.iscsi.in.username | |
1251 | ||
1252 | iscsi_in_password:: rd.iscsi.in.password | |
1253 | ||
1254 | iscsi_firmware:: rd.iscsi.firmware=0 | |
1255 | ||
1256 | rd_NO_PLYMOUTH:: rd.plymouth=0 | |
1257 | ||
1258 | rd_retry:: rd.retry | |
1259 | ||
1260 | rdshell:: rd.shell | |
1261 | ||
1262 | rd_NO_SPLASH:: rd.splash | |
1263 | ||
1264 | rdudevdebug:: rd.udev.debug | |
1265 | ||
1266 | rdudevinfo:: rd.udev.info | |
1267 | ||
1268 | rd_NO_ZFCPCONF:: rd.zfcp.conf=0 | |
1269 | ||
1270 | rd_ZFCP:: rd.zfcp | |
1271 | ||
1272 | rd_ZNET:: rd.znet | |
1273 | ||
1274 | KEYMAP:: vconsole.keymap | |
1275 | ||
1276 | KEYTABLE:: vconsole.keymap | |
1277 | ||
1278 | SYSFONT:: vconsole.font | |
1279 | ||
1280 | CONTRANS:: vconsole.font.map | |
1281 | ||
1282 | UNIMAP:: vconsole.font.unimap | |
1283 | ||
1284 | UNICODE:: vconsole.unicode | |
1285 | ||
1286 | EXT_KEYMAP:: vconsole.keymap.ext | |
1287 | ||
1288 | Configuration in the Initramfs | |
1289 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
1290 | _/etc/conf.d/_:: | |
1291 | Any files found in _/etc/conf.d/_ will be sourced in the initramfs to | |
1292 | set initial values. Command line options will override these values | |
1293 | set in the configuration files. | |
1294 | ||
1295 | _/etc/cmdline_:: | |
ef9ddb91 HH |
1296 | Can contain additional command line options. Deprecated, better use |
1297 | /etc/cmdline.d/*.conf. | |
888d53f2 HH |
1298 | |
1299 | _/etc/cmdline.d/*.conf_:: | |
1300 | Can contain additional command line options. | |
1301 | ||
1302 | AUTHOR | |
1303 | ------ | |
9f355169 | 1304 | Harald Hoyer |
888d53f2 HH |
1305 | |
1306 | SEE ALSO | |
1307 | -------- | |
1308 | *dracut*(8) *dracut.conf*(5) |