summaryrefslogtreecommitdiff
path: root/dracut.8.asc
blob: 714ba858e847ff54de6becc757989fae7fe6ae7a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
DRACUT(8)
=========
:doctype: manpage
:man source:   dracut
:man manual:   dracut

NAME
----
dracut - low-level tool for generating an initramfs image

SYNOPSIS
--------
*dracut* ['OPTION...'] [<image> [_<kernel version>_]]

DESCRIPTION
-----------

Create an initramfs <image> for the kernel with the version <kernel version>.
If <kernel version> is omitted, then the version of the actual running
kernel is used. If <image> is omitted or empty, then the default location
/boot/initramfs-<kernel version>.img is used.

dracut creates an initial image used by the kernel for preloading the block
device modules (such as IDE, SCSI or RAID) which are needed to access the root
filesystem, mounting the root filesystem and booting into the real system.

At boot time, the kernel unpacks that archive into RAM disk, mounts and uses it
as initial root file system. All finding of the root device happens in this
early userspace.

For a complete list of kernel command line options see *dracut.cmdline*(7).

If you are dropped to an emergency shell, while booting your initramfs,
the file _/run/initramfs/rdsosreport.txt_ is created, which can be safed to a
(to be mounted by hand) partition (usually /boot) or a USB stick.
Additional debugging info can be produced by adding **rd.debug** to the kernel command line.
_/run/initramfs/rdsosreport.txt_ contains all logs and the output of some tools.
It should be attached to any report about dracut problems.

EXAMPLE
-------

To create a initramfs image, the most simple command is:
----
# dracut
----

This will generate a general purpose initramfs image, with all possible
functionality resulting of the combination of the installed dracut modules and
system tools. The image is /boot/initramfs-_++<kernel version>++_.img and
contains the kernel modules of the currently active kernel with version
_++<kernel version>++_.

If the initramfs image already exists, dracut will display an error message, and
to overwrite the existing image, you have to use the --force option.
----
# dracut --force
----

If you want to specify another filename for the resulting image you would issue
a command like:
----
# dracut foobar.img
----

To generate an image for a specific kernel version, the command would be:
----
# dracut foobar.img 2.6.40-1.rc5.f20
----

A shortcut to generate the image at the default location for a specific kernel
version is:
----
# dracut --kver 2.6.40-1.rc5.f20
----

If you want to create lighter, smaller initramfs images, you may want to specify
the --hostonly or -H option. Using this option, the resulting image will
contain only those dracut modules, kernel modules and filesystems, which are
needed to boot this specific machine. This has the drawback, that you can't put
the disk on another controller or machine, and that you can't switch to another
root filesystem, without recreating the initramfs image. The usage of the
--hostonly option is only for experts and you will have to keep the broken
pieces. At least keep a copy of a general purpose image (and corresponding
kernel) as a fallback to rescue your system.


OPTIONS
-------
**--kver** _<kernel version>_::
    set the kernel version. This enables to specify the kernel version, without
    specifying the location of the initramfs image. For example:
----
# dracut --kver 3.5.0-0.rc7.git1.2.fc18.x86_64
----

**-f, --force**::
    overwrite existing initramfs file.

**-m, --modules** _<list of dracut modules>_::
    specify a space-separated list of dracut modules to call when building the
    initramfs. Modules are located in _/usr/lib/dracut/modules.d_. This
    parameter can be specified multiple times.
+
[NOTE]
===============================
If [LIST] has multiple arguments, then you have to put these in quotes. For
example:
----
# dracut --modules "module1 module2"  ...
----
===============================

**-o, --omit** _<list of dracut modules>_::
    omit a space-separated list of dracut modules. This parameter can be
    specified multiple times.
+
[NOTE]
===============================
If [LIST] has multiple arguments, then you have to put these in quotes. For
example:
----
# dracut --omit "module1 module2"  ...
----
===============================

**-a, --add** _<list of dracut modules>_::
    add a space-separated list of dracut modules to the default set of modules.
    This parameter can be specified multiple times.
+
[NOTE]
===============================
If [LIST] has multiple arguments, then you have to put these in quotes. For
example:
----
# dracut --add "module1 module2"  ...
----
===============================

**--force-add** _<list of dracut modules>_::
    force to add a space-separated list of dracut modules to the default set of
    modules, when -H is specified. This parameter can be specified multiple
    times.
+
[NOTE]
===============================
If [LIST] has multiple arguments, then you have to put these in quotes. For
example:
----
# dracut --force-add "module1 module2"  ...
----
===============================

