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