**-d, --drivers** _<list of kernel modules>_::
    specify a space-separated list of kernel modules to exclusively include
    in the initramfs. The kernel modules have to be specified without the ".ko"
    suffix. This parameter can be specified multiple times.
+
[NOTE]
===============================
If [LIST] has multiple arguments, then you have to put these in quotes. For
example:
----
# dracut --drivers "kmodule1 kmodule2"  ...
----
===============================

**--add-drivers** _<list of kernel modules>_::
    specify a space-separated list of kernel modules to add to the initramfs.
    The kernel modules have to be specified without the ".ko" suffix. This
    parameter can be specified multiple times.
+
[NOTE]
===============================
If [LIST] has multiple arguments, then you have to put these in quotes. For
example:
----
# dracut --add-drivers "kmodule1 kmodule2"  ...
----
===============================

**--omit-drivers** _<list of kernel modules>_::
    specify a space-separated list of kernel modules not to add to the
    initramfs.
    The kernel modules have to be specified without the ".ko" suffix. This
    parameter can be specified multiple times.
+
[NOTE]
===============================
If [LIST] has multiple arguments, then you have to put these in quotes. For
example:
----
# dracut --omit-drivers "kmodule1 kmodule2"  ...
----
===============================

**--filesystems** _<list of filesystems>_::
    specify a space-separated list of kernel filesystem modules to exclusively
    include in the generic initramfs. This parameter can be specified multiple
    times.
+
[NOTE]
===============================
If [LIST] has multiple arguments, then you have to put these in quotes. For
example:
----
# dracut --filesystems "filesystem1 filesystem2"  ...
----
===============================

**-k, --kmoddir** _<kernel directory>_::
    specify the directory, where to look for kernel modules

**--fwdir** _<dir>[:<dir>...]++_::
    specify additional directories, where to look for firmwares. This parameter
    can be specified multiple times.

**--kernel-cmdline <parameters>**::
    specify default kernel command line parameters


**--kernel-only**::
    only install kernel drivers and firmware files

**--no-kernel**::
    do not install kernel drivers and firmware files

**--print-cmdline**::
    print the kernel command line for the current disk layout

**--mdadmconf**::
    include local _/etc/mdadm.conf_

**--nomdadmconf**::
    do not include local _/etc/mdadm.conf_

**--lvmconf**::
    include local _/etc/lvm/lvm.conf_

**--nolvmconf**::
    do not include local _/etc/lvm/lvm.conf_

**--fscks** [LIST]::
    add a space-separated list of fsck tools, in addition to _dracut.conf_'s
    specification; the installation is opportunistic (non-existing tools are
    ignored)
+
[NOTE]
===============================
If [LIST] has multiple arguments, then you have to put these in quotes. For
example:
----
# dracut --fscks "fsck.foo barfsck"  ...
----
===============================

**--nofscks**::
    inhibit installation of any fsck tools

**--strip**::
    strip binaries in the initramfs (default)

**--nostrip**::
    do not strip binaries in the initramfs

**--hardlink**::
    hardlink files in the initramfs (default)

**--nohardlink**::
    do not hardlink files in the initramfs

**--prefix** _<dir>_::
    prefix initramfs files with the specified directory

**--noprefix**::
    do not prefix initramfs files (default)

**-h, --help**::
    display help text and exit.

**--debug**::
    output debug information of the build process

**-v, --verbose**::
    increase verbosity level (default is info(4))

**-q, --quiet**:: decrease verbosity level (default is info(4))

**-c, --conf** _<dracut configuration file>_::
    specify configuration file to use.
+
Default:
   _/etc/dracut.conf_

**--confdir** _<configuration directory>_::
    specify configuration directory to use.
+
Default:
   _/etc/dracut.conf.d_

**--tmpdir** _<temporary directory>_::
    specify temporary directory to use.
+
Default:
   _/var/tmp_

**--sshkey** _<sshkey file>_:: ssh key file used with ssh-client module.

**-l, --local**::
    activates the local mode. dracut will use modules from the current working
    directory instead of the system-wide installed modules in
    _/usr/lib/dracut/modules.d_.
    This is useful when running dracut from a git checkout.

**-H, --hostonly**::
    Host-Only mode: Install only what is needed for booting the local host
    instead of a generic host and generate host-specific configuration.
+
[WARNING]
====
If chrooted to another root other than the real root device, use "--fstab" and
provide a valid _/etc/fstab_.
====

**-N, --no-hostonly**::
    Disable Host-Only mode

**--persistent-policy** _<policy>_::
    Use _<policy>_ to address disks and partitions.
    _<policy>_ can be any directory name found in /dev/disk.
    E.g. "by-uuid", "by-label"

**--fstab**::
    Use _/etc/fstab_ instead of _/proc/self/mountinfo_.

**--add-fstab** _<filename>_ ::
    Add entries of _<filename>_ to the initramfs /etc/fstab.

**--mount** "_<device>_ _<mountpoint>_ _<filesystem type>_ _<filesystem options>_"::
    Mount _<device>_ on _<mountpoint>_ with _<filesystem type>_ and _<filesystem
    options>_ in the initramfs

**--add-device** _<device>_ ::
    Bring up _<device>_ in initramfs, _<device>_ should be the device name.
    This can be useful in hostonly mode for resume support when your swap is on
    LVM or an encrypted partition.
    [NB --device can be used for compatibility with earlier releases]

**-i, --include** _<SOURCE>_ _<TARGET>_::
    include the files in the SOURCE directory into the
    TARGET directory in the final initramfs. If SOURCE is a file, it will be
    installed to TARGET in the final initramfs. This parameter can be specified
    multiple times.

**-I, --install** _<file list>_::
    install the space separated list of files into the initramfs.
+
[NOTE]
===============================
If [LIST] has multiple arguments, then you have to put these in quotes. For
example:
----
# dracut --install "/bin/foo /sbin/bar"  ...
----
===============================

**--gzip**::
    Compress the generated initramfs using gzip. This will be done by default,
    unless another compression option or --no-compress is passed. Equivalent to
    "--compress=gzip -9"

**--bzip2**::
    Compress the generated initramfs using bzip2.
+
[WARNING]
====
Make sure your kernel has bzip2 decompression support compiled in, otherwise you
will not be able to boot. Equivalent to "--compress=bzip2"
====

**--lzma**::
    Compress the generated initramfs using lzma.
+
[WARNING]
====
Make sure your kernel has lzma decompression support compiled in, otherwise you
will not be able to boot. Equivalent to "lzma --compress=lzma -9"
====

**--xz**::
    Compress the generated initramfs using xz.
+
[WARNING]
====
Make sure your kernel has xz decompression support compiled in, otherwise you
will not be able to boot. Equivalent to "lzma --compress=xz --check=crc32 --lzma2=dict=1MiB"
====

**--compress** _<compressor>_::
    Compress the generated initramfs using the passed compression program. If
    you pass it just the name of a compression program, it will call that
    program with known-working arguments. If you pass a quoted string with
    arguments, it will be called with exactly those arguments. Depending on what
    you pass, this may result in an initramfs that the kernel cannot decompress.

**--no-compress**::
    Do not compress the generated initramfs. This will override any other
    compression options.

**--list-modules**::
    List all available dracut modules.

**-M, --show-modules**::
    Print included module's name to standard output during build.

**--keep**::
    Keep the initramfs temporary directory for debugging purposes.

**--printsize**::
    Print out the module install size

**--profile**:
    Output profile information of the build process

**--ro-mnt**:
    Mount / and /usr read-only by default.

**-L, --stdlog** _<level>_::
    [0-6] Specify logging level (to standard error)
----
          0 - suppress any messages
          1 - only fatal errors
          2 - all errors
          3 - warnings
          4 - info
          5 - debug info (here starts lots of output)
          6 - trace info (and even more)
----

**--regenerate-all**::
    Regenerate all initramfs images at the default location with the kernel versions found on the system.
    Additional parameters are passed through.

FILES
-----
_/var/log/dracut.log_::
    logfile of initramfs image creation

_/tmp/dracut.log_::
    logfile of initramfs image creation, if _/var/log/dracut.log_ is not
    writable

_/etc/dracut.conf_::
    see dracut.conf5

_/etc/dracut.conf.d/*.conf_::
    see dracut.conf5

_/usr/lib/dracut/dracut.conf.d/*.conf_::
    see dracut.conf5

Configuration in the initramfs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
_/etc/conf.d/_::
    Any files found in _/etc/conf.d/_ will be sourced in the initramfs to
    set initial values. Command line options will override these values
    set in the configuration files.

_/etc/cmdline_::
    Can contain additional command line options. Deprecated, better use /etc/cmdline.d/*.conf.

_/etc/cmdline.d/*.conf::
    Can contain additional command line options.

AVAILABILITY
------------
The dracut command is part of the dracut package and is available from
link:$$https://dracut.wiki.kernel.org$$[https://dracut.wiki.kernel.org]

AUTHORS
-------
Harald Hoyer

Victor Lowther

Philippe Seewer

Warren Togami

Amadeusz Żołnowski

Jeremy Katz

David Dillow

Will Woods

SEE ALSO
--------
*dracut.cmdline*(7) *dracut.conf*(5)