summaryrefslogtreecommitdiffstats
path: root/dracut.html
diff options
context:
space:
mode:
Diffstat (limited to 'dracut.html')
-rw-r--r--dracut.html4202
1 files changed, 4202 insertions, 0 deletions
diff --git a/dracut.html b/dracut.html
new file mode 100644
index 0000000..7bf14aa
--- /dev/null
+++ b/dracut.html
@@ -0,0 +1,4202 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>dracut 102</title><style type="text/css">
+
+body, h1, h2, h3, h4, h5, h6, pre, li, div {
+ line-height: 1.29em;
+}
+
+body {
+ background-color: white;
+ margin:0 auto;
+ font-family: "liberation sans", "Myriad ", "Bitstream Vera Sans", "Lucida Grande", "Luxi Sans", "Trebuchet MS", helvetica, verdana, arial, sans-serif;
+ font-size:12px;
+ max-width:55em;
+ color:black;
+}
+
+/* desktop styles */
+body.desktop {
+ margin-left: 26em;
+}
+
+body.desktop .book &gt; .toc {
+ display:block;
+ width:24em;
+ height:99%;
+ position:fixed;
+ overflow:auto;
+ top:0px;
+ left:0px;
+ padding-left:1em;
+ background-color:#EEEEEE;
+}
+
+.toc {
+ line-height:1.35em;
+}
+
+.toc .glossary,
+.toc .chapter, .toc .appendix {
+ margin-top:1em;
+}
+
+.toc .part {
+ margin-top:1em;
+ display:block;
+}
+
+span.glossary,
+span.appendix {
+ display:block;
+ margin-top:0.5em;
+}
+
+div {
+ padding-top:0px;
+}
+
+div.section {
+ padding-top:1em;
+}
+
+p, div.para, div.formalpara {
+ padding-top:0px;
+ margin-top:0.3em;
+ padding-bottom:0px;
+ margin-bottom:1em;
+}
+
+/*Links*/
+a {
+ outline: none;
+}
+
+a:link {
+ text-decoration:none;
+ border-bottom: 1px dotted ;
+ color:#3366cc;
+}
+
+a:visited {
+ text-decoration:none;
+ border-bottom: 1px dotted ;
+ color:#003366;
+}
+
+div.longdesc-link {
+ float:right;
+ color:#999;
+}
+
+.toc a, .qandaset a {
+ font-weight:normal;
+}
+
+/*headings*/
+h1, h2, h3, h4, h5, h6 {
+ color: #336699;
+ margin-top: 0em;
+ margin-bottom: 0em;
+ background-color: transparent;
+}
+
+h1 {
+ font-size:2.0em;
+}
+
+.titlepage h1.title {
+ font-size: 3.0em;
+ padding-top: 1em;
+ text-align:left;
+}
+
+.book &gt; .titlepage h1.title {
+ text-align:center;
+}
+
+.article &gt; .titlepage h1.title {
+ text-align:center;
+}
+
+.set .titlepage &gt; div &gt; div &gt; h1.title {
+ text-align:center;
+}
+
+.producttitle {
+ margin-top: 0em;
+ margin-bottom: 0em;
+ font-size: 3.0em;
+ font-weight: bold;
+ color: white;
+ text-align: center;
+ padding: 0.7em;
+}
+
+.titlepage .corpauthor {
+ margin-top: 1em;
+ text-align: center;
+}
+
+.section h1.title {
+ font-size: 1.6em;
+ padding: 0em;
+ color: #336699;
+ text-align: left;
+ background: white;
+}
+
+h2 {
+ font-size:1.6em;
+}
+
+
+h2.subtitle, h3.subtitle {
+ margin-top: 1em;
+ margin-bottom: 1em;
+ font-size: 1.4em;
+ text-align: center;
+}
+
+.preface &gt; div &gt; div &gt; div &gt; h2.title {
+ margin-top: 1em;
+ font-size: 2.0em;
+}
+
+.appendix h2 {
+ margin-top: 1em;
+ font-size: 2.0em;
+}
+
+
+
+h3 {
+ font-size:1.3em;
+ padding-top:0em;
+ padding-bottom:0em;
+}
+h4 {
+ font-size:1.1em;
+ padding-top:0em;
+ padding-bottom:0em;
+}
+
+h5 {
+ font-size:1em;
+}
+
+h6 {
+ font-size:1em;
+}
+
+h5.formalpara {
+ font-size:1em;
+ margin-top:2em;
+ margin-bottom:.8em;
+}
+
+.abstract h6 {
+ margin-top:1em;
+ margin-bottom:.5em;
+ font-size:2em;
+}
+
+/*element rules*/
+hr {
+ border-collapse: collapse;
+ border-style:none;
+ border-top: 1px dotted #ccc;
+ width:100%;
+ margin-top: 3em;
+}
+
+/* web site rules */
+ul.languages, .languages li {
+ display:inline;
+ padding:0em;
+}
+
+.languages li a {
+ padding:0em .5em;
+ text-decoration: none;
+}
+
+.languages li p, .languages li div.para {
+ display:inline;
+}
+
+.languages li a:link, .languages li a:visited {
+ color:#444;
+}
+
+.languages li a:hover, .languages li a:focus, .languages li a:active {
+ color:black;
+}
+
+ul.languages {
+ display:block;
+ background-color:#eee;
+ padding:.5em;
+}
+
+/*supporting stylesheets*/
+
+/*unique to the webpage only*/
+.books {
+ position:relative;
+}
+
+.versions li {
+ width:100%;
+ clear:both;
+ display:block;
+}
+
+a.version {
+ font-size:2em;
+ text-decoration:none;
+ width:100%;
+ display:block;
+ padding:1em 0em .2em 0em;
+ clear:both;
+}
+
+a.version:before {
+ content:"Version";
+ font-size:smaller;
+}
+
+a.version:visited, a.version:link {
+ color:#666;
+}
+
+a.version:focus, a.version:hover {
+ color:black;
+}
+
+.books {
+ display:block;
+ position:relative;
+ clear:both;
+ width:100%;
+}
+
+.books li {
+ display:block;
+ width:200px;
+ float:left;
+ position:relative;
+ clear: none ;
+}
+
+.books .html {
+ width:170px;
+ display:block;
+}
+
+.books .pdf {
+ position:absolute;
+ left:170px;
+ top:0px;
+ font-size:smaller;
+}
+
+.books .pdf:link, .books .pdf:visited {
+ color:#555;
+}
+
+.books .pdf:hover, .books .pdf:focus {
+ color:#000;
+}
+
+.books li a {
+ text-decoration:none;
+}
+
+.books li a:hover {
+ color:black;
+}
+
+/*products*/
+.products li {
+ display: block;
+ width:300px;
+ float:left;
+}
+
+.products li a {
+ width:300px;
+ padding:.5em 0em;
+}
+
+.products ul {
+ clear:both;
+}
+
+/*revision history*/
+.revhistory {
+ display:block;
+}
+
+.revhistory table {
+ background-color:transparent;
+ border-color:#fff;
+ padding:0em;
+ margin: 0;
+ border-collapse:collapse;
+ border-style:none;
+}
+
+.revhistory td {
+ text-align :left;
+ padding:0em;
+ border: none;
+ border-top: 1px solid #fff;
+ font-weight: bold;
+}
+
+.revhistory .simplelist td {
+ font-weight: normal;
+}
+
+.revhistory .simplelist {
+ margin-bottom: 1.5em;
+ margin-left: 1em;
+}
+
+.revhistory table th {
+ display: none;
+}
+
+
+/*credits*/
+.authorgroup div {
+ clear:both;
+ text-align: center;
+}
+
+h3.author {
+ margin: 0em;
+ padding: 0em;
+ padding-top: 1em;
+}
+
+.authorgroup h4 {
+ padding: 0em;
+ margin: 0em;
+ padding-top: 1em;
+ margin-top: 1em;
+}
+
+.author,
+.editor,
+.translator,
+.othercredit,
+.contrib {
+ display: block;
+}
+
+.revhistory .author {
+ display: inline;
+}
+
+.othercredit h3 {
+ padding-top: 1em;
+}
+
+
+.othercredit {
+ margin:0em;
+ padding:0em;
+}
+
+.releaseinfo {
+ clear: both;
+}
+
+.copyright {
+ margin-top: 1em;
+}
+
+/* qanda sets */
+.answer {
+ margin-bottom:1em;
+ border-bottom:1px dotted #ccc;
+}
+
+.qandaset .toc {
+ border-bottom:1px dotted #ccc;
+}
+
+.question {
+ font-weight:bold;
+}
+
+.answer .data, .question .data {
+ padding-left: 2.6em;
+}
+
+.answer label, .question label {
+ float:left;
+ font-weight:bold;
+}
+
+
+/*Lists*/
+ul {
+ padding-left:1.6em;
+ list-style-type: circle;
+}
+
+ul ul {
+ list-style-type: circle;
+}
+
+ol {
+ list-style-image:none;
+ list-style-type: decimal;
+}
+
+ol ol {
+ list-style-type: lower-alpha;
+}
+
+ol.arabic {
+ list-style-type: decimal;
+}
+
+ol.loweralpha {
+ list-style-type: lower-alpha;
+}
+
+ol.lowerroman {
+ list-style-type: lower-roman;
+}
+
+ol.upperalpha {
+ list-style-type: upper-alpha;
+}
+
+ol.upperroman {
+ list-style-type: upper-roman;
+}
+
+dt {
+ font-weight:bold;
+ margin-bottom:0em;
+ padding-bottom:0em;
+}
+
+dd {
+ margin:0em;
+ margin-left:2em;
+ padding-top:0em;
+ padding-bottom: 1em;
+}
+
+li {
+ padding-top:0px;
+ margin-top:0em;
+ padding-bottom:0px;
+ margin-bottom:0.4em;
+}
+
+li p, li div.para {
+ padding-top:0px;
+ margin-top:0em;
+ padding-bottom:0px;
+ margin-bottom:0.3em;
+}
+
+/*images*/
+img {
+ display:block;
+ margin: 2em 0;
+}
+
+.inlinemediaobject, .inlinemediaobject img {
+ display:inline;
+ margin:0em;
+}
+
+.figure img {
+ display:block;
+ margin:0;
+}
+
+.figure .title {
+ margin:0em;
+ margin-bottom:2em;
+ padding:0px;
+}
+
+/*document modes*/
+.confidential {
+ background-color:#900;
+ color:White;
+ padding:.5em .5em;
+ text-transform:uppercase;
+ text-align:center;
+}
+
+.longdesc-link {
+ display:none;
+}
+
+.longdesc {
+ display:none;
+}
+
+.prompt {
+ padding:0em .3em;
+}
+
+/*user interface styles*/
+.screen .replaceable {
+}
+
+.guibutton, .guilabel {
+ font-family: "liberation mono", "bitstream vera mono", "dejavu mono", monospace;
+ font-weight: bold;
+ white-space: nowrap;
+}
+
+.example {
+ background-color: #ffffff;
+ border-left: 3px solid #aaaaaa;
+ padding-top: 1em;
+ padding-bottom: 0.1em;
+}
+
+.example h6 {
+ padding-left: 10px;
+}
+
+.example-contents {
+ padding-left: 10px;
+ background-color: #ffffff;
+}
+
+.example-contents .para {
+/* padding: 10px;*/
+}
+
+/*terminal/console text*/
+.computeroutput,
+.option {
+ font-family:"liberation mono", "bitstream vera mono", "dejavu mono", monospace;
+ font-weight:bold;
+}
+
+.replaceable {
+ font-family:"liberation mono", "bitstream vera mono", "dejavu mono", monospace;
+ font-style: italic;
+}
+
+.command, .filename, .keycap, .classname, .literal {
+ font-family:"liberation mono", "bitstream vera mono", "dejavu mono", monospace;
+ font-weight:bold;
+}
+
+/* no bold in toc */
+.toc * {
+ font-weight: inherit;
+}
+
+pre {
+ font-family:"liberation mono", "bitstream vera mono", "dejavu mono", monospace;
+ display:block;
+ background-color: #f5f5f5;
+ color: #000000;
+ border: 1px solid #aaaaaa;
+ margin-bottom: 0.3em;
+ padding:.5em 1em;
+ white-space: pre-wrap; /* css-3 */
+ white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
+ white-space: -pre-wrap; /* Opera 4-6 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ word-wrap: break-word; /* Internet Explorer 5.5+ */
+ font-size: 0.9em;
+}
+
+pre .replaceable,
+pre .keycap {
+}
+
+code {
+ font-family:"liberation mono", "bitstream vera mono", "dejavu mono", monospace;
+ white-space: nowrap;
+ font-weight:bold;
+}
+
+.parameter code {
+ display: inline;
+ white-space: pre-wrap; /* css-3 */
+ white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
+ white-space: -pre-wrap; /* Opera 4-6 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ word-wrap: break-word; /* Internet Explorer 5.5+ */
+}
+
+
+div.warning, div.note, div.important {
+ color: black;
+ margin: 0em;
+ padding: 0em;
+ background: none;
+ background-color: white;
+ margin-bottom: 1em;
+ padding-left: 1em;
+ border-left: 2px solid #aaaaaa;
+}
+
+div.warning h2, div.note h2,div.important h2 {
+ margin: 0em;
+ padding: 0em;
+ color: #eeeeec;
+ padding-top: 0px;
+ padding-bottom: 0px;
+ height: 1.4em;
+ line-height: 1.4em;
+ font-size: 1.4em;
+ display:inline;
+}
+
+div.admonition_header {
+ clear: both;
+ margin: 0em;
+ padding: 0em;
+ margin-top: -3.3em;
+ padding-left: 58px;
+ line-height: 1.0em;
+ font-size: 1.0em;
+}
+
+
+div.warning p, div.warning div.para,
+div.note p, div.note div.para,
+div.important p, div.important div.para {
+ padding: 0em;
+ margin: 0em;
+}
+
+div.admonition {
+ border: none;
+ border-left: 1px solid #aaaaaa;
+ border-right: 1px solid #aaaaaa;
+ padding:0em;
+ margin:0em;
+ padding-top: 1.5em;
+ padding-bottom: 1em;
+ padding-left: 2em;
+ padding-right: 1em;
+ background-color: #eeeeec;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-radius: 0px;
+}
+
+/*Page Title*/
+#title {
+ display:block;
+ height:45px;
+ padding-bottom:1em;
+ margin:0em;
+}
+
+#title a.left{
+ display:inline;
+ border:none;
+}
+
+#title a.left img{
+ border:none;
+ float:left;
+ margin:0em;
+ margin-top:.7em;
+}
+
+#title a.right {
+ padding-bottom:1em;
+}
+
+#title a.right img {
+ border:none;
+ float:right;
+ margin:0em;
+ margin-top:.7em;
+}
+
+/*Table*/
+table {
+ border:1px solid #6c614b;
+ width:100%;
+ border-collapse:collapse;
+}
+
+table.simplelist, .calloutlist table {
+ border-style: none;
+}
+
+table th {
+ text-align:left;
+ background-color:#6699cc;
+ padding:.3em .5em;
+ color:white;
+}
+
+table td {
+ padding:.15em .5em;
+}
+
+table tr.even td {
+ background-color:#f5f5f5;
+}
+
+table th p:first-child, table td p:first-child, table li p:first-child,
+table th div.para:first-child, table td div.para:first-child, table li div.para:first-child {
+ margin-top:0em;
+ padding-top:0em;
+ display:inline;
+}
+
+th, td {
+ border-style:none;
+ vertical-align: top;
+ border: 1px solid #000;
+}
+
+.simplelist th, .simplelist td {
+ border: none;
+}
+
+table table td {
+ border-bottom:1px dotted #aaa;
+ background-color:white;
+ padding:.6em 0em;
+}
+
+table table {
+ border:1px solid white;
+}
+
+td.remarkval {
+ color:#444;
+}
+
+td.fieldval {
+ font-weight:bold;
+}
+
+.lbname, .lbtype, .lbdescr, .lbdriver, .lbhost {
+ color:white;
+ font-weight:bold;
+ background-color:#999;
+ width:120px;
+}
+
+td.remarkval {
+ width:230px;
+}
+
+td.tname {
+ font-weight:bold;
+}
+
+th.dbfield {
+ width:120px;
+}
+
+th.dbtype {
+ width:70px;
+}
+
+th.dbdefault {
+ width:70px;
+}
+
+th.dbnul {
+ width:70px;
+}
+
+th.dbkey {
+ width:70px;
+}
+
+span.book {
+ margin-top:4em;
+ display:block;
+}
+
+span.chapter {
+ display:block;
+ margin-top:0.5em;
+}
+
+table.simplelist td, .calloutlist table td {
+ border-style: none;
+}
+
+/*Breadcrumbs*/
+#breadcrumbs ul li.first:before {
+ content:" ";
+}
+
+#breadcrumbs {
+ color:#900;
+ padding:3px;
+ margin-bottom:25px;
+}
+
+#breadcrumbs ul {
+ margin-left:0;
+ padding-left:0;
+ display:inline;
+ border:none;
+}
+
+#breadcrumbs ul li {
+ margin-left:0;
+ padding-left:2px;
+ border:none;
+ list-style:none;
+ display:inline;
+}
+
+#breadcrumbs ul li:before {
+ content:"\0020 \0020 \0020 \00BB \0020";
+ color:#333;
+}
+
+/*index*/
+.glossary h3,
+.index h3 {
+ font-size: 2em;
+ color:#aaa;
+ margin:0em;
+}
+
+.indexdiv {
+ margin-bottom:1em;
+}
+
+.glossary dt,
+.index dt {
+ color:#444;
+ padding-top:.5em;
+}
+
+.glossary dl dl dt,
+.index dl dl dt {
+ color:#777;
+ font-weight:normal;
+ padding-top:0em;
+}
+
+.index dl dl dt:before {
+ content:"- ";
+ color:#ccc;
+}
+
+/*changes*/
+.footnote {
+ font-size: .7em;
+ margin:0em;
+ color:#222;
+}
+
+table .footnote {
+}
+
+sup {
+ color:#999;
+ margin:0em;
+ padding:0em;
+ line-height: .4em;
+ font-size: 1em;
+ padding-left:0em;
+}
+
+.footnote {
+ position:relative;
+}
+
+.footnote sup {
+ color:#e3dcc0;
+ position:absolute;
+ left: .4em;
+}
+
+.footnote sup a:link,
+.footnote sup a:visited {
+ color:#92917d;
+ text-decoration:none;
+}
+
+.footnote:hover sup a {
+ text-decoration:none;
+}
+
+.footnote p,.footnote div.para {
+ padding-left:2em;
+}
+
+.footnote a:link,
+.footnote a:visited {
+ color:#00537c;
+}
+
+.footnote a:hover {
+}
+
+/**/
+div.chapter {
+ margin-top:3em;
+}
+
+div.section {
+ margin-top:1em;
+}
+
+div.note .replaceable,
+div.important .replaceable,
+div.warning .replaceable,
+div.note .keycap,
+div.important .keycap,
+div.warning .keycap
+{
+}
+
+ul li p:last-child, ul li div.para:last-child {
+ margin-bottom:0em;
+ padding-bottom:0em;
+}
+
+
+/* Dirty EVIL Mozilla hack for round corners */
+pre {
+ -moz-border-radius:11px;
+ -webkit-border-radius:11px;
+ border-radius: 11px;
+}
+
+.example {
+ -moz-border-radius:0px;
+ -webkit-border-radius:0px;
+ border-radius: 0px;
+}
+
+.package, .citetitle {
+ font-style: italic;
+}
+
+.titlepage .edition {
+ color: #336699;
+ background-color: transparent;
+ margin-top: 1em;
+ margin-bottom: 1em;
+ font-size: 1.4em;
+ font-weight: bold;
+ text-align: center;
+}
+
+span.remark {
+ background-color: #ff00ff;
+}
+
+.foreignphrase {
+ font-style: inherit;
+}
+
+dt {
+ clear:both;
+}
+
+dt img {
+ border-style: none;
+ max-width: 112px;
+}
+
+dt object {
+ max-width: 112px;
+}
+
+dt .inlinemediaobject, dt object {
+ display: inline;
+ float: left;
+ margin-bottom: 1em;
+ padding-right: 1em;
+ width: 112px;
+}
+
+dl:after {
+ display: block;
+ clear: both;
+ content: "";
+}
+
+.toc dd {
+ padding-bottom: 0em;
+ margin-bottom: 1em;
+ padding-left: 1.3em;
+ margin-left: 0em;
+}
+
+div.toc &gt; dl &gt; dt {
+ padding-bottom: 0em;
+ margin-bottom: 0em;
+ margin-top: 1em;
+}
+
+
+.strikethrough {
+ text-decoration: line-through;
+}
+
+.underline {
+ text-decoration: underline;
+}
+
+.calloutlist img, .callout {
+ padding: 0em;
+ margin: 0em;
+ width: 12pt;
+ display: inline;
+ vertical-align: middle;
+}
+
+.stepalternatives {
+ list-style-image: none;
+ list-style-type: none;
+}
+
+
+a:link {
+ color:#0066cc;
+}
+
+a:hover, a:active {
+ color:#003366;
+}
+
+a:visited {
+ color:#6699cc;
+}
+
+
+h1 {
+ color:#3c6eb4
+}
+
+.section h1.title {
+ color:#3c6eb4;
+}
+
+
+h2,h3,h4,h5,h6 {
+ color:#3c6eb4;
+}
+
+table {
+ border:1px solid #3c6eb4;
+}
+
+table th {
+ background-color:#3c6eb4;
+}
+
+
+table tr.even td {
+ background-color:#f5f5f5;
+}
+
+.revhistory table th {
+ color:#3c6eb4;
+}
+
+.titlepage .edition {
+ color: #3c6eb4;
+}
+
+</style><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /></head><body><div xml:lang="en" class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="idm1"></a>dracut 102</h1></div><div><div class="author"><h3 class="author"><span class="firstname">Harald</span> <span class="surname">Hoyer</span></h3><code class="email">&lt;<a class="email" href="mailto:harald@profian.com">harald@profian.com</a>&gt;</code></div></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="part"><a href="#_introduction">I. Introduction</a></span></dt><dd><dl><dt><span class="chapter"><a href="#_definition">1. Definition</a></span></dt><dt><span class="chapter"><a href="#_rationale">2. Rationale</a></span></dt><dt><span class="chapter"><a href="#_implementation">3. Implementation</a></span></dt><dt><span class="chapter"><a href="#_mount_preparations">4. Mount preparations</a></span></dt><dt><span class="chapter"><a href="#_dracut_on_shutdown">5. Dracut on shutdown</a></span></dt></dl></dd><dt><span class="part"><a href="#_user_manual">II. User Manual</a></span></dt><dd><dl><dt><span class="chapter"><a href="#_dracut_8">6. DRACUT(8)</a></span></dt><dd><dl><dt><span class="section"><a href="#_name">NAME</a></span></dt><dt><span class="section"><a href="#_synopsis">SYNOPSIS</a></span></dt><dt><span class="section"><a href="#_description">DESCRIPTION</a></span></dt><dt><span class="section"><a href="#_usage">USAGE</a></span></dt><dd><dl><dt><span class="section"><a href="#_inspecting_the_contents">Inspecting the Contents</a></span></dt><dt><span class="section"><a href="#_adding_dracut_modules">Adding dracut Modules</a></span></dt><dt><span class="section"><a href="#_omitting_dracut_modules">Omitting dracut Modules</a></span></dt><dt><span class="section"><a href="#_adding_kernel_modules">Adding Kernel Modules</a></span></dt><dt><span class="section"><a href="#_boot_parameters">Boot parameters</a></span></dt><dt><span class="section"><a href="#Injecting">Injecting custom Files</a></span></dt><dt><span class="section"><a href="#NetworkBoot">Network Boot</a></span></dt></dl></dd><dt><span class="section"><a href="#_troubleshooting">Troubleshooting</a></span></dt><dd><dl><dt><span class="section"><a href="#identifying-your-problem-area">Identifying your problem area</a></span></dt><dt><span class="section"><a href="#information-to-include-in-your-report">Information to include in your report</a></span></dt><dt><span class="section"><a href="#debugging-dracut">Debugging dracut</a></span></dt></dl></dd><dt><span class="section"><a href="#_options">OPTIONS</a></span></dt><dt><span class="section"><a href="#_environment">ENVIRONMENT</a></span></dt><dt><span class="section"><a href="#_files">FILES</a></span></dt><dd><dl><dt><span class="section"><a href="#_configuration_in_the_initramfs">Configuration in the initramfs</a></span></dt></dl></dd><dt><span class="section"><a href="#_availability">AVAILABILITY</a></span></dt><dt><span class="section"><a href="#_authors">AUTHORS</a></span></dt><dt><span class="section"><a href="#_see_also">SEE ALSO</a></span></dt></dl></dd><dt><span class="chapter"><a href="#dracutconf5">7. DRACUT.CONF(5)</a></span></dt><dd><dl><dt><span class="section"><a href="#_name_2">NAME</a></span></dt><dt><span class="section"><a href="#_synopsis_2">SYNOPSIS</a></span></dt><dt><span class="section"><a href="#_description_2">Description</a></span></dt><dt><span class="section"><a href="#_files_2">Files</a></span></dt><dt><span class="section"><a href="#_author">AUTHOR</a></span></dt><dt><span class="section"><a href="#_see_also_2">See Also</a></span></dt></dl></dd><dt><span class="chapter"><a href="#dracutcmdline7">8. DRACUT.CMDLINE(7)</a></span></dt><dd><dl><dt><span class="section"><a href="#_name_3">NAME</a></span></dt><dt><span class="section"><a href="#_description_3">DESCRIPTION</a></span></dt><dd><dl><dt><span class="section"><a href="#_standard">Standard</a></span></dt><dt><span class="section"><a href="#_iso_scan_filename">iso-scan/filename</a></span></dt><dt><span class="section"><a href="#_misc">Misc</a></span></dt><dt><span class="section"><a href="#dracutkerneldebug">Debug</a></span></dt><dt><span class="section"><a href="#_i18n">I18N</a></span></dt><dt><span class="section"><a href="#_lvm">LVM</a></span></dt><dt><span class="section"><a href="#_crypto_luks">crypto LUKS</a></span></dt><dt><span class="section"><a href="#_crypto_luks_key_on_removable_device_support">crypto LUKS - key on removable device support</a></span></dt><dt><span class="section"><a href="#_md_raid">MD RAID</a></span></dt><dt><span class="section"><a href="#_dm_raid">DM RAID</a></span></dt><dt><span class="section"><a href="#_multipath">MULTIPATH</a></span></dt><dt><span class="section"><a href="#_fips">FIPS</a></span></dt><dt><span class="section"><a href="#_network">Network</a></span></dt><dt><span class="section"><a href="#_nfs">NFS</a></span></dt><dt><span class="section"><a href="#_cifs">CIFS</a></span></dt><dt><span class="section"><a href="#_iscsi">iSCSI</a></span></dt><dt><span class="section"><a href="#_fcoe">FCoE</a></span></dt><dt><span class="section"><a href="#_nvmf">NVMf</a></span></dt><dt><span class="section"><a href="#_nbd">NBD</a></span></dt><dt><span class="section"><a href="#_virtiofs">VIRTIOFS</a></span></dt><dt><span class="section"><a href="#_dasd">DASD</a></span></dt><dt><span class="section"><a href="#_zfcp">ZFCP</a></span></dt><dt><span class="section"><a href="#_znet">ZNET</a></span></dt><dt><span class="section"><a href="#_booting_live_images">Booting live images</a></span></dt><dt><span class="section"><a href="#_zipl">ZIPL</a></span></dt><dt><span class="section"><a href="#_cio_ignore">CIO_IGNORE</a></span></dt><dt><span class="section"><a href="#_plymouth_boot_splash">Plymouth Boot Splash</a></span></dt><dt><span class="section"><a href="#_kernel_keys">Kernel keys</a></span></dt><dt><span class="section"><a href="#_deprecated_renamed_options">Deprecated, renamed Options</a></span></dt><dt><span class="section"><a href="#_configuration_in_the_initramfs_2">Configuration in the Initramfs</a></span></dt></dl></dd><dt><span class="section"><a href="#_author_2">AUTHOR</a></span></dt><dt><span class="section"><a href="#_see_also_3">SEE ALSO</a></span></dt></dl></dd><dt><span class="chapter"><a href="#lsinitrd1">9. LSINITRD(1)</a></span></dt><dd><dl><dt><span class="section"><a href="#_name_4">NAME</a></span></dt><dt><span class="section"><a href="#_synopsis_3">SYNOPSIS</a></span></dt><dt><span class="section"><a href="#_description_4">DESCRIPTION</a></span></dt><dt><span class="section"><a href="#_options_2">OPTIONS</a></span></dt><dt><span class="section"><a href="#_availability_2">AVAILABILITY</a></span></dt><dt><span class="section"><a href="#_authors_2">AUTHORS</a></span></dt><dt><span class="section"><a href="#_see_also_4">SEE ALSO</a></span></dt></dl></dd><dt><span class="chapter"><a href="#_developer_manual">10. Developer Manual</a></span></dt><dt><span class="chapter"><a href="#dracutmodules7">11. DRACUT.MODULES(7)</a></span></dt><dd><dl><dt><span class="section"><a href="#_name_5">NAME</a></span></dt><dt><span class="section"><a href="#_description_5">DESCRIPTION</a></span></dt><dt><span class="section"><a href="#stages">Boot Process Stages</a></span></dt><dd><dl><dt><span class="section"><a href="#_hook_cmdline">Hook: cmdline</a></span></dt><dt><span class="section"><a href="#_hook_pre_udev">Hook: pre-udev</a></span></dt><dt><span class="section"><a href="#_start_udev">Start Udev</a></span></dt><dt><span class="section"><a href="#_hook_pre_trigger">Hook: pre-trigger</a></span></dt><dt><span class="section"><a href="#_trigger_udev">Trigger Udev</a></span></dt><dt><span class="section"><a href="#_main_loop">Main Loop</a></span></dt><dt><span class="section"><a href="#_hook_pre_mount">Hook: pre-mount</a></span></dt><dt><span class="section"><a href="#_hook_mount">Hook: mount</a></span></dt><dt><span class="section"><a href="#_hook_pre_pivot">Hook: pre-pivot</a></span></dt><dt><span class="section"><a href="#_hook_cleanup">Hook: cleanup</a></span></dt><dt><span class="section"><a href="#_cleanup_and_switch_root">Cleanup and switch_root</a></span></dt></dl></dd><dt><span class="section"><a href="#_network_infrastructure">Network Infrastructure</a></span></dt><dt><span class="section"><a href="#_writing_a_module">Writing a Module</a></span></dt><dd><dl><dt><span class="section"><a href="#_module_setup_sh_check">module-setup.sh: check()</a></span></dt><dt><span class="section"><a href="#_module_setup_sh_depends">module-setup.sh: depends()</a></span></dt><dt><span class="section"><a href="#_module_setup_sh_cmdline">module-setup.sh: cmdline()</a></span></dt><dt><span class="section"><a href="#_module_setup_sh_install">module-setup.sh: install()</a></span></dt><dt><span class="section"><a href="#_module_setup_sh_installkernel">module-setup.sh: installkernel()</a></span></dt><dt><span class="section"><a href="#_anchor_id_creation_xreflabel_creation_creation_functions">Creation Functions</a></span></dt><dt><span class="section"><a href="#_initramfs_functions">Initramfs Functions</a></span></dt><dt><span class="section"><a href="#_network_modules">Network Modules</a></span></dt></dl></dd><dt><span class="section"><a href="#_author_3">AUTHOR</a></span></dt><dt><span class="section"><a href="#_see_also_5">SEE ALSO</a></span></dt></dl></dd><dt><span class="chapter"><a href="#dracutbootup7">12. DRACUT.BOOTUP(7)</a></span></dt><dd><dl><dt><span class="section"><a href="#_name_6">NAME</a></span></dt><dt><span class="section"><a href="#_description_6">DESCRIPTION</a></span></dt><dt><span class="section"><a href="#_author_4">AUTHOR</a></span></dt><dt><span class="section"><a href="#_see_also_6">SEE ALSO</a></span></dt></dl></dd><dt><span class="appendix"><a href="#_license">A. License</a></span></dt></dl></dd></dl></div><div class="part"><div class="titlepage"><div><div><h1 class="title"><a id="_introduction"></a>Part I. Introduction</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="chapter"><a href="#_definition">1. Definition</a></span></dt><dt><span class="chapter"><a href="#_rationale">2. Rationale</a></span></dt><dt><span class="chapter"><a href="#_implementation">3. Implementation</a></span></dt><dt><span class="chapter"><a href="#_mount_preparations">4. Mount preparations</a></span></dt><dt><span class="chapter"><a href="#_dracut_on_shutdown">5. Dracut on shutdown</a></span></dt></dl></div><p>This section is a modified version of
+<a class="ulink" href="http://en.wikipedia.org/wiki/Initrd" target="_top">http://en.wikipedia.org/wiki/Initrd</a> which is licensed under the
+Creative Commons Attribution/Share-Alike License.</p><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="_definition"></a>Chapter 1. Definition</h2></div></div></div><p>An <span class="emphasis"><em>initial ramdisk</em></span> is a temporary file system used in the boot process of the
+Linux kernel. <span class="emphasis"><em>initrd</em></span> and <span class="emphasis"><em>initramfs</em></span> refer to slightly different schemes for
+loading this file system into memory. Both are commonly used to make
+preparations before the real root file system can be mounted.</p></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="_rationale"></a>Chapter 2. Rationale</h2></div></div></div><p>Many Linux distributions ship a single, generic kernel image that is intended to
+boot as wide a variety of hardware as possible. The device drivers for this
+generic kernel image are included as loadable modules, as it is not possible to
+statically compile them all into the one kernel without making it too large to
+boot from computers with limited memory or from lower-capacity media like floppy
+disks.</p><p>This then raises the problem of detecting and loading the modules necessary to
+mount the root file system at boot time (or, for that matter, deducing where or
+what the root file system is).</p><p>To further complicate matters, the root file system may be on a software RAID
+volume, LVM, NFS (on diskless workstations), or on an encrypted partition. All
+of these require special preparations to mount.</p><p>Another complication is kernel support for hibernation, which suspends the
+computer to disk by dumping an image of the entire system to a swap partition or
+a regular file, then powering off. On next boot, this image has to be made
+accessible before it can be loaded back into memory.</p><p>To avoid having to hardcode handling for so many special cases into the kernel,
+an initial boot stage with a temporary root file system
+—now dubbed early user space— is used. This root file system would contain
+user-space helpers that would do the hardware detection, module loading and
+device discovery necessary to get the real root file system mounted.</p></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="_implementation"></a>Chapter 3. Implementation</h2></div></div></div><p>An image of this initial root file system (along with the kernel image) must be
+stored somewhere accessible by the Linux bootloader or the boot firmware of the
+computer. This can be:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+The root file system itself
+</li><li class="listitem">
+A boot image on an optical disc
+</li><li class="listitem">
+A small ext2/ext3/ext4 or FAT-formatted partition on a local disk
+ (a <span class="emphasis"><em>boot partition</em></span>)
+</li><li class="listitem">
+A TFTP server (on systems that can boot from Ethernet)
+</li></ul></div><p>The bootloader will load the kernel and initial root file system image into
+memory and then start the kernel, passing in the memory address of the image.</p><p>Depending on which algorithms were compiled statically into it, the kernel can
+currently unpack initrd/initramfs images compressed with gzip, bzip2 and LZMA.</p></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="_mount_preparations"></a>Chapter 4. Mount preparations</h2></div></div></div><p>dracut can generate a customized initramfs image which contains only whatever is
+necessary to boot some particular computer, such as ATA, SCSI and filesystem
+kernel modules (host-only mode).</p><p>dracut can also generate a more generic initramfs image (default mode).</p><p>dracut’s initramfs starts only with the device name of the root file system (or
+its UUID) and must discover everything else at boot time. A complex cascade of
+tasks must be performed to get the root file system mounted:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+Any hardware drivers that the boot process depends on must be loaded. All
+kernel modules for common storage devices are packed onto the initramfs and then
+udev pulls in modules matching the computer’s detected hardware.
+</li><li class="listitem">
+On systems which display a boot rd.splash screen, the video hardware must be
+initialized and a user-space helper started to paint animations onto the display
+in lockstep with the boot process.
+</li><li class="listitem"><p class="simpara">
+If the root file system is on NFS, dracut does then:
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
+Bring up the primary network interface.
+</li><li class="listitem">
+Invoke a DHCP client, with which it can obtain a DHCP lease.
+</li><li class="listitem">
+Extract the name of the NFS share and the address of the NFS server from the
+lease.
+</li><li class="listitem">
+Mount the NFS share.
+</li></ul></div></li><li class="listitem">
+If the root file system appears to be on a software RAID device, there is no
+way of knowing which devices the RAID volume spans; the standard MD utilities
+must be invoked to scan all available block devices with a raid signature and
+bring the required ones online.
+</li><li class="listitem">
+If the root file system appears to be on a logical volume, the LVM utilities
+must be invoked to scan for and activate the volume group containing it.
+</li><li class="listitem"><p class="simpara">
+If the root file system is on an encrypted block device:
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
+Invoke a helper script to prompt the user to type in a passphrase and/or
+insert a hardware token (such as a smart card or a USB security dongle).
+</li></ul></div></li><li class="listitem">
+Create a decryption target with the device mapper.
+</li></ul></div><p>dracut uses udev, an event-driven hotplug agent, which invokes helper programs
+as hardware devices, disk partitions and storage volumes matching certain rules
+come online. This allows discovery to run in parallel, and to progressively
+cascade into arbitrary nestings of LVM, RAID or encryption to get at the root
+file system.</p><p>When the root file system finally becomes visible:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+Any maintenance tasks which cannot run on a mounted root file system
+are done.
+</li><li class="listitem">
+The root file system is mounted read-only.
+</li><li class="listitem">
+Any processes which must continue running (such as the rd.splash screen helper
+and its command FIFO) are hoisted into the newly-mounted root file system.
+</li></ul></div><p>The final root file system cannot simply be mounted over /, since that would
+make the scripts and tools on the initial root file system inaccessible for any
+final cleanup tasks. On an initramfs, the initial root file system cannot be
+rotated away. Instead, it is simply emptied and the final root file system
+mounted over the top.</p><p>If the systemd module is used in the initramfs, the ordering of the services
+started looks like <a class="xref" href="#dracutbootup7" title="Chapter 12. DRACUT.BOOTUP(7)">Chapter 12, <em>DRACUT.BOOTUP(7)</em></a>.</p></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="_dracut_on_shutdown"></a>Chapter 5. Dracut on shutdown</h2></div></div></div><p>On a systemd driven system, the dracut initramfs is also used for the shutdown
+procedure.</p><p>The following steps are executed during a shutdown:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+systemd switches to the shutdown.target
+</li><li class="listitem">
+systemd starts
+ $prefix/lib/systemd/system/shutdown.target.wants/dracut-shutdown.service
+</li><li class="listitem">
+dracut-shutdown.service executes /usr/lib/dracut/dracut-initramfs-restore
+ which unpacks the initramfs to /run/initramfs
+</li><li class="listitem">
+systemd finishes shutdown.target
+</li><li class="listitem">
+systemd kills all processes
+</li><li class="listitem">
+systemd tries to unmount everything and mounts the remaining read-only
+</li><li class="listitem">
+systemd checks, if there is a /run/initramfs/shutdown executable
+</li><li class="listitem">
+if yes, it does a pivot_root to /run/initramfs and executes ./shutdown.
+ The old root is then mounted on /oldroot.
+ /usr/lib/dracut/modules.d/99shutdown/shutdown.sh is the shutdown executable.
+</li><li class="listitem">
+shutdown will try to unmount every /oldroot mount and calls the various
+ shutdown hooks from the dracut modules
+</li></ul></div><p>This ensures, that all devices are disassembled and unmounted cleanly.</p></div></div><div class="part"><div class="titlepage"><div><div><h1 class="title"><a id="_user_manual"></a>Part II. User Manual</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="chapter"><a href="#_dracut_8">6. DRACUT(8)</a></span></dt><dd><dl><dt><span class="section"><a href="#_name">NAME</a></span></dt><dt><span class="section"><a href="#_synopsis">SYNOPSIS</a></span></dt><dt><span class="section"><a href="#_description">DESCRIPTION</a></span></dt><dt><span class="section"><a href="#_usage">USAGE</a></span></dt><dd><dl><dt><span class="section"><a href="#_inspecting_the_contents">Inspecting the Contents</a></span></dt><dt><span class="section"><a href="#_adding_dracut_modules">Adding dracut Modules</a></span></dt><dt><span class="section"><a href="#_omitting_dracut_modules">Omitting dracut Modules</a></span></dt><dt><span class="section"><a href="#_adding_kernel_modules">Adding Kernel Modules</a></span></dt><dt><span class="section"><a href="#_boot_parameters">Boot parameters</a></span></dt><dt><span class="section"><a href="#Injecting">Injecting custom Files</a></span></dt><dt><span class="section"><a href="#NetworkBoot">Network Boot</a></span></dt></dl></dd><dt><span class="section"><a href="#_troubleshooting">Troubleshooting</a></span></dt><dd><dl><dt><span class="section"><a href="#identifying-your-problem-area">Identifying your problem area</a></span></dt><dt><span class="section"><a href="#information-to-include-in-your-report">Information to include in your report</a></span></dt><dt><span class="section"><a href="#debugging-dracut">Debugging dracut</a></span></dt></dl></dd><dt><span class="section"><a href="#_options">OPTIONS</a></span></dt><dt><span class="section"><a href="#_environment">ENVIRONMENT</a></span></dt><dt><span class="section"><a href="#_files">FILES</a></span></dt><dd><dl><dt><span class="section"><a href="#_configuration_in_the_initramfs">Configuration in the initramfs</a></span></dt></dl></dd><dt><span class="section"><a href="#_availability">AVAILABILITY</a></span></dt><dt><span class="section"><a href="#_authors">AUTHORS</a></span></dt><dt><span class="section"><a href="#_see_also">SEE ALSO</a></span></dt></dl></dd><dt><span class="chapter"><a href="#dracutconf5">7. DRACUT.CONF(5)</a></span></dt><dd><dl><dt><span class="section"><a href="#_name_2">NAME</a></span></dt><dt><span class="section"><a href="#_synopsis_2">SYNOPSIS</a></span></dt><dt><span class="section"><a href="#_description_2">Description</a></span></dt><dt><span class="section"><a href="#_files_2">Files</a></span></dt><dt><span class="section"><a href="#_author">AUTHOR</a></span></dt><dt><span class="section"><a href="#_see_also_2">See Also</a></span></dt></dl></dd><dt><span class="chapter"><a href="#dracutcmdline7">8. DRACUT.CMDLINE(7)</a></span></dt><dd><dl><dt><span class="section"><a href="#_name_3">NAME</a></span></dt><dt><span class="section"><a href="#_description_3">DESCRIPTION</a></span></dt><dd><dl><dt><span class="section"><a href="#_standard">Standard</a></span></dt><dt><span class="section"><a href="#_iso_scan_filename">iso-scan/filename</a></span></dt><dt><span class="section"><a href="#_misc">Misc</a></span></dt><dt><span class="section"><a href="#dracutkerneldebug">Debug</a></span></dt><dt><span class="section"><a href="#_i18n">I18N</a></span></dt><dt><span class="section"><a href="#_lvm">LVM</a></span></dt><dt><span class="section"><a href="#_crypto_luks">crypto LUKS</a></span></dt><dt><span class="section"><a href="#_crypto_luks_key_on_removable_device_support">crypto LUKS - key on removable device support</a></span></dt><dt><span class="section"><a href="#_md_raid">MD RAID</a></span></dt><dt><span class="section"><a href="#_dm_raid">DM RAID</a></span></dt><dt><span class="section"><a href="#_multipath">MULTIPATH</a></span></dt><dt><span class="section"><a href="#_fips">FIPS</a></span></dt><dt><span class="section"><a href="#_network">Network</a></span></dt><dt><span class="section"><a href="#_nfs">NFS</a></span></dt><dt><span class="section"><a href="#_cifs">CIFS</a></span></dt><dt><span class="section"><a href="#_iscsi">iSCSI</a></span></dt><dt><span class="section"><a href="#_fcoe">FCoE</a></span></dt><dt><span class="section"><a href="#_nvmf">NVMf</a></span></dt><dt><span class="section"><a href="#_nbd">NBD</a></span></dt><dt><span class="section"><a href="#_virtiofs">VIRTIOFS</a></span></dt><dt><span class="section"><a href="#_dasd">DASD</a></span></dt><dt><span class="section"><a href="#_zfcp">ZFCP</a></span></dt><dt><span class="section"><a href="#_znet">ZNET</a></span></dt><dt><span class="section"><a href="#_booting_live_images">Booting live images</a></span></dt><dt><span class="section"><a href="#_zipl">ZIPL</a></span></dt><dt><span class="section"><a href="#_cio_ignore">CIO_IGNORE</a></span></dt><dt><span class="section"><a href="#_plymouth_boot_splash">Plymouth Boot Splash</a></span></dt><dt><span class="section"><a href="#_kernel_keys">Kernel keys</a></span></dt><dt><span class="section"><a href="#_deprecated_renamed_options">Deprecated, renamed Options</a></span></dt><dt><span class="section"><a href="#_configuration_in_the_initramfs_2">Configuration in the Initramfs</a></span></dt></dl></dd><dt><span class="section"><a href="#_author_2">AUTHOR</a></span></dt><dt><span class="section"><a href="#_see_also_3">SEE ALSO</a></span></dt></dl></dd><dt><span class="chapter"><a href="#lsinitrd1">9. LSINITRD(1)</a></span></dt><dd><dl><dt><span class="section"><a href="#_name_4">NAME</a></span></dt><dt><span class="section"><a href="#_synopsis_3">SYNOPSIS</a></span></dt><dt><span class="section"><a href="#_description_4">DESCRIPTION</a></span></dt><dt><span class="section"><a href="#_options_2">OPTIONS</a></span></dt><dt><span class="section"><a href="#_availability_2">AVAILABILITY</a></span></dt><dt><span class="section"><a href="#_authors_2">AUTHORS</a></span></dt><dt><span class="section"><a href="#_see_also_4">SEE ALSO</a></span></dt></dl></dd><dt><span class="chapter"><a href="#_developer_manual">10. Developer Manual</a></span></dt><dt><span class="chapter"><a href="#dracutmodules7">11. DRACUT.MODULES(7)</a></span></dt><dd><dl><dt><span class="section"><a href="#_name_5">NAME</a></span></dt><dt><span class="section"><a href="#_description_5">DESCRIPTION</a></span></dt><dt><span class="section"><a href="#stages">Boot Process Stages</a></span></dt><dd><dl><dt><span class="section"><a href="#_hook_cmdline">Hook: cmdline</a></span></dt><dt><span class="section"><a href="#_hook_pre_udev">Hook: pre-udev</a></span></dt><dt><span class="section"><a href="#_start_udev">Start Udev</a></span></dt><dt><span class="section"><a href="#_hook_pre_trigger">Hook: pre-trigger</a></span></dt><dt><span class="section"><a href="#_trigger_udev">Trigger Udev</a></span></dt><dt><span class="section"><a href="#_main_loop">Main Loop</a></span></dt><dt><span class="section"><a href="#_hook_pre_mount">Hook: pre-mount</a></span></dt><dt><span class="section"><a href="#_hook_mount">Hook: mount</a></span></dt><dt><span class="section"><a href="#_hook_pre_pivot">Hook: pre-pivot</a></span></dt><dt><span class="section"><a href="#_hook_cleanup">Hook: cleanup</a></span></dt><dt><span class="section"><a href="#_cleanup_and_switch_root">Cleanup and switch_root</a></span></dt></dl></dd><dt><span class="section"><a href="#_network_infrastructure">Network Infrastructure</a></span></dt><dt><span class="section"><a href="#_writing_a_module">Writing a Module</a></span></dt><dd><dl><dt><span class="section"><a href="#_module_setup_sh_check">module-setup.sh: check()</a></span></dt><dt><span class="section"><a href="#_module_setup_sh_depends">module-setup.sh: depends()</a></span></dt><dt><span class="section"><a href="#_module_setup_sh_cmdline">module-setup.sh: cmdline()</a></span></dt><dt><span class="section"><a href="#_module_setup_sh_install">module-setup.sh: install()</a></span></dt><dt><span class="section"><a href="#_module_setup_sh_installkernel">module-setup.sh: installkernel()</a></span></dt><dt><span class="section"><a href="#_anchor_id_creation_xreflabel_creation_creation_functions">Creation Functions</a></span></dt><dt><span class="section"><a href="#_initramfs_functions">Initramfs Functions</a></span></dt><dt><span class="section"><a href="#_network_modules">Network Modules</a></span></dt></dl></dd><dt><span class="section"><a href="#_author_3">AUTHOR</a></span></dt><dt><span class="section"><a href="#_see_also_5">SEE ALSO</a></span></dt></dl></dd><dt><span class="chapter"><a href="#dracutbootup7">12. DRACUT.BOOTUP(7)</a></span></dt><dd><dl><dt><span class="section"><a href="#_name_6">NAME</a></span></dt><dt><span class="section"><a href="#_description_6">DESCRIPTION</a></span></dt><dt><span class="section"><a href="#_author_4">AUTHOR</a></span></dt><dt><span class="section"><a href="#_see_also_6">SEE ALSO</a></span></dt></dl></dd><dt><span class="appendix"><a href="#_license">A. License</a></span></dt></dl></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="_dracut_8"></a>Chapter 6. DRACUT(8)</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="#_name">NAME</a></span></dt><dt><span class="section"><a href="#_synopsis">SYNOPSIS</a></span></dt><dt><span class="section"><a href="#_description">DESCRIPTION</a></span></dt><dt><span class="section"><a href="#_usage">USAGE</a></span></dt><dd><dl><dt><span class="section"><a href="#_inspecting_the_contents">Inspecting the Contents</a></span></dt><dt><span class="section"><a href="#_adding_dracut_modules">Adding dracut Modules</a></span></dt><dt><span class="section"><a href="#_omitting_dracut_modules">Omitting dracut Modules</a></span></dt><dt><span class="section"><a href="#_adding_kernel_modules">Adding Kernel Modules</a></span></dt><dt><span class="section"><a href="#_boot_parameters">Boot parameters</a></span></dt><dt><span class="section"><a href="#Injecting">Injecting custom Files</a></span></dt><dt><span class="section"><a href="#NetworkBoot">Network Boot</a></span></dt></dl></dd><dt><span class="section"><a href="#_troubleshooting">Troubleshooting</a></span></dt><dd><dl><dt><span class="section"><a href="#identifying-your-problem-area">Identifying your problem area</a></span></dt><dt><span class="section"><a href="#information-to-include-in-your-report">Information to include in your report</a></span></dt><dt><span class="section"><a href="#debugging-dracut">Debugging dracut</a></span></dt></dl></dd><dt><span class="section"><a href="#_options">OPTIONS</a></span></dt><dt><span class="section"><a href="#_environment">ENVIRONMENT</a></span></dt><dt><span class="section"><a href="#_files">FILES</a></span></dt><dd><dl><dt><span class="section"><a href="#_configuration_in_the_initramfs">Configuration in the initramfs</a></span></dt></dl></dd><dt><span class="section"><a href="#_availability">AVAILABILITY</a></span></dt><dt><span class="section"><a href="#_authors">AUTHORS</a></span></dt><dt><span class="section"><a href="#_see_also">SEE ALSO</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_name"></a>NAME</h2></div></div></div><p>dracut - low-level tool for generating an initramfs/initrd image</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_synopsis"></a>SYNOPSIS</h2></div></div></div><p><span class="strong"><strong>dracut</strong></span> [<span class="emphasis"><em>OPTION…</em></span>] [<span class="emphasis"><em>&lt;image&gt;</em></span> [<span class="emphasis"><em>&lt;kernel version&gt;</em></span>]]</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_description"></a>DESCRIPTION</h2></div></div></div><p>Create an initramfs &lt;image&gt; for the kernel with the version &lt;kernel version&gt;.
+If &lt;kernel version&gt; is omitted, then the version of the actual running
+kernel is used. If &lt;image&gt; is omitted or empty, the default location will be
+determined by the local configuration or Linux distribution policy.</p><p>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.</p><p>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.</p><p>Initramfs images are also called "initrd".</p><p>For a complete list of kernel command line options see <span class="strong"><strong>dracut.cmdline</strong></span>(7).</p><p>If you are dropped to an emergency shell, while booting your initramfs,
+the file <span class="emphasis"><em>/run/initramfs/rdsosreport.txt</em></span> is created, which can be saved to a
+(to be mounted by hand) partition (usually /boot) or a USB stick.
+Additional debugging info can be produced by adding <span class="strong"><strong>rd.debug</strong></span> to the kernel
+command line. <span class="emphasis"><em>/run/initramfs/rdsosreport.txt</em></span> contains all logs and the output
+of some tools. It should be attached to any report about dracut problems.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_usage"></a>USAGE</h2></div></div></div><p>To create a initramfs image, the most simple command is:</p><pre class="screen"># dracut</pre><p>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 contains the kernel modules of
+the currently active kernel with version <span class="emphasis"><em><code class="literal">&lt;kernel-version&gt;</code></em></span>.
+The default location of the image is determined by the local configuration
+or Linux distribution policy.</p><p>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.</p><pre class="screen"># dracut --force</pre><p>If you want to specify another filename for the resulting image you would issue
+a command like:</p><pre class="screen"># dracut foobar.img</pre><p>To generate an image for a specific kernel version, the command would be:</p><pre class="screen"># dracut foobar.img 2.6.40-1.rc5.f20</pre><p>A shortcut to generate the image at the default location for a specific kernel
+version is:</p><pre class="screen"># dracut --kver 2.6.40-1.rc5.f20</pre><p>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.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_inspecting_the_contents"></a>Inspecting the Contents</h3></div></div></div><p>To see the contents of the image created by dracut, you can use the lsinitrd
+tool.</p><pre class="screen"># lsinitrd | less</pre><p>To display the contents of a file in the initramfs also use the lsinitrd tool:</p><pre class="screen"># lsinitrd -f /etc/ld.so.conf
+include ld.so.conf.d/*.conf</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_adding_dracut_modules"></a>Adding dracut Modules</h3></div></div></div><p>Some dracut modules are turned off by default and have to be activated manually.
+You can do this by adding the dracut modules to the configuration file
+<span class="emphasis"><em>/etc/dracut.conf</em></span> or <span class="emphasis"><em>/etc/dracut.conf.d/myconf.conf</em></span>. See <span class="strong"><strong>dracut.conf</strong></span>(5).
+You can also add dracut modules on the command line
+by using the -a or --add option:</p><pre class="screen"># dracut --add module initramfs-module.img</pre><p>To see a list of available dracut modules, use the --list-modules option:</p><pre class="screen"># dracut --list-modules</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_omitting_dracut_modules"></a>Omitting dracut Modules</h3></div></div></div><p>Sometimes you don’t want a dracut module to be included for reasons of speed,
+size or functionality. To do this, either specify the omit_dracutmodules
+variable in the <span class="emphasis"><em>dracut.conf</em></span> or <span class="emphasis"><em>/etc/dracut.conf.d/myconf.conf</em></span> configuration
+file (see <span class="strong"><strong>dracut.conf</strong></span>(5)), or use the -o or --omit option
+on the command line:</p><pre class="screen"># dracut -o "multipath lvm" no-multipath-lvm.img</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_adding_kernel_modules"></a>Adding Kernel Modules</h3></div></div></div><p>If you need a special kernel module in the initramfs, which is not
+automatically picked up by dracut, you have the use the --add-drivers option
+on the command line or the drivers variable in the <span class="emphasis"><em>/etc/dracut.conf</em></span>
+or <span class="emphasis"><em>/etc/dracut.conf.d/myconf.conf</em></span> configuration file (see <span class="strong"><strong>dracut.conf</strong></span>(5)):</p><pre class="screen"># dracut --add-drivers mymod initramfs-with-mymod.img</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_boot_parameters"></a>Boot parameters</h3></div></div></div><p>An initramfs generated without the "hostonly" mode, does not contain any system
+configuration files (except for some special exceptions), so the configuration
+has to be done on the kernel command line. With this flexibility, you can easily
+boot from a changed root partition, without the need to recompile the initramfs
+image. So, you could completely change your root partition (move it inside a md
+raid with encryption and LVM on top), as long as you specify the correct
+filesystem LABEL or UUID on the kernel command line for your root device, dracut
+will find it and boot from it.</p><p>Generic initrd’s are larger, but should be able to automatically boot any
+bootable configuration with appropriate boot flags (root device, network
+configuration information, etc.)</p><p>The kernel command line can also be provided by the dhcp server with the
+root-path option. See <a class="xref" href="#NetworkBoot" title="Network Boot">the section called “Network Boot”</a>.</p><p>For a full reference of all kernel command line parameters,
+see <span class="strong"><strong>dracut.cmdline</strong></span>(7).</p><p>To get a quick start for the suitable kernel command line on your system,
+use the <span class="emphasis"><em>--print-cmdline</em></span> option:</p><pre class="screen"># dracut --print-cmdline
+ root=UUID=8b8b6f91-95c7-4da2-831b-171e12179081 rootflags=rw,relatime,discard,data=ordered rootfstype=ext4</pre><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_specifying_the_root_device"></a>Specifying the root Device</h4></div></div></div><p>This is the only option dracut really needs to boot from your root partition.
+Because your root partition can live in various environments, there are a lot of
+formats for the root= option. The most basic one is root=<span class="emphasis"><em><code class="literal">&lt;path to device
+node&gt;</code></em></span>:</p><pre class="screen">root=/dev/sda2</pre><p>Because device node names can change, dependent on the drive ordering, you are
+encouraged to use the filesystem identifier (UUID) or filesystem label (LABEL)
+to specify your root partition:</p><pre class="screen">root=UUID=19e9dda3-5a38-484d-a9b0-fa6b067d0331</pre><p>or</p><pre class="screen">root=LABEL=myrootpartitionlabel</pre><p>To see all UUIDs or LABELs on your system, do:</p><pre class="screen"># ls -l /dev/disk/by-uuid</pre><p>or</p><pre class="screen"># ls -l /dev/disk/by-label</pre><p>If your root partition is on the network see <a class="xref" href="#NetworkBoot" title="Network Boot">the section called “Network Boot”</a>.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_keyboard_settings"></a>Keyboard Settings</h4></div></div></div><p>If you have to input passwords for encrypted disk volumes, you might want to set
+the keyboard layout and specify a display font.</p><p>A typical german kernel command line would contain:</p><pre class="screen">rd.vconsole.font=eurlatgr rd.vconsole.keymap=de-latin1-nodeadkeys rd.locale.LANG=de_DE.UTF-8</pre><p>Setting these options can override the setting stored on your system, if you use
+a modern init system, like systemd.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_blacklisting_kernel_modules"></a>Blacklisting Kernel Modules</h4></div></div></div><p>Sometimes it is required to prevent the automatic kernel module loading of a
+specific kernel module. To do this, just add rd.driver.blacklist=<span class="emphasis"><em><code class="literal">&lt;kernel
+module name&gt;</code></em></span>, with <span class="emphasis"><em><code class="literal">&lt;kernel module name&gt;</code></em></span> not containing the <span class="emphasis"><em>.ko</em></span>
+suffix, to the kernel command line. For example:</p><pre class="screen">rd.driver.blacklist=mptsas rd.driver.blacklist=nouveau</pre><p>The option can be specified multiple times on the kernel command line.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_speeding_up_the_boot_process"></a>Speeding up the Boot Process</h4></div></div></div><p>If you want to speed up the boot process, you can specify as much information
+for dracut on the kernel command as possible. For example, you can tell dracut,
+that you root partition is not on a LVM volume or not on a raid partition, or
+that it lives inside a specific crypto LUKS encrypted volume. By default, dracut
+searches everywhere. A typical dracut kernel command line for a plain primary or
+logical partition would contain:</p><pre class="screen">rd.luks=0 rd.lvm=0 rd.md=0 rd.dm=0</pre><p>This turns off every automatic assembly of LVM, MD raids, DM raids and
+crypto LUKS.</p><p>Of course, you could also omit the dracut modules in the initramfs creation
+process, but then you would lose the possibility to turn it on on demand.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Injecting"></a>Injecting custom Files</h3></div></div></div><p>To add your own files to the initramfs image, you have several possibilities.</p><p>The --include option let you specify a source path and a target path.
+For example</p><pre class="screen"># dracut --include cmdline-preset /etc/cmdline.d/mycmdline.conf initramfs-cmdline-pre.img</pre><p>will create an initramfs image, where the file cmdline-preset will be copied
+inside the initramfs to <span class="emphasis"><em>/etc/cmdline.d/mycmdline.conf</em></span>. --include can only
+be specified once.</p><pre class="screen"># mkdir -p rd.live.overlay/etc/cmdline.d
+# mkdir -p rd.live.overlay/etc/conf.d
+# echo "ip=dhcp" &gt;&gt; rd.live.overlay/etc/cmdline.d/mycmdline.conf
+# echo export FOO=testtest &gt;&gt; rd.live.overlay/etc/conf.d/testvar.conf
+# echo export BAR=testtest &gt;&gt; rd.live.overlay/etc/conf.d/testvar.conf
+# tree rd.live.overlay/
+rd.live.overlay/
+`-- etc
+ |-- cmdline.d
+ | `-- mycmdline.conf
+ `-- conf.d
+ `-- testvar.conf
+
+# dracut --include rd.live.overlay / initramfs-rd.live.overlay.img</pre><p>This will put the contents of the rd.live.overlay directory into the root of the
+initramfs image.</p><p>The --install option let you specify several files, which will get installed in
+the initramfs image at the same location, as they are present on initramfs
+creation time.</p><pre class="screen"># dracut --install 'strace fsck.ext4 ssh' initramfs-dbg.img</pre><p>This will create an initramfs with the strace, fsck.ext4 and ssh executables,
+together with the libraries needed to start those. The --install option can be
+specified multiple times.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="NetworkBoot"></a>Network Boot</h3></div></div></div><p>If your root partition is on a network drive, you have to have the network
+dracut modules installed to create a network aware initramfs image.</p><p>If you specify ip=dhcp on the kernel command line, then dracut asks a dhcp
+server about the ip address for the machine. The dhcp server can also serve an
+additional root-path, which will set the root device for dracut. With this
+mechanism, you have static configuration on your client machine and a
+centralized boot configuration on your TFTP/DHCP server. If you can’t pass a
+kernel command line, then you can inject <span class="emphasis"><em>/etc/cmdline.d/mycmdline.conf</em></span>, with a
+method described in <a class="xref" href="#Injecting" title="Injecting custom Files">the section called “Injecting custom Files”</a>.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_reducing_the_image_size"></a>Reducing the Image Size</h4></div></div></div><p>To reduce the size of the initramfs, you should create it with by omitting all
+dracut modules, which you know, you don’t need to boot the machine.</p><p>You can also specify the exact dracut and kernel modules to produce a very tiny
+initramfs image.</p><p>For example for a NFS image, you would do:</p><pre class="screen"># dracut -m "nfs network base" initramfs-nfs-only.img</pre><p>Then you would boot from this image with your target machine and reduce the size
+once more by creating it on the target machine with the --host-only option:</p><pre class="screen"># dracut -m "nfs network base" --host-only initramfs-nfs-host-only.img</pre><p>This will reduce the size of the initramfs image significantly.</p></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_troubleshooting"></a>Troubleshooting</h2></div></div></div><p>If the boot process does not succeed, you have several options to debug the
+situation.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="identifying-your-problem-area"></a>Identifying your problem area</h3></div></div></div><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
+Remove <span class="emphasis"><em>'rhgb</em></span>' and <span class="emphasis"><em>'quiet</em></span>' from the kernel command line
+</li><li class="listitem">
+Add <span class="emphasis"><em>'rd.shell</em></span>' to the kernel command line. This will present a shell should
+dracut be unable to locate your root device
+</li><li class="listitem">
+Add <span class="emphasis"><em>'rd.shell rd.debug log_buf_len=1M</em></span>' to the kernel command line so that
+dracut shell commands are printed as they are executed
+</li><li class="listitem">
+The file /run/initramfs/rdsosreport.txt is generated,
+which contains all the logs and the output of all significant tools, which are
+mentioned later.
+</li></ol></div><p>If you want to save that output, simply mount /boot by hand or insert an USB
+stick and mount that. Then you can store the output for later inspection.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="information-to-include-in-your-report"></a>Information to include in your report</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="all-bug-reports"></a>All bug reports</h4></div></div></div><p>In all cases, the following should be mentioned and attached to your bug report:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+The exact kernel command-line used. Typically from the bootloader
+configuration file (e.g. <span class="emphasis"><em>/boot/grub2/grub.cfg</em></span>) or from <span class="emphasis"><em>/proc/cmdline</em></span>.
+</li><li class="listitem">
+A copy of your disk partition information from <span class="emphasis"><em>/etc/fstab</em></span>, which might be
+obtained booting an old working initramfs or a rescue medium.
+</li><li class="listitem">
+Turn on dracut debugging (see <span class="emphasis"><em>the <span class="emphasis"><em>debugging dracut</em></span> section</em></span>), and attach
+the file /run/initramfs/rdsosreport.txt.
+</li><li class="listitem">
+If you use a dracut configuration file, please include <span class="emphasis"><em>/etc/dracut.conf</em></span> and
+all files in <span class="emphasis"><em>/etc/dracut.conf.d/*.conf</em></span>
+</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="network-root-device-related-problems"></a>Network root device related problems</h4></div></div></div><p>This section details information to include when experiencing problems on a
+system whose root device is located on a network attached volume (e.g. iSCSI,
+NFS or NBD). As well as the information from <a class="xref" href="#all-bug-reports" title="All bug reports">the section called “All bug reports”</a>, include the
+following information:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p class="simpara">
+Please include the output of
+</p><pre class="screen"># /sbin/ifup &lt;interfacename&gt;
+# ip addr show</pre></li></ul></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="debugging-dracut"></a>Debugging dracut</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="configure-a-serial-console"></a>Configure a serial console</h4></div></div></div><p>Successfully debugging dracut will require some form of console
+logging during the system boot. This section documents configuring a
+serial console connection to record boot messages.</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
+First, enable serial console output for both the kernel and the bootloader.
+</li><li class="listitem"><p class="simpara">
+Open the file <span class="emphasis"><em>/boot/grub2/grub.cfg</em></span> for editing. Below the line <span class="emphasis"><em>'timeout=5</em></span>', add
+the following:
+</p><pre class="screen">serial --unit=0 --speed=9600
+terminal --timeout=5 serial console</pre></li><li class="listitem"><p class="simpara">
+Also in <span class="emphasis"><em>/boot/grub2/grub.cfg</em></span>, add the following boot arguments to the <span class="emphasis"><em>'kernel</em></span>'
+line:
+</p><pre class="screen">console=tty0 console=ttyS0,9600</pre></li><li class="listitem"><p class="simpara">
+When finished, the <span class="emphasis"><em>/boot/grub2/grub.cfg</em></span> file should look similar to the example
+below.
+</p><pre class="screen">default=0
+timeout=5
+serial --unit=0 --speed=9600
+terminal --timeout=5 serial console
+title Fedora (2.6.29.5-191.fc11.x86_64)
+ root (hd0,0)
+ kernel /vmlinuz-2.6.29.5-191.fc11.x86_64 ro root=/dev/mapper/vg_uc1-lv_root console=tty0 console=ttyS0,9600
+ initrd /dracut-2.6.29.5-191.fc11.x86_64.img</pre></li><li class="listitem">
+More detailed information on how to configure the kernel for console output
+can be found at
+<a class="ulink" href="http://www.faqs.org/docs/Linux-HOWTO/Remote-Serial-Console-HOWTO.html#CONFIGURE-KERNEL" target="_top">http://www.faqs.org/docs/Linux-HOWTO/Remote-Serial-Console-HOWTO.html#CONFIGURE-KERNEL</a>.
+</li><li class="listitem"><p class="simpara">
+Redirecting non-interactive output
+</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>You can redirect all non-interactive output to <span class="emphasis"><em>/dev/kmsg</em></span> and the kernel
+will put it out on the console when it reaches the kernel buffer by doing</p></div><pre class="screen"># exec &gt;/dev/kmsg 2&gt;&amp;1 &lt;/dev/console</pre></li></ol></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="using-the-dracut-shell"></a>Using the dracut shell</h4></div></div></div><p>dracut offers a shell for interactive debugging in the event dracut fails to
+locate your root filesystem. To enable the shell:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
+Add the boot parameter <span class="emphasis"><em>'rd.shell</em></span>' to your bootloader configuration file
+(e.g. <span class="emphasis"><em>/boot/grub2/grub.cfg</em></span>)
+</li><li class="listitem"><p class="simpara">
+Remove the boot arguments <span class="emphasis"><em>'rhgb</em></span>' and <span class="emphasis"><em>'quiet</em></span>'
+</p><p class="simpara">A sample <span class="emphasis"><em>/boot/grub2/grub.cfg</em></span> bootloader configuration file is listed below.</p><pre class="screen">default=0
+timeout=5
+serial --unit=0 --speed=9600
+terminal --timeout=5 serial console
+title Fedora (2.6.29.5-191.fc11.x86_64)
+ root (hd0,0)
+ kernel /vmlinuz-2.6.29.5-191.fc11.x86_64 ro root=/dev/mapper/vg_uc1-lv_root console=tty0 rd.shell
+ initrd /dracut-2.6.29.5-191.fc11.x86_64.img</pre></li><li class="listitem"><p class="simpara">
+If system boot fails, you will be dropped into a shell as seen in the example
+below.
+</p><pre class="screen">No root device found
+Dropping to debug shell.
+
+#</pre></li><li class="listitem">
+Use this shell prompt to gather the information requested above
+(see <a class="xref" href="#all-bug-reports" title="All bug reports">the section called “All bug reports”</a>).
+</li></ol></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="accessing-the-root-volume-from-the-dracut-shell"></a>Accessing the root volume from the dracut shell</h4></div></div></div><p>From the dracut debug shell, you can manually perform the task of locating and
+preparing your root volume for boot. The required steps will depend on how your
+root volume is configured. Common scenarios include:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+A block device (e.g. <span class="emphasis"><em>/dev/sda7</em></span>)
+</li><li class="listitem">
+A LVM logical volume (e.g. <span class="emphasis"><em>/dev/VolGroup00/LogVol00</em></span>)
+</li><li class="listitem">
+An encrypted device
+ (e.g. <span class="emphasis"><em>/dev/mapper/luks-4d5972ea-901c-4584-bd75-1da802417d83</em></span>)
+</li><li class="listitem">
+A network attached device
+ (e.g. <span class="emphasis"><em>netroot=iscsi:@192.168.0.4::3260::iqn.2009-02.org.example:for.all</em></span>)
+</li></ul></div><p>The exact method for locating and preparing will vary. However, to continue with
+a successful boot, the objective is to locate your root volume and create a
+symlink <span class="emphasis"><em>/dev/root</em></span> which points to the file system. For example, the following
+example demonstrates accessing and booting a root volume that is an encrypted
+LVM Logical volume.</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p class="simpara">
+Inspect your partitions using parted
+</p><pre class="screen"># parted /dev/sda -s p
+Model: ATA HTS541060G9AT00 (scsi)
+Disk /dev/sda: 60.0GB
+Sector size (logical/physical): 512B/512B
+Partition Table: msdos
+Number Start End Size Type File system Flags
+1 32.3kB 10.8GB 107MB primary ext4 boot
+2 10.8GB 55.6GB 44.7GB logical lvm</pre></li><li class="listitem"><p class="simpara">
+You recall that your root volume was a LVM logical volume. Scan and activate
+any logical volumes.
+</p><pre class="screen"># lvm vgscan
+# lvm vgchange -ay</pre></li><li class="listitem"><p class="simpara">
+You should see any logical volumes now using the command blkid:
+</p><pre class="screen"># blkid
+/dev/sda1: UUID="3de247f3-5de4-4a44-afc5-1fe179750cf7" TYPE="ext4"
+/dev/sda2: UUID="Ek4dQw-cOtq-5MJu-OGRF-xz5k-O2l8-wdDj0I" TYPE="LVM2_member"
+/dev/mapper/linux-root: UUID="def0269e-424b-4752-acf3-1077bf96ad2c" TYPE="crypto_LUKS"
+/dev/mapper/linux-home: UUID="c69127c1-f153-4ea2-b58e-4cbfa9257c5e" TYPE="ext4"
+/dev/mapper/linux-swap: UUID="47b4d329-975c-4c08-b218-f9c9bf3635f1" TYPE="swap"</pre></li><li class="listitem"><p class="simpara">
+From the output above, you recall that your root volume exists on an encrypted
+block device. Following the guidance disk encryption guidance from the
+Installation Guide, you unlock your encrypted root volume.
+</p><pre class="screen"># UUID=$(cryptsetup luksUUID /dev/mapper/linux-root)
+# cryptsetup luksOpen /dev/mapper/linux-root luks-$UUID
+Enter passphrase for /dev/mapper/linux-root:
+Key slot 0 unlocked.</pre></li><li class="listitem"><p class="simpara">
+Next, make a symbolic link to the unlocked root volume
+</p><pre class="screen"># ln -s /dev/mapper/luks-$UUID /dev/root</pre></li><li class="listitem"><p class="simpara">
+With the root volume available, you may continue booting the system by exiting
+the dracut shell
+</p><pre class="screen"># exit</pre></li></ol></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="additional-dracut-boot-parameters"></a>Additional dracut boot parameters</h4></div></div></div><p>For more debugging options, see <span class="strong"><strong>dracut.cmdline</strong></span>(7).</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="debugging-dracut-on-shutdown"></a>Debugging dracut on shutdown</h4></div></div></div><p>To debug the shutdown sequence on systemd systems, you can <span class="emphasis"><em>rd.break</em></span>
+on <span class="emphasis"><em>pre-shutdown</em></span> or <span class="emphasis"><em>shutdown</em></span>.</p><p>To do this from an already booted system:</p><pre class="screen"># mkdir -p /run/initramfs/etc/cmdline.d
+# echo "rd.debug rd.break=pre-shutdown rd.break=shutdown" &gt; /run/initramfs/etc/cmdline.d/debug.conf
+# touch /run/initramfs/.need_shutdown</pre><p>This will give you a dracut shell after the system pivot’ed back in the
+initramfs.</p></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_options"></a>OPTIONS</h2></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>--kver</strong></span> <span class="emphasis"><em>&lt;kernel version&gt;</em></span>
+</span></dt><dd>
+ Set the kernel version. This enables to specify the kernel version, without
+ specifying the location of the initramfs image. For example:
+</dd></dl></div><pre class="screen"># dracut --kver 3.5.0-0.rc7.git1.2.fc18.x86_64</pre><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>-f, --force</strong></span>
+</span></dt><dd>
+ Overwrite existing initramfs file.
+</dd><dt><span class="term">
+<span class="emphasis"><em>&lt;output file&gt;</em></span> <span class="strong"><strong>--rebuild</strong></span>
+</span></dt><dd>
+ Append the current arguments to those with which the input initramfs image
+ was built. This option helps in incrementally building the initramfs for
+ testing. If optional <span class="emphasis"><em>&lt;output file&gt;</em></span> is not provided, the input initramfs
+ provided to rebuild will be used as output file.
+</dd><dt><span class="term">
+<span class="strong"><strong>-a, --add</strong></span> <span class="emphasis"><em>&lt;list of dracut modules&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ Add a space-separated list of dracut modules to the default set of modules.
+ This parameter can be specified multiple times.
+</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If the list has multiple arguments, then you have to put these in quotes. For
+example:</p><pre class="screen"># dracut --add "module1 module2" ...</pre></div></dd><dt><span class="term">
+<span class="strong"><strong>--force-add</strong></span> <span class="emphasis"><em>&lt;list of dracut modules&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ 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.
+</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If the list has multiple arguments, then you have to put these in quotes. For
+example:</p><pre class="screen"># dracut --force-add "module1 module2" ...</pre></div></dd><dt><span class="term">
+<span class="strong"><strong>-o, --omit</strong></span> <span class="emphasis"><em>&lt;list of dracut modules&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ Omit a space-separated list of dracut modules. This parameter can be
+ specified multiple times.
+</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If the list has multiple arguments, then you have to put these in quotes. For
+example:</p><pre class="screen"># dracut --omit "module1 module2" ...</pre></div></dd><dt><span class="term">
+<span class="strong"><strong>-m, --modules</strong></span> <span class="emphasis"><em>&lt;list of dracut modules&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ Specify a space-separated list of dracut modules to call when building the
+ initramfs. Modules are located in <span class="emphasis"><em>/usr/lib/dracut/modules.d</em></span>. This
+ parameter can be specified multiple times.
+ This option forces dracut to only include the specified dracut modules.
+ In most cases the "--add" option is what you want to use.
+</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If the list has multiple arguments, then you have to put these in quotes. For
+example:</p><pre class="screen"># dracut --modules "module1 module2" ...</pre></div></dd><dt><span class="term">
+<span class="strong"><strong>-d, --drivers</strong></span> <span class="emphasis"><em>&lt;list of kernel modules&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ 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.
+</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If the list has multiple arguments, then you have to put these in quotes. For
+example:</p><pre class="screen"># dracut --drivers "kmodule1 kmodule2" ...</pre></div></dd><dt><span class="term">
+<span class="strong"><strong>--add-drivers</strong></span> <span class="emphasis"><em>&lt;list of kernel modules&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ 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.
+</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If the list has multiple arguments, then you have to put these in quotes. For
+example:</p><pre class="screen"># dracut --add-drivers "kmodule1 kmodule2" ...</pre></div></dd><dt><span class="term">
+<span class="strong"><strong>--force-drivers</strong></span> <span class="emphasis"><em>&lt;list of kernel modules&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ See add-drivers above. But in this case it is ensured that the drivers
+ are tried to be loaded early via modprobe.
+</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If the list has multiple arguments, then you have to put these in quotes. For
+example:</p><pre class="screen"># dracut --force-drivers "kmodule1 kmodule2" ...</pre></div></dd><dt><span class="term">
+<span class="strong"><strong>--omit-drivers</strong></span> <span class="emphasis"><em>&lt;list of kernel modules&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ 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.
+</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If the list has multiple arguments, then you have to put these in quotes. For
+example:</p><pre class="screen"># dracut --omit-drivers "kmodule1 kmodule2" ...</pre></div></dd><dt><span class="term">
+<span class="strong"><strong>--filesystems</strong></span> <span class="emphasis"><em>&lt;list of filesystems&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ Specify a space-separated list of kernel filesystem modules to exclusively
+ include in the generic initramfs. This parameter can be specified multiple
+ times.
+</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If the list has multiple arguments, then you have to put these in quotes. For
+example:</p><pre class="screen"># dracut --filesystems "filesystem1 filesystem2" ...</pre></div></dd><dt><span class="term">
+<span class="strong"><strong>-k, --kmoddir</strong></span> <span class="emphasis"><em>&lt;kernel directory&gt;</em></span>
+</span></dt><dd>
+ Specify the directory, where to look for kernel modules.
+</dd><dt><span class="term">
+<span class="strong"><strong>--fwdir</strong></span> <span class="emphasis"><em>&lt;dir&gt;[:&lt;dir&gt;…]++</em></span>
+</span></dt><dd>
+ Specify additional directories, where to look for firmwares. This parameter
+ can be specified multiple times.
+</dd><dt><span class="term">
+<span class="strong"><strong>--libdirs</strong></span> <span class="emphasis"><em>&lt;list of directories&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ Specify a space-separated list of directories to look for libraries to
+ include in the generic initramfs. This parameter can be specified multiple
+ times.
+</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If the list has multiple arguments, then you have to put these in quotes. For
+example:</p><pre class="screen"># dracut --libdirs "dir1 dir2" ...</pre></div></dd><dt><span class="term">
+<span class="strong"><strong>--kernel-cmdline &lt;parameters&gt;</strong></span>
+</span></dt><dd>
+ Specify default kernel command line parameters.
+</dd><dt><span class="term">
+<span class="strong"><strong>--kernel-only</strong></span>
+</span></dt><dd>
+ Only install kernel drivers and firmware files.
+</dd><dt><span class="term">
+<span class="strong"><strong>--no-kernel</strong></span>
+</span></dt><dd>
+ Do not install kernel drivers and firmware files.
+</dd><dt><span class="term">
+<span class="strong"><strong>--early-microcode</strong></span>
+</span></dt><dd>
+ Combine early microcode with ramdisk.
+</dd><dt><span class="term">
+<span class="strong"><strong>--no-early-microcode</strong></span>
+</span></dt><dd>
+ Do not combine early microcode with ramdisk.
+</dd><dt><span class="term">
+<span class="strong"><strong>--print-cmdline</strong></span>
+</span></dt><dd>
+ Print the kernel command line for the current disk layout.
+</dd><dt><span class="term">
+<span class="strong"><strong>--mdadmconf</strong></span>
+</span></dt><dd>
+ Include local <span class="emphasis"><em>/etc/mdadm.conf</em></span> file.
+</dd><dt><span class="term">
+<span class="strong"><strong>--nomdadmconf</strong></span>
+</span></dt><dd>
+ Do not include local <span class="emphasis"><em>/etc/mdadm.conf</em></span> file.
+</dd><dt><span class="term">
+<span class="strong"><strong>--lvmconf</strong></span>
+</span></dt><dd>
+ Include local <span class="emphasis"><em>/etc/lvm/lvm.conf</em></span> file.
+</dd><dt><span class="term">
+<span class="strong"><strong>--nolvmconf</strong></span>
+</span></dt><dd>
+ Do not include local <span class="emphasis"><em>/etc/lvm/lvm.conf</em></span> file.
+</dd><dt><span class="term">
+<span class="strong"><strong>--fscks</strong></span> <span class="emphasis"><em>&lt;list of fsck tools&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ Add a space-separated list of fsck tools, in addition to <span class="emphasis"><em>dracut.conf</em></span>'s
+ specification; the installation is opportunistic (non-existing tools are
+ ignored).
+</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If the list has multiple arguments, then you have to put these in quotes. For
+example:</p><pre class="screen"># dracut --fscks "fsck.foo barfsck" ...</pre></div></dd><dt><span class="term">
+<span class="strong"><strong>--nofscks</strong></span>
+</span></dt><dd>
+ Inhibit installation of any fsck tools.
+</dd><dt><span class="term">
+<span class="strong"><strong>--strip</strong></span>
+</span></dt><dd>
+ Strip binaries in the initramfs (default).
+</dd><dt><span class="term">
+<span class="strong"><strong>--aggressive-strip</strong></span>
+</span></dt><dd>
+ Strip more than just debug symbol and sections, for a smaller initramfs
+ build. The --strip option must also be specified.
+</dd><dt><span class="term">
+<span class="strong"><strong>--nostrip</strong></span>
+</span></dt><dd>
+ Do not strip binaries in the initramfs.
+</dd><dt><span class="term">
+<span class="strong"><strong>--hardlink</strong></span>
+</span></dt><dd>
+ Hardlink files in the initramfs (default).
+</dd><dt><span class="term">
+<span class="strong"><strong>--nohardlink</strong></span>
+</span></dt><dd>
+ Do not hardlink files in the initramfs.
+</dd><dt><span class="term">
+<span class="strong"><strong>--prefix</strong></span> <span class="emphasis"><em>&lt;dir&gt;</em></span>
+</span></dt><dd>
+ Prefix initramfs files with the specified directory.
+</dd><dt><span class="term">
+<span class="strong"><strong>--noprefix</strong></span>
+</span></dt><dd>
+ Do not prefix initramfs files (default).
+</dd><dt><span class="term">
+<span class="strong"><strong>-h, --help</strong></span>
+</span></dt><dd>
+ Display help text and exit.
+</dd><dt><span class="term">
+<span class="strong"><strong>--debug</strong></span>
+</span></dt><dd>
+ Output debug information of the build process.
+</dd><dt><span class="term">
+<span class="strong"><strong>-v, --verbose</strong></span>
+</span></dt><dd>
+ Increase verbosity level (default is info(4)).
+</dd><dt><span class="term">
+<span class="strong"><strong>--version</strong></span>
+</span></dt><dd>
+ Display version and exit.
+</dd><dt><span class="term">
+<span class="strong"><strong>-q, --quiet</strong></span>
+</span></dt><dd>
+ Decrease verbosity level (default is info(4)).
+</dd><dt><span class="term">
+<span class="strong"><strong>-c, --conf</strong></span> <span class="emphasis"><em>&lt;dracut configuration file&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ Specify configuration file to use.
+</p><p class="simpara">Default:
+ <span class="emphasis"><em>/etc/dracut.conf</em></span></p></dd><dt><span class="term">
+<span class="strong"><strong>--confdir</strong></span> <span class="emphasis"><em>&lt;configuration directory&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ Specify configuration directory to use.
+</p><p class="simpara">Default:
+ <span class="emphasis"><em>/etc/dracut.conf.d</em></span></p></dd><dt><span class="term">
+<span class="strong"><strong>--tmpdir</strong></span> <span class="emphasis"><em>&lt;temporary directory&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ Specify temporary directory to use.
+</p><p class="simpara">Default:
+ <span class="emphasis"><em>/var/tmp</em></span></p></dd><dt><span class="term">
+<span class="strong"><strong>-r, --sysroot</strong></span> <span class="emphasis"><em>&lt;sysroot directory&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ Specify the sysroot directory to collect files from.
+ This is useful to create the initramfs image from
+ a cross-compiled sysroot directory. For the extra helper
+ variables, see <span class="strong"><strong>ENVIRONMENT</strong></span> below.
+</p><p class="simpara">Default:
+ <span class="emphasis"><em>empty</em></span></p></dd><dt><span class="term">
+<span class="strong"><strong>--sshkey</strong></span> <span class="emphasis"><em>&lt;sshkey file&gt;</em></span>
+</span></dt><dd>
+ SSH key file used with ssh-client module.
+</dd><dt><span class="term">
+<span class="strong"><strong>--logfile</strong></span> <span class="emphasis"><em>&lt;logfile&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ Logfile to use; overrides any setting from the configuration files.
+</p><p class="simpara">Default:
+ <span class="emphasis"><em>/var/log/dracut.log</em></span></p></dd><dt><span class="term">
+<span class="strong"><strong>-l, --local</strong></span>
+</span></dt><dd>
+ Activates the local mode. dracut will use modules from the current working
+ directory instead of the system-wide installed modules in
+ <span class="emphasis"><em>/usr/lib/dracut/modules.d</em></span>.
+ This is useful when running dracut from a git checkout.
+</dd><dt><span class="term">
+<span class="strong"><strong>-H, --hostonly</strong></span>
+</span></dt><dd><p class="simpara">
+ Host-only mode: Install only what is needed for booting the local host
+ instead of a generic host and generate host-specific configuration.
+</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>If chrooted to another root other than the real root device, use "--fstab" and
+provide a valid <span class="emphasis"><em>/etc/fstab</em></span>.</p></div></dd><dt><span class="term">
+<span class="strong"><strong>-N, --no-hostonly</strong></span>
+</span></dt><dd>
+ Disable host-only mode.
+</dd><dt><span class="term">
+<span class="strong"><strong>--hostonly-mode <span class="emphasis"><em>&lt;mode&gt;</em></span></strong></span>
+</span></dt><dd><p class="simpara">
+ Specify the host-only mode to use. <span class="emphasis"><em>&lt;mode&gt;</em></span> could be one of "sloppy" or
+ "strict".
+ In "sloppy" host-only mode, extra drivers and modules will be installed, so
+ minor hardware change won’t make the image unbootable (e.g. changed
+ keyboard), and the image is still portable among similar hosts.
+ With "strict" mode enabled, anything not necessary for booting the local
+ host in its current state will not be included, and modules may do some
+ extra job to save more space. Minor change of hardware or environment could
+ make the image unbootable.
+</p><p class="simpara">Default:
+ <span class="emphasis"><em>sloppy</em></span></p></dd><dt><span class="term">
+<span class="strong"><strong>--hostonly-cmdline</strong></span>
+</span></dt><dd>
+ Store kernel command line arguments needed in the initramfs.
+</dd><dt><span class="term">
+<span class="strong"><strong>--no-hostonly-cmdline</strong></span>
+</span></dt><dd>
+ Do not store kernel command line arguments needed in the initramfs.
+</dd><dt><span class="term">
+<span class="strong"><strong>--no-hostonly-default-device</strong></span>
+</span></dt><dd>
+ Do not generate implicit host devices like root, swap, fstab, etc.
+ Use "--mount" or "--add-device" to explicitly add devices as needed.
+</dd><dt><span class="term">
+<span class="strong"><strong>--hostonly-i18n</strong></span>
+</span></dt><dd>
+ Install only needed keyboard and font files according to the host
+ configuration (default).
+</dd><dt><span class="term">
+<span class="strong"><strong>--no-hostonly-i18n</strong></span>
+</span></dt><dd>
+ Install all keyboard and font files available.
+</dd><dt><span class="term">
+<span class="strong"><strong>--hostonly-nics</strong></span> <span class="emphasis"><em>&lt;list of nics&gt;</em></span>
+</span></dt><dd>
+ Only enable listed NICs in the initramfs. The list can be empty, so other
+ modules can install only the necessary network drivers.
+</dd><dt><span class="term">
+<span class="strong"><strong>--persistent-policy</strong></span> <span class="emphasis"><em>&lt;policy&gt;</em></span>
+</span></dt><dd>
+ Use <span class="emphasis"><em>&lt;policy&gt;</em></span> to address disks and partitions.
+ <span class="emphasis"><em>&lt;policy&gt;</em></span> can be any directory name found in /dev/disk (e.g. "by-uuid",
+ "by-label"), or "mapper" to use /dev/mapper device names (default).
+</dd><dt><span class="term">
+<span class="strong"><strong>--fstab</strong></span>
+</span></dt><dd>
+ Use <span class="emphasis"><em>/etc/fstab</em></span> instead of <span class="emphasis"><em>/proc/self/mountinfo</em></span>.
+</dd><dt><span class="term">
+<span class="strong"><strong>--add-fstab</strong></span> <span class="emphasis"><em>&lt;filename&gt;</em></span>
+</span></dt><dd>
+ Add entries of <span class="emphasis"><em>&lt;filename&gt;</em></span> to the initramfs /etc/fstab.
+</dd><dt><span class="term">
+<span class="strong"><strong>--mount</strong></span> "<span class="emphasis"><em>&lt;device&gt;</em></span> <span class="emphasis"><em>&lt;mountpoint&gt;</em></span> <span class="emphasis"><em>&lt;filesystem type&gt;</em></span> [<span class="emphasis"><em>&lt;filesystem options&gt;</em></span> [<span class="emphasis"><em>&lt;dump frequency&gt;</em></span> [<span class="emphasis"><em>&lt;fsck order&gt;</em></span>]]]"
+</span></dt><dd>
+ Mount <span class="emphasis"><em>&lt;device&gt;</em></span> on <span class="emphasis"><em>&lt;mountpoint&gt;</em></span> with <span class="emphasis"><em>&lt;filesystem type&gt;</em></span> in the
+ initramfs. <span class="emphasis"><em>&lt;filesystem options&gt;</em></span>, <span class="emphasis"><em>&lt;dump options&gt;</em></span> and <span class="emphasis"><em>&lt;fsck order&gt;</em></span> can
+ be specified, see fstab manpage for the details.
+ The default <span class="emphasis"><em>&lt;filesystem options&gt;</em></span> is "defaults".
+ The default <span class="emphasis"><em>&lt;dump frequency&gt;</em></span> is "0".
+ The default <span class="emphasis"><em>&lt;fsck order&gt;</em></span> is "2".
+</dd><dt><span class="term">
+<span class="strong"><strong>--mount</strong></span> "<span class="emphasis"><em>&lt;mountpoint&gt;</em></span>"
+</span></dt><dd>
+ Like above, but <span class="emphasis"><em>&lt;device&gt;</em></span>, <span class="emphasis"><em>&lt;filesystem type&gt;</em></span> and <span class="emphasis"><em>&lt;filesystem options&gt;</em></span>
+ are determined by looking at the current mounts.
+</dd><dt><span class="term">
+<span class="strong"><strong>--add-device</strong></span> <span class="emphasis"><em>&lt;device&gt;</em></span>
+</span></dt><dd>
+ Bring up <span class="emphasis"><em>&lt;device&gt;</em></span> in initramfs, <span class="emphasis"><em>&lt;device&gt;</em></span> should be the device name.
+ This can be useful in host-only mode for resume support when your swap is on
+ LVM or an encrypted partition.
+ [NB --device can be used for compatibility with earlier releases]
+</dd><dt><span class="term">
+<span class="strong"><strong>-i, --include</strong></span> <span class="emphasis"><em>&lt;SOURCE&gt;</em></span> <span class="emphasis"><em>&lt;TARGET&gt;</em></span>
+</span></dt><dd>
+ 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.
+</dd><dt><span class="term">
+<span class="strong"><strong>-I, --install</strong></span> <span class="emphasis"><em>&lt;file list&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ Install the space separated list of files into the initramfs.
+</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If the list has multiple arguments, then you have to put these in quotes. For
+example:</p><pre class="screen"># dracut --install "/bin/foo /sbin/bar" ...</pre></div></dd><dt><span class="term">
+<span class="strong"><strong>--install-optional</strong></span> <span class="emphasis"><em>&lt;file list&gt;</em></span>
+</span></dt><dd>
+ Install the space separated list of files into the initramfs, if they exist.
+</dd><dt><span class="term">
+<span class="strong"><strong>--gzip</strong></span>
+</span></dt><dd>
+ 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".
+</dd><dt><span class="term">
+<span class="strong"><strong>--bzip2</strong></span>
+</span></dt><dd><p class="simpara">
+ Compress the generated initramfs using bzip2.
+</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>Make sure your kernel has bzip2 decompression support compiled in, otherwise you
+will not be able to boot. Equivalent to "--compress=bzip2 -9".</p></div></dd><dt><span class="term">
+<span class="strong"><strong>--lzma</strong></span>
+</span></dt><dd><p class="simpara">
+ Compress the generated initramfs using lzma.
+</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>Make sure your kernel has lzma decompression support compiled in, otherwise you
+will not be able to boot. Equivalent to "--compress=lzma -9 -T0".</p></div></dd><dt><span class="term">
+<span class="strong"><strong>--xz</strong></span>
+</span></dt><dd><p class="simpara">
+ Compress the generated initramfs using xz.
+</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>Make sure your kernel has xz decompression support compiled in, otherwise you
+will not be able to boot. Equivalent to
+"--compress=xz --check=crc32 --lzma2=dict=1MiB -T0".</p></div></dd><dt><span class="term">
+<span class="strong"><strong>--lzo</strong></span>
+</span></dt><dd><p class="simpara">
+ Compress the generated initramfs using lzop.
+</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>Make sure your kernel has lzo decompression support compiled in, otherwise you
+will not be able to boot. Equivalent to "--compress=lzop -9".</p></div></dd><dt><span class="term">
+<span class="strong"><strong>--lz4</strong></span>
+</span></dt><dd><p class="simpara">
+ Compress the generated initramfs using lz4.
+</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>Make sure your kernel has lz4 decompression support compiled in, otherwise you
+will not be able to boot. Equivalent to "--compress=lz4 -l -9".</p></div></dd><dt><span class="term">
+<span class="strong"><strong>--zstd</strong></span>
+</span></dt><dd><p class="simpara">
+ Compress the generated initramfs using Zstandard.
+</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>Make sure your kernel has zstd decompression support compiled in, otherwise you
+will not be able to boot. Equivalent to "--compress=zstd -15 -q -T0".</p></div></dd><dt><span class="term">
+<span class="strong"><strong>--compress</strong></span> <span class="emphasis"><em>&lt;compressor&gt;</em></span>
+</span></dt><dd>
+ 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.
+ The default value can also be set via the <span class="emphasis"><em>INITRD_COMPRESS</em></span> environment
+ variable.
+</dd><dt><span class="term">
+<span class="strong"><strong>--squash-compressor</strong></span> <span class="emphasis"><em>&lt;compressor&gt;</em></span>
+</span></dt><dd>
+ Compress the squashfs image using the passed compressor and compressor
+ specific options for mksquashfs. You can refer to mksquashfs manual for
+ supported compressors and compressor specific options. If squash module is
+ not called when building the initramfs, this option will not take effect.
+</dd><dt><span class="term">
+<span class="strong"><strong>--no-compress</strong></span>
+</span></dt><dd>
+ Do not compress the generated initramfs. This will override any other
+ compression options.
+</dd><dt><span class="term">
+<span class="strong"><strong>--reproducible</strong></span>
+</span></dt><dd>
+ Create reproducible images.
+</dd><dt><span class="term">
+<span class="strong"><strong>--no-reproducible</strong></span>
+</span></dt><dd>
+ Do not create reproducible images.
+</dd><dt><span class="term">
+<span class="strong"><strong>--list-modules</strong></span>
+</span></dt><dd>
+ List all available dracut modules.
+</dd><dt><span class="term">
+<span class="strong"><strong>-M, --show-modules</strong></span>
+</span></dt><dd>
+ Print included module’s name to standard output during build.
+</dd><dt><span class="term">
+<span class="strong"><strong>--keep</strong></span>
+</span></dt><dd>
+ Keep the initramfs temporary directory for debugging purposes.
+</dd><dt><span class="term">
+<span class="strong"><strong>--printsize</strong></span>
+</span></dt><dd>
+ Print out the module install size.
+</dd><dt><span class="term">
+<span class="strong"><strong>--profile</strong></span>
+</span></dt><dd>
+ Output profile information of the build process.
+</dd><dt><span class="term">
+<span class="strong"><strong>--ro-mnt</strong></span>
+</span></dt><dd>
+ Mount / and /usr read-only by default.
+</dd><dt><span class="term">
+<span class="strong"><strong>-L, --stdlog</strong></span> <span class="emphasis"><em>&lt;level&gt;</em></span>
+</span></dt><dd>
+ [0-6] Specify logging level (to standard error).
+</dd></dl></div><pre class="screen"> 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)</pre><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>--regenerate-all</strong></span>
+</span></dt><dd>
+ Regenerate all initramfs images at the default location with the kernel
+ versions found on the system. Additional parameters are passed through.
+</dd><dt><span class="term">
+<span class="strong"><strong>-p, --parallel</strong></span>
+</span></dt><dd>
+ Try to execute tasks in parallel. Currently only supported with
+ <span class="strong"><strong>--regenerate-all</strong></span> (build initramfs images for all kernel
+ versions simultaneously).
+</dd><dt><span class="term">
+<span class="strong"><strong>--noimageifnotneeded</strong></span>
+</span></dt><dd>
+ Do not create an image in host-only mode, if no kernel driver is needed
+and no /etc/cmdline/*.conf will be generated into the initramfs.
+</dd><dt><span class="term">
+<span class="strong"><strong>--loginstall <span class="emphasis"><em>&lt;directory&gt;</em></span></strong></span>
+</span></dt><dd>
+ Log all files installed from the host to <span class="emphasis"><em>&lt;directory&gt;</em></span>.
+</dd><dt><span class="term">
+<span class="strong"><strong>--uefi</strong></span>
+</span></dt><dd>
+ Instead of creating an initramfs image, dracut will create an UEFI
+ executable, which can be executed by an UEFI BIOS. The default output
+ filename is <span class="emphasis"><em>&lt;EFI&gt;/EFI/Linux/linux-$kernel$-&lt;MACHINE_ID&gt;-&lt;BUILD_ID&gt;.efi</em></span>.
+ &lt;EFI&gt; might be <span class="emphasis"><em>/efi</em></span>, <span class="emphasis"><em>/boot</em></span> or <span class="emphasis"><em>/boot/efi</em></span> depending on where the ESP
+ partition is mounted. The &lt;BUILD_ID&gt; is taken from BUILD_ID in
+ <span class="emphasis"><em>/usr/lib/os-release</em></span> or if it exists <span class="emphasis"><em>/etc/os-release</em></span> and is left out,
+ if BUILD_ID is non-existent or empty.
+</dd><dt><span class="term">
+<span class="strong"><strong>--no-uefi</strong></span>
+</span></dt><dd>
+ Disables UEFI mode.
+</dd><dt><span class="term">
+<span class="strong"><strong>--no-machineid</strong></span>
+</span></dt><dd>
+ Affects the default output filename of <span class="strong"><strong>--uefi</strong></span> and will discard the
+ &lt;MACHINE_ID&gt; part.
+</dd><dt><span class="term">
+<span class="strong"><strong>--uefi-stub <span class="emphasis"><em>&lt;file&gt;</em></span></strong></span>
+</span></dt><dd>
+ Specifies the UEFI stub loader, which will load the attached kernel,
+ initramfs and kernel command line and boots the kernel. The default is
+ <span class="emphasis"><em>$prefix/lib/systemd/boot/efi/linux&lt;EFI-MACHINE-TYPE-NAME&gt;.efi.stub</em></span>.
+</dd><dt><span class="term">
+<span class="strong"><strong>--uefi-splash-image <span class="emphasis"><em>&lt;file&gt;</em></span></strong></span>
+</span></dt><dd>
+ Specifies the UEFI stub loader’s splash image. Requires bitmap (<span class="strong"><strong>.bmp</strong></span>)
+ image format.
+</dd><dt><span class="term">
+<span class="strong"><strong>--kernel-image <span class="emphasis"><em>&lt;file&gt;</em></span></strong></span>
+</span></dt><dd>
+ Specifies the kernel image, which to include in the UEFI executable. The
+ default is <span class="emphasis"><em>/lib/modules/&lt;KERNEL-VERSION&gt;/vmlinuz</em></span> or
+ <span class="emphasis"><em>/boot/vmlinuz-&lt;KERNEL-VERSION&gt;</em></span>.
+</dd><dt><span class="term">
+<span class="strong"><strong>--sbat &lt;parameters&gt;</strong></span>
+</span></dt><dd>
+ Specifies the SBAT parameters, which to include in the UEFI executable. By default
+ the default SBAT string added is "sbat,1,SBAT Version,sbat,1,
+ <a class="ulink" href="https://github.com/rhboot/shim/blob/main/SBAT.md" target="_top">https://github.com/rhboot/shim/blob/main/SBAT.md</a>".
+</dd><dt><span class="term">
+<span class="strong"><strong>--enhanced-cpio</strong></span>
+</span></dt><dd>
+ Attempt to use the dracut-cpio binary, which optimizes archive creation for
+ copy-on-write filesystems by using the copy_file_range(2) syscall via Rust’s
+ io::copy(). When specified, initramfs archives are also padded to ensure
+ optimal data alignment for extent sharing. To retain reflink data
+ deduplication benefits, this should be used alongside the <span class="strong"><strong>--no-compress</strong></span>
+ and <span class="strong"><strong>--nostrip</strong></span> parameters, with initramfs source files, <span class="strong"><strong>--tmpdir</strong></span>
+ staging area and destination all on the same copy-on-write capable
+ filesystem.
+</dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_environment"></a>ENVIRONMENT</h2></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="emphasis"><em>INITRD_COMPRESS</em></span>
+</span></dt><dd>
+ sets the default compression program. See <span class="strong"><strong>--compress</strong></span>.
+</dd><dt><span class="term">
+<span class="emphasis"><em>DRACUT_LDCONFIG</em></span>
+</span></dt><dd><p class="simpara">
+ sets the <span class="emphasis"><em>ldconfig</em></span> program path and options. Optional.
+ Used for <span class="strong"><strong>--sysroot</strong></span>.
+</p><p class="simpara">Default:
+ <span class="emphasis"><em>ldconfig</em></span></p></dd><dt><span class="term">
+<span class="emphasis"><em>DRACUT_LDD</em></span>
+</span></dt><dd><p class="simpara">
+ sets the <span class="emphasis"><em>ldd</em></span> program path and options. Optional.
+ Used for <span class="strong"><strong>--sysroot</strong></span>.
+</p><p class="simpara">Default:
+ <span class="emphasis"><em>ldd</em></span></p></dd><dt><span class="term">
+<span class="emphasis"><em>DRACUT_TESTBIN</em></span>
+</span></dt><dd><p class="simpara">
+ sets the initially tested binary for detecting library paths.
+ Optional. Used for <span class="strong"><strong>--sysroot</strong></span>. In the cross-compiled sysroot,
+ the default value (<span class="emphasis"><em>/bin/sh</em></span>) is unusable, as it is an absolute
+ symlink and points outside the sysroot directory.
+</p><p class="simpara">Default:
+ <span class="emphasis"><em>/bin/sh</em></span></p></dd><dt><span class="term">
+<span class="emphasis"><em>DRACUT_INSTALL</em></span>
+</span></dt><dd><p class="simpara">
+ overrides path and options for executing <span class="emphasis"><em>dracut-install</em></span> internally.
+ Optional. Can be used to debug <span class="emphasis"><em>dracut-install</em></span> while running the
+ main dracut script.
+</p><p class="simpara">Default:
+ <span class="emphasis"><em>dracut-install</em></span></p><p class="simpara">Example:
+ DRACUT_INSTALL="valgrind dracut-install"</p></dd><dt><span class="term">
+<span class="emphasis"><em>DRACUT_COMPRESS_BZIP2</em></span>
+, </span><span class="term">
+<span class="emphasis"><em>DRACUT_COMPRESS_LBZIP2</em></span>
+, </span><span class="term">
+<span class="emphasis"><em>DRACUT_COMPRESS_LZMA</em></span>
+, </span><span class="term">
+<span class="emphasis"><em>DRACUT_COMPRESS_XZ</em></span>
+, </span><span class="term">
+<span class="emphasis"><em>DRACUT_COMPRESS_GZIP</em></span>
+, </span><span class="term">
+<span class="emphasis"><em>DRACUT_COMPRESS_PIGZ</em></span>
+, </span><span class="term">
+<span class="emphasis"><em>DRACUT_COMPRESS_LZOP</em></span>
+, </span><span class="term">
+<span class="emphasis"><em>DRACUT_COMPRESS_ZSTD</em></span>
+, </span><span class="term">
+<span class="emphasis"><em>DRACUT_COMPRESS_LZ4</em></span>
+, </span><span class="term">
+<span class="emphasis"><em>DRACUT_COMPRESS_CAT</em></span>
+</span></dt><dd><p class="simpara">
+ overrides for compression utilities to support using them from
+ non-standard paths.
+</p><p class="simpara">Default values are the default compression utility names to be found in <span class="strong"><strong>PATH</strong></span>.</p></dd><dt><span class="term">
+<span class="emphasis"><em>DRACUT_ARCH</em></span>
+</span></dt><dd><p class="simpara">
+ overrides the value of <span class="strong"><strong>uname -m</strong></span>. Used for <span class="strong"><strong>--sysroot</strong></span>.
+</p><p class="simpara">Default:
+ <span class="emphasis"><em>empty</em></span> (the value of <span class="strong"><strong>uname -m</strong></span> on the host system)</p></dd><dt><span class="term">
+<span class="emphasis"><em>SYSTEMD_VERSION</em></span>
+</span></dt><dd>
+ overrides systemd version. Used for <span class="strong"><strong>--sysroot</strong></span>.
+</dd><dt><span class="term">
+<span class="emphasis"><em>SYSTEMCTL</em></span>
+</span></dt><dd>
+ overrides the systemctl binary. Used for <span class="strong"><strong>--sysroot</strong></span>.
+</dd><dt><span class="term">
+<span class="emphasis"><em>NM_VERSION</em></span>
+</span></dt><dd>
+ overrides the NetworkManager version. Used for <span class="strong"><strong>--sysroot</strong></span>.
+</dd><dt><span class="term">
+<span class="emphasis"><em>DRACUT_INSTALL_PATH</em></span>
+</span></dt><dd><p class="simpara">
+ overrides <span class="strong"><strong>PATH</strong></span> environment for <span class="strong"><strong>dracut-install</strong></span> to look for
+ binaries relative to <span class="strong"><strong>--sysroot</strong></span>. In a cross-compiled environment
+ (e.g. Yocto), PATH points to natively built binaries that are not
+ in the host’s /bin, /usr/bin, etc. <span class="strong"><strong>dracut-install</strong></span> still needs plain
+ /bin and /usr/bin that are relative to the cross-compiled sysroot.
+</p><p class="simpara">Default:
+ <span class="emphasis"><em>PATH</em></span></p></dd><dt><span class="term">
+<span class="emphasis"><em>DRACUT_INSTALL_LOG_TARGET</em></span>
+</span></dt><dd><p class="simpara">
+ overrides <span class="strong"><strong>DRACUT_LOG_TARGET</strong></span> for <span class="strong"><strong>dracut-install</strong></span>. It allows
+ running <span class="strong"><strong>dracut-install* to run with different log target that
+ </strong></span>dracut** runs with.
+</p><p class="simpara">Default:
+ <span class="emphasis"><em>DRACUT_LOG_TARGET</em></span></p></dd><dt><span class="term">
+<span class="emphasis"><em>DRACUT_INSTALL_LOG_LEVEL</em></span>
+</span></dt><dd><p class="simpara">
+ overrides <span class="strong"><strong>DRACUT_LOG_LEVEL</strong></span> for <span class="strong"><strong>dracut-install</strong></span>. It allows
+ running <span class="strong"><strong>dracut-install* to run with different log level that
+ </strong></span>dracut** runs with.
+</p><p class="simpara">Default:
+ <span class="emphasis"><em>DRACUT_LOG_LEVEL</em></span></p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_files"></a>FILES</h2></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="emphasis"><em>/var/log/dracut.log</em></span>
+</span></dt><dd>
+ logfile of initramfs image creation
+</dd><dt><span class="term">
+<span class="emphasis"><em>/tmp/dracut.log</em></span>
+</span></dt><dd>
+ logfile of initramfs image creation, if <span class="emphasis"><em>/var/log/dracut.log</em></span> is not
+ writable
+</dd><dt><span class="term">
+<span class="emphasis"><em>/etc/dracut.conf</em></span>
+</span></dt><dd>
+ see dracut.conf5
+</dd><dt><span class="term">
+<span class="emphasis"><em>/etc/dracut.conf.d/*.conf</em></span>
+</span></dt><dd>
+ see dracut.conf5
+</dd><dt><span class="term">
+<span class="emphasis"><em>/usr/lib/dracut/dracut.conf.d/*.conf</em></span>
+</span></dt><dd>
+ see dracut.conf5
+</dd></dl></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_configuration_in_the_initramfs"></a>Configuration in the initramfs</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="emphasis"><em>/etc/conf.d/</em></span>
+</span></dt><dd>
+ Any files found in <span class="emphasis"><em>/etc/conf.d/</em></span> will be sourced in the initramfs to
+ set initial values. Command line options will override these values
+ set in the configuration files.
+</dd><dt><span class="term">
+<span class="emphasis"><em>/etc/cmdline</em></span>
+</span></dt><dd>
+ Can contain additional command line options. Deprecated, better use
+ /etc/cmdline.d/*.conf.
+</dd><dt><span class="term">
+<span class="emphasis"><em>/etc/cmdline.d/*.conf</em></span>
+</span></dt><dd>
+ Can contain additional command line options.
+</dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_availability"></a>AVAILABILITY</h2></div></div></div><p>The dracut command is part of the dracut package and is available from
+<a class="ulink" href="https://github.com/dracut-ng/dracut-ng" target="_top">https://github.com/dracut-ng/dracut-ng</a></p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_authors"></a>AUTHORS</h2></div></div></div><p>Harald Hoyer</p><p>Victor Lowther</p><p>Amadeusz Żołnowski</p><p>Hannes Reinecke</p><p>Daniel Molkentin</p><p>Will Woods</p><p>Philippe Seewer</p><p>Warren Togami</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_see_also"></a>SEE ALSO</h2></div></div></div><p><span class="strong"><strong>dracut.cmdline</strong></span>(7) <span class="strong"><strong>dracut.conf</strong></span>(5) <span class="strong"><strong>lsinitrd</strong></span>(1)</p></div></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="dracutconf5"></a>Chapter 7. DRACUT.CONF(5)</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="#_name_2">NAME</a></span></dt><dt><span class="section"><a href="#_synopsis_2">SYNOPSIS</a></span></dt><dt><span class="section"><a href="#_description_2">Description</a></span></dt><dt><span class="section"><a href="#_files_2">Files</a></span></dt><dt><span class="section"><a href="#_author">AUTHOR</a></span></dt><dt><span class="section"><a href="#_see_also_2">See Also</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_name_2"></a>NAME</h2></div></div></div><p>dracut.conf - configuration file(s) for dracut</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_synopsis_2"></a>SYNOPSIS</h2></div></div></div><p><span class="emphasis"><em>/etc/dracut.conf</em></span>
+<span class="emphasis"><em>/etc/dracut.conf.d/*.conf</em></span>
+<span class="emphasis"><em>/usr/lib/dracut/dracut.conf.d/*.conf</em></span></p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_description_2"></a>Description</h2></div></div></div><p><span class="emphasis"><em>dracut.conf</em></span> is loaded during the initialisation phase of dracut. Command line
+parameter will override any values set here.</p><p><span class="emphasis"><em>*.conf</em></span> files are read from /usr/lib/dracut/dracut.conf.d and
+/etc/dracut.conf.d. Files with the same name in /etc/dracut.conf.d will replace
+files in /usr/lib/dracut/dracut.conf.d.
+The files are then read in alphanumerical order and will override parameters
+set in <span class="emphasis"><em>/etc/dracut.conf</em></span>. Each line specifies an attribute and a value. A <span class="emphasis"><em>#</em></span>
+indicates the beginning of a comment; following characters, up to the end of the
+line are not interpreted.</p><p>dracut command line options will override any values set here.</p><p>Configuration files must have the extension .conf; other extensions are ignored.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>add_dracutmodules+=</strong></span>" <span class="emphasis"><em>&lt;dracut modules&gt;</em></span> "
+</span></dt><dd>
+ Add a space-separated list of dracut modules to call when building the
+ initramfs. Modules are located in <span class="emphasis"><em>/usr/lib/dracut/modules.d</em></span>.
+</dd><dt><span class="term">
+<span class="strong"><strong>force_add_dracutmodules+=</strong></span>" <span class="emphasis"><em>&lt;dracut modules&gt;</em></span> "
+</span></dt><dd>
+ Force to add a space-separated list of dracut modules to the default set of
+ modules, when host-only mode is specified. This parameter can be specified
+ multiple times.
+</dd><dt><span class="term">
+<span class="strong"><strong>omit_dracutmodules+=</strong></span>" <span class="emphasis"><em>&lt;dracut modules&gt;</em></span> "
+</span></dt><dd>
+ Omit a space-separated list of dracut modules to call when building the
+ initramfs. Modules are located in <span class="emphasis"><em>/usr/lib/dracut/modules.d</em></span>.
+</dd><dt><span class="term">
+<span class="strong"><strong>dracutmodules+=</strong></span>" <span class="emphasis"><em>&lt;dracut modules&gt;</em></span> "
+</span></dt><dd>
+ Specify a space-separated list of dracut modules to call when building the
+ initramfs. Modules are located in <span class="emphasis"><em>/usr/lib/dracut/modules.d</em></span>.
+ This option forces dracut to only include the specified dracut modules.
+ In most cases the "add_dracutmodules" option is what you want to use.
+</dd><dt><span class="term">
+<span class="strong"><strong>add_drivers+=</strong></span>" <span class="emphasis"><em>&lt;kernel modules&gt;</em></span> "
+</span></dt><dd>
+ Specify a space-separated list of kernel modules to add to the initramfs.
+ The kernel modules have to be specified without the ".ko" suffix.
+</dd><dt><span class="term">
+<span class="strong"><strong>force_drivers+=</strong></span>" <span class="emphasis"><em>&lt;list of kernel modules&gt;</em></span> "
+</span></dt><dd>
+ See add_drivers above. But in this case it is ensured that the drivers
+ are tried to be loaded early via modprobe.
+</dd><dt><span class="term">
+<span class="strong"><strong>omit_drivers+=</strong></span>" <span class="emphasis"><em>&lt;kernel modules&gt;</em></span> "
+</span></dt><dd>
+ 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.
+</dd><dt><span class="term">
+<span class="strong"><strong>drivers+=</strong></span>" <span class="emphasis"><em>&lt;kernel modules&gt;</em></span> "
+</span></dt><dd>
+ 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.
+</dd><dt><span class="term">
+<span class="strong"><strong>filesystems+=</strong></span>" <span class="emphasis"><em>&lt;filesystem names&gt;</em></span> "
+</span></dt><dd>
+ Specify a space-separated list of kernel filesystem modules to exclusively
+ include in the generic initramfs.
+</dd><dt><span class="term">
+<span class="strong"><strong>drivers_dir=</strong></span>"<span class="emphasis"><em>&lt;kernel modules directory&gt;</em></span>"
+</span></dt><dd>
+ Specify the directory where to look for kernel modules.
+</dd><dt><span class="term">
+<span class="strong"><strong>fw_dir+=</strong></span>" :<span class="emphasis"><em>&lt;dir&gt;</em></span>[:<span class="emphasis"><em>&lt;dir&gt;</em></span> …] "
+</span></dt><dd>
+ Specify additional colon-separated list of directories where to look for
+ firmware files.
+</dd><dt><span class="term">
+<span class="strong"><strong>libdirs+=</strong></span>" <span class="emphasis"><em>&lt;dir&gt;</em></span>[ <span class="emphasis"><em>&lt;dir&gt;</em></span> …] "
+</span></dt><dd>
+ Specify a space-separated list of directories where to look for libraries.
+</dd><dt><span class="term">
+<span class="strong"><strong>install_items+=</strong></span>" <span class="emphasis"><em>&lt;file&gt;</em></span>[ <span class="emphasis"><em>&lt;file&gt;</em></span> …] "
+</span></dt><dd>
+ Specify additional files to include in the initramfs, separated by spaces.
+</dd><dt><span class="term">
+<span class="strong"><strong>install_optional_items+=</strong></span>" <span class="emphasis"><em>&lt;file&gt;</em></span>[ <span class="emphasis"><em>&lt;file&gt;</em></span> …] "
+</span></dt><dd>
+ Specify additional files to include in the initramfs, separated by spaces,
+ if they exist.
+</dd><dt><span class="term">
+<span class="strong"><strong>compress=</strong></span>"<span class="emphasis"><em>{cat|bzip2|lzma|xz|gzip|lzop|lz4|zstd|&lt;compressor [args …]&gt;}</em></span>"
+</span></dt><dd>
+ 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 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.
+ To disable compression, use "cat".
+</dd><dt><span class="term">
+<span class="strong"><strong>squash_compress=</strong></span>"<span class="emphasis"><em>{&lt;compressor [args …]&gt;}</em></span>"
+</span></dt><dd>
+ Compress the squashfs image using the passed compressor and compressor
+ specific options for mksquashfs. You can refer to mksquashfs manual for
+ supported compressors and compressor specific options. If squash module is
+ not called when building the initramfs, this option will not take effect.
+</dd><dt><span class="term">
+<span class="strong"><strong>do_strip=</strong></span>"<span class="emphasis"><em>{yes|no}</em></span>"
+</span></dt><dd>
+ Strip binaries in the initramfs (default=yes).
+</dd><dt><span class="term">
+<span class="strong"><strong>aggressive_strip=</strong></span>"<span class="emphasis"><em>{yes|no}</em></span>"
+</span></dt><dd>
+ Strip more than just debug symbol and sections, for a smaller initramfs
+ build. The "do_strip=yes" option must also be specified (default=no).
+</dd><dt><span class="term">
+<span class="strong"><strong>do_hardlink=</strong></span>"<span class="emphasis"><em>{yes|no}</em></span>"
+</span></dt><dd>
+ Hardlink files in the initramfs (default=yes).
+</dd><dt><span class="term">
+<span class="strong"><strong>prefix=</strong></span>" <span class="emphasis"><em>&lt;directory&gt;</em></span> "
+</span></dt><dd>
+ Prefix initramfs files with <span class="emphasis"><em>&lt;directory&gt;</em></span>.
+</dd><dt><span class="term">
+<span class="strong"><strong>hostonly=</strong></span>"<span class="emphasis"><em>{yes|no}</em></span>"
+</span></dt><dd>
+ Host-only mode: Install only what is needed for booting the local host
+ instead of a generic host and generate host-specific configuration
+ (default=no).
+</dd><dt><span class="term">
+<span class="strong"><strong>hostonly_mode=</strong></span>"<span class="emphasis"><em>{sloppy|strict}</em></span>"
+</span></dt><dd>
+ Specify the host-only mode to use (default=sloppy).
+ In "sloppy" host-only mode, extra drivers and modules will be installed, so
+ minor hardware change won’t make the image unbootable (e.g. changed
+ keyboard), and the image is still portable among similar hosts.
+ With "strict" mode enabled, anything not necessary for booting the local
+ host in its current state will not be included, and modules may do some
+ extra job to save more space. Minor change of hardware or environment could
+ make the image unbootable.
+</dd><dt><span class="term">
+<span class="strong"><strong>hostonly_cmdline=</strong></span>"<span class="emphasis"><em>{yes|no}</em></span>"
+</span></dt><dd>
+ If set to "yes", store the kernel command line arguments needed in the
+ initramfs. If <span class="strong"><strong>hostonly="yes"</strong></span> and this option is not configured, it’s
+ automatically set to "yes".
+</dd><dt><span class="term">
+<span class="strong"><strong>hostonly_nics+=</strong></span>" [<span class="emphasis"><em>&lt;nic&gt;</em></span>[ <span class="emphasis"><em>&lt;nic&gt;</em></span> …]] "
+</span></dt><dd>
+ Only enable listed NICs in the initramfs. The list can be empty, so other
+ modules can install only the necessary network drivers.
+</dd><dt><span class="term">
+<span class="strong"><strong>persistent_policy=</strong></span>"<span class="emphasis"><em>&lt;policy&gt;</em></span>"
+</span></dt><dd>
+ Use <span class="emphasis"><em>&lt;policy&gt;</em></span> to address disks and partitions.
+ <span class="emphasis"><em>&lt;policy&gt;</em></span> can be any directory name found in /dev/disk (e.g. "by-uuid",
+ "by-label"), or "mapper" to use /dev/mapper device names (default=mapper).
+</dd><dt><span class="term">
+<span class="strong"><strong>tmpdir=</strong></span>"<span class="emphasis"><em>&lt;temporary directory&gt;</em></span>"
+</span></dt><dd>
+ Specify temporary directory to use.
+</dd></dl></div><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>If chrooted to another root other than the real root device, use --fstab and
+provide a valid <span class="emphasis"><em>/etc/fstab</em></span>.</p></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>use_fstab=</strong></span>"<span class="emphasis"><em>{yes|no}</em></span>"
+</span></dt><dd>
+ Use <span class="emphasis"><em>/etc/fstab</em></span> instead of <span class="emphasis"><em>/proc/self/mountinfo</em></span> (default=no).
+</dd><dt><span class="term">
+<span class="strong"><strong>add_fstab+=</strong></span>" <span class="emphasis"><em>&lt;filename&gt;</em></span> "
+</span></dt><dd>
+ Add entries of <span class="emphasis"><em>&lt;filename&gt;</em></span> to the initramfs /etc/fstab.
+</dd><dt><span class="term">
+<span class="strong"><strong>add_device+=</strong></span>" <span class="emphasis"><em>&lt;device&gt;</em></span> "
+</span></dt><dd>
+ Bring up <span class="emphasis"><em>&lt;device&gt;</em></span> in initramfs, <span class="emphasis"><em>&lt;device&gt;</em></span> should be the device name.
+ This can be useful in host-only mode for resume support when your swap is on
+ LVM an encrypted partition.
+</dd><dt><span class="term">
+<span class="strong"><strong>mdadmconf=</strong></span>"<span class="emphasis"><em>{yes|no}</em></span>"
+</span></dt><dd>
+ Include local <span class="emphasis"><em>/etc/mdadm.conf</em></span> (default=no).
+</dd><dt><span class="term">
+<span class="strong"><strong>lvmconf=</strong></span>"<span class="emphasis"><em>{yes|no}</em></span>"
+</span></dt><dd>
+ Include local <span class="emphasis"><em>/etc/lvm/lvm.conf</em></span> (default=no).
+</dd><dt><span class="term">
+<span class="strong"><strong>fscks=</strong></span>" <span class="emphasis"><em>&lt;fsck tools&gt;</em></span> "
+</span></dt><dd>
+ Add a space-separated list of fsck tools. If nothing is specified, the
+ default is: "umount mount /sbin/fsck* xfs_db xfs_check xfs_repair e2fsck
+ jfs_fsck reiserfsck btrfsck". The installation is opportunistic
+ (non-existing tools are ignored).
+</dd><dt><span class="term">
+<span class="strong"><strong>nofscks=</strong></span>"<span class="emphasis"><em>{yes|no}</em></span>"
+</span></dt><dd>
+ If specified, inhibit installation of any fsck tools (default=no).
+</dd><dt><span class="term">
+<span class="strong"><strong>ro_mnt=</strong></span>"<span class="emphasis"><em>{yes|no}</em></span>"
+</span></dt><dd>
+ Mount <span class="emphasis"><em>/</em></span> and <span class="emphasis"><em>/usr</em></span> read-only by default (default=no).
+</dd><dt><span class="term">
+<span class="strong"><strong>kernel_cmdline=</strong></span>"<span class="emphasis"><em>parameters</em></span>"
+</span></dt><dd>
+ Specify default kernel command line parameters.
+</dd><dt><span class="term">
+<span class="strong"><strong>kernel_only=</strong></span>"<span class="emphasis"><em>{yes|no}</em></span>"
+</span></dt><dd>
+ Only install kernel drivers and firmware files (default=no).
+</dd><dt><span class="term">
+<span class="strong"><strong>no_kernel=</strong></span>"<span class="emphasis"><em>{yes|no}</em></span>"
+</span></dt><dd>
+ Do not install kernel drivers and firmware files (default=no).
+</dd><dt><span class="term">
+<span class="strong"><strong>acpi_override=</strong></span>"<span class="emphasis"><em>{yes|no}</em></span>"
+</span></dt><dd>
+ [WARNING] ONLY USE THIS IF YOU KNOW WHAT YOU ARE DOING!
+ Override BIOS provided ACPI tables. For further documentation read
+ Documentation/acpi/initrd_table_override.txt in the kernel sources.
+ Search for ACPI table files (must have .aml suffix) in acpi_table_dir=
+ directory (see below) and add them to a separate uncompressed cpio
+ archive. This cpio archive gets glued (concatenated, uncompressed one
+ must be the first one) to the compressed cpio archive. The first,
+ uncompressed cpio archive is for data which the kernel must be able
+ to access very early (and cannot make use of uncompress algorithms yet)
+ like microcode or ACPI tables (default=no).
+</dd><dt><span class="term">
+<span class="strong"><strong>acpi_table_dir=</strong></span>"<span class="emphasis"><em>&lt;dir&gt;</em></span>"
+</span></dt><dd>
+ Directory to search for ACPI tables if acpi_override= is set to yes.
+</dd><dt><span class="term">
+<span class="strong"><strong>early_microcode=</strong></span>"{yes|no}"
+</span></dt><dd>
+ Combine early microcode with ramdisk (default=yes).
+</dd><dt><span class="term">
+<span class="strong"><strong>stdloglvl</strong></span>="<span class="emphasis"><em>{0-6}</em></span>"
+</span></dt><dd>
+ Specify logging level for standard error (default=4).
+</dd></dl></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>Logging levels:</p><pre class="screen"> 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)</pre></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>sysloglvl</strong></span>="<span class="emphasis"><em>{0-6}</em></span>"
+</span></dt><dd>
+ Specify logging level for syslog (default=0).
+</dd><dt><span class="term">
+<span class="strong"><strong>fileloglvl=</strong></span>"<span class="emphasis"><em>{0-6}</em></span>"
+</span></dt><dd>
+ Specify logging level for logfile (default=4).
+</dd><dt><span class="term">
+<span class="strong"><strong>logfile=</strong></span>"<span class="emphasis"><em>&lt;file&gt;</em></span>"
+</span></dt><dd>
+ Path to logfile.
+</dd><dt><span class="term">
+<span class="strong"><strong>sshkey=</strong></span>"<span class="emphasis"><em>&lt;file&gt;</em></span>"
+</span></dt><dd>
+ SSH key file used with ssh-client module.
+</dd><dt><span class="term">
+<span class="strong"><strong>show_modules=</strong></span>"<span class="emphasis"><em>{yes|no}</em></span>"
+</span></dt><dd>
+ Print the name of the included modules to standard output during build
+ (default=no).
+</dd><dt><span class="term">
+<span class="strong"><strong>i18n_vars=</strong></span>"<span class="emphasis"><em>&lt;variable mapping&gt;</em></span>"
+</span></dt><dd>
+ Distribution specific variable mapping.
+ See dracut/modules.d/10i18n/README for a detailed description.
+</dd><dt><span class="term">
+<span class="strong"><strong>i18n_default_font=</strong></span>"<span class="emphasis"><em>&lt;fontname&gt;</em></span>"
+</span></dt><dd>
+ The font &lt;fontname&gt; to install, if not specified otherwise.
+ Default is "eurlatgr".
+</dd><dt><span class="term">
+<span class="strong"><strong>i18n_install_all=</strong></span>"<span class="emphasis"><em>{yes|no}</em></span>"
+</span></dt><dd>
+ Install everything regardless of generic or host-only mode (default=no).
+</dd><dt><span class="term">
+<span class="strong"><strong>reproducible=</strong></span>"<span class="emphasis"><em>{yes|no}</em></span>"
+</span></dt><dd>
+ Create reproducible images (default=no).
+</dd><dt><span class="term">
+<span class="strong"><strong>noimageifnotneeded=</strong></span>"<span class="emphasis"><em>{yes|no}</em></span>"
+</span></dt><dd>
+ Do not create an image in host-only mode, if no kernel driver is needed
+ and no /etc/cmdline/*.conf will be generated into the initramfs
+ (default=no).
+</dd><dt><span class="term">
+<span class="strong"><strong>loginstall=</strong></span>"<span class="emphasis"><em>&lt;directory&gt;</em></span>"
+</span></dt><dd>
+ Log all files installed from the host to <span class="emphasis"><em>&lt;directory&gt;</em></span>.
+</dd><dt><span class="term">
+<span class="strong"><strong>uefi=</strong></span>"<span class="emphasis"><em>{yes|no}</em></span>"
+</span></dt><dd>
+ Instead of creating an initramfs image, dracut will create an UEFI
+ executable, which can be executed by an UEFI BIOS (default=no).
+ The default output filename is
+ <span class="emphasis"><em>&lt;EFI&gt;/EFI/Linux/linux-$kernel$-&lt;MACHINE_ID&gt;-&lt;BUILD_ID&gt;.efi</em></span>.
+ &lt;EFI&gt; might be <span class="emphasis"><em>/efi</em></span>, <span class="emphasis"><em>/boot</em></span> or <span class="emphasis"><em>/boot/efi</em></span> depending on where the ESP
+ partition is mounted. The &lt;BUILD_ID&gt; is taken from BUILD_ID in
+ <span class="emphasis"><em>/usr/lib/os-release</em></span> or if it exists <span class="emphasis"><em>/etc/os-release</em></span> and is left out,
+ if BUILD_ID is non-existent or empty.
+</dd><dt><span class="term">
+<span class="strong"><strong>machine_id=</strong></span>"<span class="emphasis"><em>{yes|no}</em></span>"
+</span></dt><dd>
+ Affects the default output filename of the UEFI executable, including the
+ &lt;MACHINE_ID&gt; part (default=yes).
+</dd><dt><span class="term">
+<span class="strong"><strong>uefi_stub=</strong></span>"<span class="emphasis"><em>&lt;file&gt;</em></span>"
+</span></dt><dd>
+ Specifies the UEFI stub loader, which will load the attached kernel,
+ initramfs and kernel command line and boots the kernel. The default is
+ <span class="emphasis"><em>/lib/systemd/boot/efi/linux&lt;EFI-MACHINE-TYPE-NAME&gt;.efi.stub</em></span>.
+</dd><dt><span class="term">
+<span class="strong"><strong>uefi_splash_image=</strong></span>"<span class="emphasis"><em>&lt;file&gt;</em></span>"
+</span></dt><dd>
+ Specifies the UEFI stub loader’s splash image. Requires bitmap (<span class="strong"><strong>.bmp</strong></span>)
+ image format.
+</dd><dt><span class="term">
+<span class="strong"><strong>uefi_secureboot_cert=</strong></span>"<span class="emphasis"><em>&lt;file&gt;</em></span>", <span class="strong"><strong>uefi_secureboot_key=</strong></span>"<span class="emphasis"><em>&lt;file&gt;</em></span>"
+</span></dt><dd>
+ Specifies a certificate and corresponding key, which are used to sign the
+ created UEFI executable.
+ Requires both certificate and key need to be specified and <span class="emphasis"><em>sbsign</em></span> to be
+ installed.
+</dd><dt><span class="term">
+<span class="strong"><strong>uefi_secureboot_engine=</strong></span>"<span class="emphasis"><em>parameter</em></span>"
+</span></dt><dd>
+ Specifies an engine to use when signing the created UEFI executable. E.g. "pkcs11"
+</dd><dt><span class="term">
+<span class="strong"><strong>kernel_image=</strong></span>"<span class="emphasis"><em>&lt;file&gt;</em></span>"
+</span></dt><dd>
+ Specifies the kernel image, which to include in the UEFI executable. The
+ default is <span class="emphasis"><em>/lib/modules/&lt;KERNEL-VERSION&gt;/vmlinuz</em></span> or
+ <span class="emphasis"><em>/boot/vmlinuz-&lt;KERNEL-VERSION&gt;</em></span>.
+</dd><dt><span class="term">
+<span class="strong"><strong>sbat=</strong></span>"<span class="emphasis"><em>parameters</em></span>"
+</span></dt><dd>
+ Specifies the SBAT parameters, which to include in the UEFI executable. By default
+ the default SBAT string added is "sbat,1,SBAT Version,sbat,1,
+ <a class="ulink" href="https://github.com/rhboot/shim/blob/main/SBAT.md" target="_top">https://github.com/rhboot/shim/blob/main/SBAT.md</a>".
+</dd><dt><span class="term">
+<span class="strong"><strong>enhanced_cpio=</strong></span>"<span class="emphasis"><em>{yes|no}</em></span>"
+</span></dt><dd>
+ Attempt to use the dracut-cpio binary, which optimizes archive creation for
+ copy-on-write filesystems (default=no).
+ When specified, initramfs archives are also padded to ensure optimal data
+ alignment for extent sharing. To retain reflink data deduplication benefits,
+ this should be used alongside the <span class="strong"><strong>compress="cat"</strong></span> and <span class="strong"><strong>do_strip="no"</strong></span>
+ parameters, with initramfs source files, <span class="strong"><strong>tmpdir</strong></span> staging area and
+ destination all on the same copy-on-write capable filesystem.
+</dd><dt><span class="term">
+<span class="strong"><strong>parallel=</strong></span>"<span class="emphasis"><em>{yes|no}</em></span>"
+</span></dt><dd>
+ If set to <span class="emphasis"><em>yes</em></span>, try to execute tasks in parallel (currently only supported
+ for <span class="emphasis"><em>--regenerate-all</em></span>).
+</dd><dt><span class="term">
+<span class="strong"><strong>initrdname=</strong></span>"<span class="emphasis"><em>&lt;filepattern&gt;</em></span>"
+</span></dt><dd>
+ Specifies the file name for the generated initramfs if it is not set otherwise.
+ file pattern and only one file with this pattern should exists in the
+</dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_files_2"></a>Files</h2></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="emphasis"><em>/etc/dracut.conf</em></span>
+</span></dt><dd>
+ Old configuration file. You better use your own file in
+ <span class="emphasis"><em>/etc/dracut.conf.d/</em></span>.
+</dd><dt><span class="term">
+<span class="emphasis"><em>/etc/dracut.conf.d/</em></span>
+</span></dt><dd>
+ Any <span class="emphasis"><em>/etc/dracut.conf.d/*.conf</em></span> file can override the values in
+ <span class="emphasis"><em>/etc/dracut.conf</em></span>. The configuration files are read in alphanumerical
+ order.
+</dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_author"></a>AUTHOR</h2></div></div></div><p>Harald Hoyer</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_see_also_2"></a>See Also</h2></div></div></div><p><span class="strong"><strong>dracut</strong></span>(8) <span class="strong"><strong>dracut.cmdline</strong></span>(7)</p></div></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="dracutcmdline7"></a>Chapter 8. DRACUT.CMDLINE(7)</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="#_name_3">NAME</a></span></dt><dt><span class="section"><a href="#_description_3">DESCRIPTION</a></span></dt><dd><dl><dt><span class="section"><a href="#_standard">Standard</a></span></dt><dt><span class="section"><a href="#_iso_scan_filename">iso-scan/filename</a></span></dt><dt><span class="section"><a href="#_misc">Misc</a></span></dt><dt><span class="section"><a href="#dracutkerneldebug">Debug</a></span></dt><dt><span class="section"><a href="#_i18n">I18N</a></span></dt><dt><span class="section"><a href="#_lvm">LVM</a></span></dt><dt><span class="section"><a href="#_crypto_luks">crypto LUKS</a></span></dt><dt><span class="section"><a href="#_crypto_luks_key_on_removable_device_support">crypto LUKS - key on removable device support</a></span></dt><dt><span class="section"><a href="#_md_raid">MD RAID</a></span></dt><dt><span class="section"><a href="#_dm_raid">DM RAID</a></span></dt><dt><span class="section"><a href="#_multipath">MULTIPATH</a></span></dt><dt><span class="section"><a href="#_fips">FIPS</a></span></dt><dt><span class="section"><a href="#_network">Network</a></span></dt><dt><span class="section"><a href="#_nfs">NFS</a></span></dt><dt><span class="section"><a href="#_cifs">CIFS</a></span></dt><dt><span class="section"><a href="#_iscsi">iSCSI</a></span></dt><dt><span class="section"><a href="#_fcoe">FCoE</a></span></dt><dt><span class="section"><a href="#_nvmf">NVMf</a></span></dt><dt><span class="section"><a href="#_nbd">NBD</a></span></dt><dt><span class="section"><a href="#_virtiofs">VIRTIOFS</a></span></dt><dt><span class="section"><a href="#_dasd">DASD</a></span></dt><dt><span class="section"><a href="#_zfcp">ZFCP</a></span></dt><dt><span class="section"><a href="#_znet">ZNET</a></span></dt><dt><span class="section"><a href="#_booting_live_images">Booting live images</a></span></dt><dt><span class="section"><a href="#_zipl">ZIPL</a></span></dt><dt><span class="section"><a href="#_cio_ignore">CIO_IGNORE</a></span></dt><dt><span class="section"><a href="#_plymouth_boot_splash">Plymouth Boot Splash</a></span></dt><dt><span class="section"><a href="#_kernel_keys">Kernel keys</a></span></dt><dt><span class="section"><a href="#_deprecated_renamed_options">Deprecated, renamed Options</a></span></dt><dt><span class="section"><a href="#_configuration_in_the_initramfs_2">Configuration in the Initramfs</a></span></dt></dl></dd><dt><span class="section"><a href="#_author_2">AUTHOR</a></span></dt><dt><span class="section"><a href="#_see_also_3">SEE ALSO</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_name_3"></a>NAME</h2></div></div></div><p>dracut.cmdline - dracut kernel command line options</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_description_3"></a>DESCRIPTION</h2></div></div></div><p>The root device used by the kernel is specified in the boot configuration
+file on the kernel command line, as always.</p><p>The traditional <span class="emphasis"><em>root=/dev/sda1</em></span> style device specification is allowed, but not
+encouraged. The root device should better be identified by LABEL or UUID. If a
+label is used, as in <span class="emphasis"><em>root=LABEL=&lt;label_of_root&gt;</em></span> the initramfs will search all
+available devices for a filesystem with the appropriate label, and mount that
+device as the root filesystem. <span class="emphasis"><em>root=UUID=&lt;uuidnumber&gt;</em></span> will mount the partition
+with that UUID as the root filesystem.</p><p>In the following all kernel command line parameters, which are processed by
+dracut, are described.</p><p>"rd.*" parameters mentioned without "=" are boolean parameters. They can be
+turned on/off by setting them to {0|1}. If the assignment with "=" is missing
+"=1" is implied. For example <span class="emphasis"><em>rd.info</em></span> can be turned off with <span class="emphasis"><em>rd.info=0</em></span> or
+turned on with <span class="emphasis"><em>rd.info=1</em></span> or <span class="emphasis"><em>rd.info</em></span>. The last value in the kernel command
+line is the value, which is honored.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_standard"></a>Standard</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>init=</strong></span><span class="emphasis"><em>&lt;path to real init&gt;</em></span>
+</span></dt><dd>
+ specify the path to the init program to be started after the initramfs has
+ finished
+</dd><dt><span class="term">
+<span class="strong"><strong>root=</strong></span><span class="emphasis"><em>&lt;path to blockdevice&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ specify the block device to use as the root filesystem.
+</p><p><strong>Example. </strong>
+</p><pre class="screen">root=/dev/sda1
+root=/dev/disk/by-path/pci-0000:00:1f.1-scsi-0:0:1:0-part1
+root=/dev/disk/by-label/Root
+root=LABEL=Root
+root=/dev/disk/by-uuid/3f5ad593-4546-4a94-a374-bcfb68aa11f7
+root=UUID=3f5ad593-4546-4a94-a374-bcfb68aa11f7
+root=PARTUUID=3f5ad593-4546-4a94-a374-bcfb68aa11f7</pre><p>
+</p></dd><dt><span class="term">
+<span class="strong"><strong>rootfstype=</strong></span><span class="emphasis"><em>&lt;filesystem type&gt;</em></span>
+</span></dt><dd><p class="simpara">
+"auto" if not specified.
+</p><p><strong>Example. </strong>
+</p><pre class="screen">rootfstype=ext4</pre><p>
+</p></dd><dt><span class="term">
+<span class="strong"><strong>rootflags=</strong></span><span class="emphasis"><em>&lt;mount options&gt;</em></span>
+</span></dt><dd>
+ specify additional mount options for the root filesystem. If not set,
+ <span class="emphasis"><em>/etc/fstab</em></span> of the real root will be parsed for special mount options and
+ mounted accordingly.
+</dd><dt><span class="term">
+<span class="strong"><strong>ro</strong></span>
+</span></dt><dd>
+ force mounting <span class="emphasis"><em>/</em></span> and <span class="emphasis"><em>/usr</em></span> (if it is a separate device) read-only. If
+ none of ro and rw is present, both are mounted according to <span class="emphasis"><em>/etc/fstab</em></span>.
+</dd><dt><span class="term">
+<span class="strong"><strong>rw</strong></span>
+</span></dt><dd>
+ force mounting <span class="emphasis"><em>/</em></span> and <span class="emphasis"><em>/usr</em></span> (if it is a separate device) read-write.
+ See also ro option.
+</dd><dt><span class="term">
+<span class="strong"><strong>rootfallback=</strong></span><span class="emphasis"><em>&lt;path to blockdevice&gt;</em></span>
+</span></dt><dd>
+ specify the block device to use as the root filesystem, if the normal root
+ cannot be found. This can only be a simple block device with a simple file
+ system, for which the filesystem driver is either compiled in, or added
+ manually to the initramfs. This parameter can be specified multiple times.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.auto</strong></span> <span class="strong"><strong>rd.auto=1</strong></span>
+</span></dt><dd>
+ enable autoassembly of special devices like cryptoLUKS, dmraid, mdraid or
+ lvm. Default is off as of dracut version &gt;= 024.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.hostonly=0</strong></span>
+</span></dt><dd>
+ removes all compiled in configuration of the host system the initramfs image
+ was built on. This helps booting, if any disk layout changed, especially in
+ combination with rd.auto or other parameters specifying the layout.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.cmdline=ask</strong></span>
+</span></dt><dd>
+ prompts the user for additional kernel command line parameters
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.fstab=0</strong></span>
+</span></dt><dd>
+ do not honor special mount options for the root filesystem found in
+ <span class="emphasis"><em>/etc/fstab</em></span> of the real root.
+</dd><dt><span class="term">
+<span class="strong"><strong>resume=</strong></span><span class="emphasis"><em>&lt;path to resume partition&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ resume from a swap partition
+</p><p><strong>Example. </strong>
+</p><pre class="screen">resume=/dev/disk/by-path/pci-0000:00:1f.1-scsi-0:0:1:0-part1
+resume=/dev/disk/by-uuid/3f5ad593-4546-4a94-a374-bcfb68aa11f7
+resume=UUID=3f5ad593-4546-4a94-a374-bcfb68aa11f7</pre><p>
+</p></dd><dt><span class="term">
+<span class="strong"><strong>rd.skipfsck</strong></span>
+</span></dt><dd>
+ skip fsck for rootfs and <span class="emphasis"><em>/usr</em></span>. If you’re mounting <span class="emphasis"><em>/usr</em></span> read-only and
+ the init system performs fsck before remount, you might want to use this
+ option to avoid duplication.
+</dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_iso_scan_filename"></a>iso-scan/filename</h3></div></div></div><p>Mount all mountable devices and search for ISO pointed by the argument. When
+the ISO is found set it up as a loop device. Device containing this ISO
+image will stay mounted at /run/initramfs/isoscandev.
+Using iso-scan/filename with a Fedora/Red Hat/CentOS Live iso should just work
+by copying the original kernel cmdline parameters.</p><p><strong>Example. </strong>
+</p><pre class="screen">menuentry 'Live Fedora 20' --class fedora --class gnu-linux --class gnu --class os {
+ set isolabel=Fedora-Live-LXDE-x86_64-20-1
+ set isofile="/boot/iso/Fedora-Live-LXDE-x86_64-20-1.iso"
+ loopback loop $isofile
+ linux (loop)/isolinux/vmlinuz0 boot=isolinux iso-scan/filename=$isofile root=live:LABEL=$isolabel ro rd.live.image quiet rhgb
+ initrd (loop)/isolinux/initrd0.img
+}</pre><p>
+</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_misc"></a>Misc</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>rd.emergency=</strong></span><span class="emphasis"><em>[reboot|poweroff|halt]</em></span>
+</span></dt><dd>
+ specify, what action to execute in case of a critical failure. rd.shell=0 must also
+ be specified.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.driver.blacklist=</strong></span><span class="emphasis"><em>&lt;drivername&gt;</em></span>[,<span class="emphasis"><em>&lt;drivername&gt;</em></span>,…]
+</span></dt><dd>
+ do not load kernel module &lt;drivername&gt;. This parameter can be specified
+ multiple times.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.driver.pre=</strong></span><span class="emphasis"><em>&lt;drivername&gt;</em></span>[,<span class="emphasis"><em>&lt;drivername&gt;</em></span>,…]
+</span></dt><dd>
+ force loading kernel module &lt;drivername&gt;. This parameter can be specified
+ multiple times.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.driver.post=</strong></span><span class="emphasis"><em>&lt;drivername&gt;</em></span>[,<span class="emphasis"><em>&lt;drivername&gt;</em></span>,…]
+</span></dt><dd>
+ force loading kernel module &lt;drivername&gt; after all automatic loading modules
+ have been loaded. This parameter can be specified multiple times.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.retry=</strong></span><span class="emphasis"><em>&lt;seconds&gt;</em></span>
+</span></dt><dd>
+ specify how long dracut should retry the initqueue to configure devices.
+ The default is 180 seconds. After 2/3 of the time, degraded raids are force
+ started. If you have hardware, which takes a very long time to announce its
+ drives, you might want to extend this value.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.timeout=</strong></span><span class="emphasis"><em>&lt;seconds&gt;</em></span>
+</span></dt><dd>
+ specify how long dracut should wait for devices to appear. The
+ default is <span class="emphasis"><em>0</em></span>, which means <span class="emphasis"><em>forever</em></span>. Note that this timeout
+ should be longer than rd.retry to allow for proper configuration.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.noverifyssl</strong></span>
+</span></dt><dd>
+ accept self-signed certificates for ssl downloads.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.ctty=</strong></span><span class="emphasis"><em>&lt;terminal device&gt;</em></span>
+</span></dt><dd>
+ specify the controlling terminal for the console.
+ This is useful, if you have multiple "console=" arguments.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.shutdown.timeout.umount=</strong></span><span class="emphasis"><em>&lt;seconds&gt;</em></span>
+</span></dt><dd>
+ specify how long dracut should wait for an individual umount to finish
+ during shutdown. This avoids the system from blocking when unmounting a file
+ system cannot complete and waits indefinitely. Value <span class="emphasis"><em>0</em></span> means to wait
+ <span class="emphasis"><em>forever</em></span>. The default is 90 seconds.
+</dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="dracutkerneldebug"></a>Debug</h3></div></div></div><p>If you are dropped to an emergency shell, the file
+<span class="emphasis"><em>/run/initramfs/rdsosreport.txt</em></span> is created, which can be saved to a (to be
+mounted by hand) partition (usually /boot) or a USB stick. Additional debugging
+info can be produced by adding <span class="strong"><strong>rd.debug</strong></span> to the kernel command line.
+<span class="emphasis"><em>/run/initramfs/rdsosreport.txt</em></span> contains all logs and the output of some tools.
+It should be attached to any report about dracut problems.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>rd.info</strong></span>
+</span></dt><dd>
+ print informational output though "quiet" is set
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.shell</strong></span>
+</span></dt><dd>
+ allow dropping to a shell, if root mounting fails
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.debug</strong></span>
+</span></dt><dd>
+ set -x for the dracut shell.
+ If systemd is active in the initramfs, all output is logged to the systemd
+ journal, which you can inspect with "journalctl -ab".
+ If systemd is not active, the logs are written to dmesg and
+ <span class="emphasis"><em>/run/initramfs/init.log</em></span>.
+ If "quiet" is set, it also logs to the console.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.memdebug=[0-5]</strong></span>
+</span></dt><dd><p class="simpara">
+ Print memory usage info at various points, set the verbose level from 0 to 5.
+</p><pre class="literallayout">Higher level means more debugging output:</pre><pre class="screen"> 0 - no output
+ 1 - partial /proc/meminfo
+ 2 - /proc/meminfo
+ 3 - /proc/meminfo + /proc/slabinfo
+ 4 - /proc/meminfo + /proc/slabinfo + memstrack summary
+ NOTE: memstrack is a memory tracing tool that tracks the total memory
+ consumption, and peak memory consumption of each kernel modules
+ and userspace progress during the whole initramfs runtime, report
+ is generated and the end of initramsfs run.
+ 5 - /proc/meminfo + /proc/slabinfo + memstrack (with top memory stacktrace)
+ NOTE: memstrack (with top memory stacktrace) will print top memory
+ allocation stack traces during the whole initramfs runtime.</pre></dd><dt><span class="term">
+<span class="strong"><strong>rd.break</strong></span>
+</span></dt><dd>
+ drop to a shell at the end
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.break=</strong></span><span class="emphasis"><em>{cmdline|pre-udev|pre-trigger|initqueue|pre-mount|mount|pre-pivot|cleanup}</em></span>
+</span></dt><dd>
+ drop to a shell before the defined breakpoint starts.
+ This parameter can be specified multiple times.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.udev.log_level=</strong></span><span class="emphasis"><em>{err|info|debug}</em></span>
+</span></dt><dd>
+ set udev log level. The default is <span class="emphasis"><em>err</em></span>.
+</dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_i18n"></a>I18N</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>rd.vconsole.keymap=</strong></span><span class="emphasis"><em>&lt;keymap base file name&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ keyboard translation table loaded by loadkeys; taken from keymaps directory;
+ will be written as KEYMAP to <span class="emphasis"><em>/etc/vconsole.conf</em></span> in the initramfs.
+</p><p><strong>Example. </strong>
+</p><pre class="screen">rd.vconsole.keymap=de-latin1-nodeadkeys</pre><p>
+</p></dd><dt><span class="term">
+<span class="strong"><strong>rd.vconsole.keymap.ext=</strong></span><span class="emphasis"><em>&lt;list of keymap base file names&gt;</em></span>
+</span></dt><dd>
+ list of extra keymaps to bo loaded (sep. by space); will be written as
+ EXT_KEYMAP to <span class="emphasis"><em>/etc/vconsole.conf</em></span> in the initramfs
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.vconsole.unicode</strong></span>
+</span></dt><dd>
+ boolean, indicating UTF-8 mode; will be written as UNICODE to
+ <span class="emphasis"><em>/etc/vconsole.conf</em></span> in the initramfs
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.vconsole.font=</strong></span><span class="emphasis"><em>&lt;font base file name&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ console font; taken from consolefonts directory; will be written as FONT to
+ <span class="emphasis"><em>/etc/vconsole.conf</em></span> in the initramfs.
+</p><p><strong>Example. </strong>
+</p><pre class="screen">rd.vconsole.font=eurlatgr</pre><p>
+</p></dd><dt><span class="term">
+<span class="strong"><strong>rd.vconsole.font.map=</strong></span><span class="emphasis"><em>&lt;console map base file name&gt;</em></span>
+</span></dt><dd>
+ see description of <span class="emphasis"><em>-m</em></span> parameter in setfont manual; taken from consoletrans
+ directory; will be written as FONT_MAP to <span class="emphasis"><em>/etc/vconsole.conf</em></span> in the
+ initramfs
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.vconsole.font.unimap=</strong></span><span class="emphasis"><em>&lt;unicode table base file name&gt;</em></span>
+</span></dt><dd>
+ see description of <span class="emphasis"><em>-u</em></span> parameter in setfont manual; taken from unimaps
+ directory; will be written as FONT_UNIMAP to <span class="emphasis"><em>/etc/vconsole.conf</em></span> in the
+ initramfs
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.locale.LANG=</strong></span><span class="emphasis"><em>&lt;locale&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ taken from the environment; if no UNICODE is defined we set its value in
+ basis of LANG value (whether it ends with ".utf8" (or similar) or not); will
+ be written as LANG to <span class="emphasis"><em>/etc/locale.conf</em></span> in the initramfs.
+</p><p><strong>Example. </strong>
+</p><pre class="screen">rd.locale.LANG=pl_PL.utf8</pre><p>
+</p></dd><dt><span class="term">
+<span class="strong"><strong>rd.locale.LC_ALL=</strong></span><span class="emphasis"><em>&lt;locale&gt;</em></span>
+</span></dt><dd>
+ taken from the environment; will be written as LC_ALL to <span class="emphasis"><em>/etc/locale.conf</em></span>
+ in the initramfs
+</dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_lvm"></a>LVM</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>rd.lvm=0</strong></span>
+</span></dt><dd>
+ disable LVM detection
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.lvm.vg=</strong></span><span class="emphasis"><em>&lt;volume group name&gt;</em></span>
+</span></dt><dd>
+ only activate all logical volumes in the the volume groups with the given name.
+ rd.lvm.vg can be specified multiple times on the kernel command line.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.lvm.lv=</strong></span><span class="emphasis"><em>&lt;volume group name&gt;/&lt;logical volume name&gt;</em></span>
+</span></dt><dd>
+ only activate the logical volumes with the given name.
+ rd.lvm.lv can be specified multiple times on the kernel command line.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.lvm.conf=0</strong></span>
+</span></dt><dd>
+ remove any <span class="emphasis"><em>/etc/lvm/lvm.conf</em></span>, which may exist in the initramfs
+</dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_crypto_luks"></a>crypto LUKS</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>rd.luks=0</strong></span>
+</span></dt><dd>
+ disable crypto LUKS detection
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.luks.uuid=</strong></span><span class="emphasis"><em>&lt;luks uuid&gt;</em></span>
+</span></dt><dd>
+ only activate the LUKS partitions with the given UUID. Any "luks-" of the
+ LUKS UUID is removed before comparing to <span class="emphasis"><em>&lt;luks uuid&gt;</em></span>.
+ The comparisons also matches, if <span class="emphasis"><em>&lt;luks uuid&gt;</em></span> is only the beginning of the
+ LUKS UUID, so you don’t have to specify the full UUID.
+ This parameter can be specified multiple times.
+ <span class="emphasis"><em>&lt;luks uuid&gt;</em></span> may be prefixed by the keyword <code class="literal">keysource:</code>, see
+ <span class="emphasis"><em>rd.luks.key</em></span> below.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.luks.allow-discards=</strong></span><span class="emphasis"><em>&lt;luks uuid&gt;</em></span>
+</span></dt><dd>
+ Allow using of discards (TRIM) requests for LUKS partitions with the given
+ UUID. Any "luks-" of the LUKS UUID is removed before comparing to
+ <span class="emphasis"><em>&lt;luks uuid&gt;</em></span>. The comparisons also matches, if <span class="emphasis"><em>&lt;luks uuid&gt;</em></span> is only the
+ beginning of the LUKS UUID, so you don’t have to specify the full UUID.
+ This parameter can be specified multiple times.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.luks.allow-discards</strong></span>
+</span></dt><dd>
+ Allow using of discards (TRIM) requests on all LUKS partitions.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.luks.crypttab=0</strong></span>
+</span></dt><dd>
+ do not check, if LUKS partition is in <span class="emphasis"><em>/etc/crypttab</em></span>
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.luks.timeout=</strong></span><span class="emphasis"><em>&lt;seconds&gt;</em></span>
+</span></dt><dd>
+ specify how long dracut should wait when waiting for the user to enter the
+ password. This avoid blocking the boot if no password is entered. It does
+ not apply to luks key. The default is <span class="emphasis"><em>0</em></span>, which means <span class="emphasis"><em>forever</em></span>.
+</dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_crypto_luks_key_on_removable_device_support"></a>crypto LUKS - key on removable device support</h3></div></div></div><p>NB: If systemd is included in the dracut initrd, dracut’s built in
+removable device keying support won’t work. systemd will prompt for
+a password from the console even if you’ve supplied <span class="strong"><strong>rd.luks.key</strong></span>.
+You may be able to use standard systemd <span class="strong"><strong>fstab</strong></span>(5) syntax to
+get the same effect. If you do need <span class="strong"><strong>rd.luks.key</strong></span> to work,
+you will have to exclude the "systemd" dracut module and any modules
+that depend on it. See <span class="strong"><strong>dracut.conf</strong></span>(5) and
+<a class="ulink" href="https://bugzilla.redhat.com/show_bug.cgi?id=905683" target="_top">https://bugzilla.redhat.com/show_bug.cgi?id=905683</a> for more
+information.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>rd.luks.key=</strong></span><span class="emphasis"><em>&lt;keypath&gt;[:&lt;keydev&gt;[:&lt;luksdev&gt;]]</em></span>
+</span></dt><dd><p class="simpara">
+ <span class="emphasis"><em>&lt;keypath&gt;</em></span> is the pathname of a key file, relative to the root
+ of the filesystem on some device. It’s REQUIRED. When
+ <span class="emphasis"><em>&lt;keypath&gt;</em></span> ends with <span class="emphasis"><em>.gpg</em></span> it’s considered to be key encrypted
+ symmetrically with GPG. You will be prompted for the GPG password on
+ boot. GPG support comes with the <span class="emphasis"><em>crypt-gpg</em></span> module, which needs to be
+ added explicitly.
+</p><p class="simpara"><span class="emphasis"><em>&lt;keydev&gt;</em></span> identifies the device on which the key file resides. It may
+be the kernel name of the device (should start with "/dev/"), a UUID
+(prefixed with "UUID=") or a label (prefix with "LABEL="). You don’t
+have to specify a full UUID. Just its beginning will suffice, even if
+its ambiguous. All matching devices will be probed. This parameter is
+recommended, but not required. If it’s not present, all block devices will
+be probed, which may significantly increase boot time.</p><p class="simpara">If <span class="emphasis"><em>&lt;luksdev&gt;</em></span> is given, the specified key will only be used for
+the specified LUKS device. Possible values are the same as for
+<span class="emphasis"><em>&lt;keydev&gt;</em></span>. Unless you have several LUKS devices, you don’t have to
+specify this parameter. The simplest usage is:</p><p><strong>Example. </strong>
+</p><pre class="screen">rd.luks.key=/foo/bar.key</pre><p>
+</p><p class="simpara">As you see, you can skip colons in such a case.</p></dd></dl></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>Your LUKS partition must match your key file.</p><p>dracut provides keys to cryptsetup with <span class="emphasis"><em>-d</em></span> (an older alias for
+<span class="emphasis"><em>--key-file</em></span>). This uses the entire binary
+content of the key file as part of the secret. If
+you pipe a password into cryptsetup <span class="strong"><strong>without</strong></span> <span class="emphasis"><em>-d</em></span> or <span class="emphasis"><em>--key-file</em></span>,
+it will be treated as text user input, and only characters before
+the first newline will be used. Therefore, when you’re creating
+an encrypted partition for dracut to mount, and you pipe a key into
+<span class="emphasis"><em>cryptsetup luksFormat</em></span>,you must use <span class="emphasis"><em>-d -</em></span>.</p><p>Here is an example for a key encrypted with GPG (warning:
+<span class="emphasis"><em>--batch-mode</em></span> will overwrite the device without asking for
+confirmation):</p><pre class="screen">gpg --quiet --decrypt rootkey.gpg | \
+cryptsetup --batch-mode --key-file - \
+ luksFormat /dev/sda47</pre><p>If you use unencrypted key files, just use the key file pathname
+instead of the standard input. For a random key with 256 bits of
+entropy, you might use:</p><pre class="screen">head -32c /dev/urandom &gt; rootkey.key
+cryptsetup --batch-mode --key-file rootkey.key \
+ luksFormat /dev/sda47</pre><p>You can also use regular key files on an encrypted <span class="emphasis"><em>keydev</em></span>.</p><p>Compared to using GPG encrypted keyfiles on an unencrypted
+device this provides the following advantages:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+you can unlock your disk(s) using multiple passphrases
+</li><li class="listitem">
+better security by not losing the key stretching mechanism
+</li></ul></div><p>To use an encrypted <span class="emphasis"><em>keydev</em></span> you <span class="strong"><strong>must</strong></span> ensure that it becomes
+available by using the keyword <code class="literal">keysource</code>, e.g.
+<code class="literal">rd.luks.uuid=keysource:aaaa</code>
+<span class="emphasis"><em>aaaa</em></span> being the uuid of the encrypted <span class="emphasis"><em>keydev</em></span>.</p><p>Example:</p><p>Lets assume you have three disks <span class="emphasis"><em>A</em></span>, <span class="emphasis"><em>B</em></span> and <span class="emphasis"><em>C</em></span> with the uuids
+<span class="emphasis"><em>aaaa</em></span>, <span class="emphasis"><em>bbbb</em></span> and <span class="emphasis"><em>cccc</em></span>.
+You want to unlock <span class="emphasis"><em>A</em></span> and <span class="emphasis"><em>B</em></span> using keyfile <span class="emphasis"><em>keyfile</em></span>.
+The unlocked volumes be <span class="emphasis"><em>A'</em></span>, <span class="emphasis"><em>B'</em></span> and <span class="emphasis"><em>C'</em></span> with the uuids
+<span class="emphasis"><em>AAAA</em></span>, <span class="emphasis"><em>BBBB</em></span> and <span class="emphasis"><em>CCCC</em></span>.
+<span class="emphasis"><em>keyfile</em></span> is saved on <span class="emphasis"><em>C'</em></span> as <span class="emphasis"><em>/keyfile</em></span>.</p><p>One luks keyslot of each <span class="emphasis"><em>A</em></span>, <span class="emphasis"><em>B</em></span> and <span class="emphasis"><em>C</em></span> is setup with a
+passphrase.
+Another luks keyslot of each <span class="emphasis"><em>A</em></span> and <span class="emphasis"><em>B</em></span> is setup with <span class="emphasis"><em>keyfile</em></span>.</p><p>To boot this configuration you could use:</p><pre class="screen">rd.luks.uuid=aaaa
+rd.luks.uuid=bbbb
+rd.luks.uuid=keysource:cccc
+rd.luks.key=/keyfile:UUID=CCCC</pre><p>Dracut asks for the passphrase for <span class="emphasis"><em>C</em></span> and uses the
+keyfile to unlock <span class="emphasis"><em>A</em></span> and <span class="emphasis"><em>B</em></span>.
+If getting the passphrase for <span class="emphasis"><em>C</em></span> fails it falls back to
+asking for the passphrases for <span class="emphasis"><em>A</em></span> and <span class="emphasis"><em>B</em></span>.</p><p>If you want <span class="emphasis"><em>C'</em></span> to stay unlocked, specify a luks name for
+it, e.g. <code class="literal">rd.luks.name=cccc=mykeys</code>, otherwise it gets closed
+when not needed anymore.</p></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>rd.luks.key.tout=0</strong></span>
+</span></dt><dd>
+ specify how many times dracut will try to read the keys specified in in
+ rd.luk.key. This gives a chance to the removable device containing the key
+ to initialise.
+</dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_md_raid"></a>MD RAID</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>rd.md=0</strong></span>
+</span></dt><dd>
+ disable MD RAID detection
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.md.imsm=0</strong></span>
+</span></dt><dd>
+ disable MD RAID for imsm/isw raids, use DM RAID instead
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.md.ddf=0</strong></span>
+</span></dt><dd>
+ disable MD RAID for SNIA ddf raids, use DM RAID instead
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.md.conf=0</strong></span>
+</span></dt><dd>
+ ignore mdadm.conf included in initramfs
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.md.waitclean=1</strong></span>
+</span></dt><dd>
+ wait for any resync, recovery, or reshape activity to finish before
+ continuing
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.md.uuid=</strong></span><span class="emphasis"><em>&lt;md raid uuid&gt;</em></span>
+</span></dt><dd>
+ only activate the raid sets with the given UUID. This parameter can be
+ specified multiple times.
+</dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_dm_raid"></a>DM RAID</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>rd.dm=0</strong></span>
+</span></dt><dd>
+ disable DM RAID detection
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.dm.uuid=</strong></span><span class="emphasis"><em>&lt;dm raid uuid&gt;</em></span>
+</span></dt><dd>
+ only activate the raid sets with the given UUID. This parameter can be
+ specified multiple times.
+</dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_multipath"></a>MULTIPATH</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>rd.multipath=0</strong></span>
+</span></dt><dd>
+ disable multipath detection
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.multipath=default</strong></span>
+</span></dt><dd>
+ use default multipath settings
+</dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_fips"></a>FIPS</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>rd.fips</strong></span>
+</span></dt><dd>
+ enable FIPS
+</dd><dt><span class="term">
+<span class="strong"><strong>boot=</strong></span><span class="emphasis"><em>&lt;boot device&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ specify the device, where /boot is located.
+</p><p><strong>Example. </strong>
+</p><pre class="screen">boot=/dev/sda1
+boot=/dev/disk/by-path/pci-0000:00:1f.1-scsi-0:0:1:0-part1
+boot=UUID=&lt;uuid&gt;
+boot=LABEL=&lt;label&gt;</pre><p>
+</p></dd><dt><span class="term">
+<span class="strong"><strong>rd.fips.skipkernel</strong></span>
+</span></dt><dd>
+ skip checksum check of the kernel image. Useful, if the kernel image is not
+ in a separate boot partition.
+</dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_network"></a>Network</h3></div></div></div><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3><p>It is recommended to either bind an interface to a MAC with the <span class="strong"><strong>ifname</strong></span>
+argument, or to use the systemd-udevd predictable network interface names.</p><p>Predictable network interface device names based on:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+firmware/bios-provided index numbers for on-board devices
+</li><li class="listitem">
+firmware-provided pci-express hotplug slot index number
+</li><li class="listitem">
+physical/geographical location of the hardware
+</li><li class="listitem">
+the interface’s MAC address
+</li></ul></div><p>See:
+<a class="ulink" href="http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames" target="_top">http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames</a></p><p>Two character prefixes based on the type of interface:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+en
+</span></dt><dd>
+ethernet
+</dd><dt><span class="term">
+wl
+</span></dt><dd>
+wlan
+</dd><dt><span class="term">
+ww
+</span></dt><dd>
+wwan
+</dd></dl></div><p>Type of names:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+o&lt;index&gt;
+</span></dt><dd>
+on-board device index number
+</dd><dt><span class="term">
+s&lt;slot&gt;[f&lt;function&gt;][d&lt;dev_id&gt;]
+</span></dt><dd>
+hotplug slot index number
+</dd><dt><span class="term">
+x&lt;MAC&gt;
+</span></dt><dd>
+MAC address
+</dd><dt><span class="term">
+[P&lt;domain&gt;]p&lt;bus&gt;s&lt;slot&gt;[f&lt;function&gt;][d&lt;dev_id&gt;]
+</span></dt><dd>
+PCI geographical location
+</dd><dt><span class="term">
+[P&lt;domain&gt;]p&lt;bus&gt;s&lt;slot&gt;[f&lt;function&gt;][u&lt;port&gt;][..][c&lt;config&gt;][i&lt;interface&gt;]
+</span></dt><dd>
+USB port number chain
+</dd></dl></div><p>All multi-function PCI devices will carry the [f&lt;function&gt;] number in the
+device name, including the function 0 device.</p><p>When using PCI geography, The PCI domain is only prepended when it is not 0.</p><p>For USB devices the full chain of port numbers of hubs is composed. If the
+name gets longer than the maximum number of 15 characters, the name is not
+exported.
+The usual USB configuration == 1 and interface == 0 values are suppressed.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+PCI ethernet card with firmware index "1"
+</span></dt><dd><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+eno1
+</li></ul></div></dd><dt><span class="term">
+PCI ethernet card in hotplug slot with firmware index number
+</span></dt><dd><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+ens1
+</li></ul></div></dd><dt><span class="term">
+PCI ethernet multi-function card with 2 ports
+</span></dt><dd><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+enp2s0f0
+</li><li class="listitem">
+enp2s0f1
+</li></ul></div></dd><dt><span class="term">
+PCI wlan card
+</span></dt><dd><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+wlp3s0
+</li></ul></div></dd><dt><span class="term">
+USB built-in 3G modem
+</span></dt><dd><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+wwp0s29u1u4i6
+</li></ul></div></dd><dt><span class="term">
+USB Android phone
+</span></dt><dd><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+enp0s29u1u2
+</li></ul></div></dd></dl></div></div><p>The following options are supported by the <span class="emphasis"><em>network-legacy</em></span> dracut
+module. Other network modules might support a slightly different set of
+options; refer to the documentation of the specific network module in use. For
+NetworkManager, see <span class="strong"><strong>nm-initrd-generator</strong></span>(8).</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>ip=</strong></span><span class="emphasis"><em>{dhcp|on|any|dhcp6|auto6|either6|link6|single-dhcp}</em></span>
+</span></dt><dd><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+dhcp|on|any
+</span></dt><dd>
+get ip from dhcp server from all interfaces. If netroot=dhcp,
+ loop sequentially through all interfaces (eth0, eth1, …) and use the first
+ with a valid DHCP root-path.
+</dd><dt><span class="term">
+single-dhcp
+</span></dt><dd>
+Send DHCP on all available interfaces in parallel, as
+ opposed to one after another. After the first DHCP response is received,
+ stop DHCP on all other interfaces. This gives the fastest boot time by
+ using the IP on interface for which DHCP succeeded first during early boot.
+ Caveat: Does not apply to Network Manager.
+</dd><dt><span class="term">
+auto6
+</span></dt><dd>
+IPv6 autoconfiguration
+</dd><dt><span class="term">
+dhcp6
+</span></dt><dd>
+IPv6 DHCP
+</dd><dt><span class="term">
+either6
+</span></dt><dd>
+if auto6 fails, then dhcp6
+</dd><dt><span class="term">
+link6
+</span></dt><dd>
+bring up interface for IPv6 link-local addressing
+</dd></dl></div></dd><dt><span class="term">
+<span class="strong"><strong>ip=</strong></span><span class="emphasis"><em>&lt;interface&gt;</em></span>:<span class="emphasis"><em>{dhcp|on|any|dhcp6|auto6|link6}</em></span>[:[<span class="emphasis"><em>&lt;mtu&gt;</em></span>][:<span class="emphasis"><em>&lt;macaddr&gt;</em></span>]]
+</span></dt><dd><p class="simpara">
+ This parameter can be specified multiple times.
+</p><div class="informalexample"><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+dhcp|on|any|dhcp6
+</span></dt><dd>
+get ip from dhcp server on a specific interface
+</dd><dt><span class="term">
+auto6
+</span></dt><dd>
+do IPv6 autoconfiguration
+</dd><dt><span class="term">
+link6
+</span></dt><dd>
+bring up interface for IPv6 link local address
+</dd><dt><span class="term">
+&lt;macaddr&gt;
+</span></dt><dd>
+optionally <span class="strong"><strong>set</strong></span> &lt;macaddr&gt; on the &lt;interface&gt;. This
+cannot be used in conjunction with the <span class="strong"><strong>ifname</strong></span> argument for the
+same &lt;interface&gt;.
+</dd></dl></div></div></dd><dt><span class="term">
+<span class="strong"><strong>ip=</strong></span><span class="emphasis"><em>&lt;client-IP&gt;</em></span>:[<span class="emphasis"><em>&lt;peer&gt;</em></span>]:<span class="emphasis"><em>&lt;gateway-IP&gt;</em></span>:<span class="emphasis"><em>&lt;netmask&gt;</em></span>:<span class="emphasis"><em>&lt;client_hostname&gt;</em></span>:<span class="emphasis"><em>&lt;interface&gt;</em></span>:<span class="emphasis"><em>{none|off|dhcp|on|any|dhcp6|auto6|ibft}</em></span>[:[<span class="emphasis"><em>&lt;mtu&gt;</em></span>][:<span class="emphasis"><em>&lt;macaddr&gt;</em></span>]]
+</span></dt><dd><p class="simpara">
+ explicit network configuration. If you want do define a IPv6 address, put it
+ in brackets (e.g. [2001:DB8::1]). This parameter can be specified multiple
+ times. <span class="emphasis"><em>&lt;peer&gt;</em></span> is optional and is the address of the remote endpoint
+ for pointopoint interfaces and it may be followed by a slash and a decimal
+ number, encoding the network prefix length.
+</p><div class="informalexample"><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+&lt;macaddr&gt;
+</span></dt><dd>
+optionally <span class="strong"><strong>set</strong></span> &lt;macaddr&gt; on the &lt;interface&gt;. This
+cannot be used in conjunction with the <span class="strong"><strong>ifname</strong></span> argument for the
+same &lt;interface&gt;.
+</dd></dl></div></div></dd><dt><span class="term">
+<span class="strong"><strong>ip=</strong></span><span class="emphasis"><em>&lt;client-IP&gt;</em></span>:[<span class="emphasis"><em>&lt;peer&gt;</em></span>]:<span class="emphasis"><em>&lt;gateway-IP&gt;</em></span>:<span class="emphasis"><em>&lt;netmask&gt;</em></span>:<span class="emphasis"><em>&lt;client_hostname&gt;</em></span>:<span class="emphasis"><em>&lt;interface&gt;</em></span>:<span class="emphasis"><em>{none|off|dhcp|on|any|dhcp6|auto6|ibft}</em></span>[:[<span class="emphasis"><em>&lt;dns1&gt;</em></span>][:<span class="emphasis"><em>&lt;dns2&gt;</em></span>]]
+</span></dt><dd>
+ explicit network configuration. If you want do define a IPv6 address, put it
+ in brackets (e.g. [2001:DB8::1]). This parameter can be specified multiple
+ times. <span class="emphasis"><em>&lt;peer&gt;</em></span> is optional and is the address of the remote endpoint
+ for pointopoint interfaces and it may be followed by a slash and a decimal
+ number, encoding the network prefix length.
+</dd><dt><span class="term">
+<span class="strong"><strong>ifname=</strong></span><span class="emphasis"><em>&lt;interface&gt;</em></span>:<span class="emphasis"><em>&lt;MAC&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ Assign network device name &lt;interface&gt; (i.e. "bootnet") to the NIC with
+ MAC &lt;MAC&gt;.
+</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>Do <span class="strong"><strong>not</strong></span> use the default kernel naming scheme for the interface name,
+as it can conflict with the kernel names. So, don’t use "eth[0-9]+" for the
+interface name. Better name it "bootnet" or "bluesocket".</p></div></dd><dt><span class="term">
+<span class="strong"><strong>rd.route=</strong></span><span class="emphasis"><em>&lt;net&gt;</em></span>/<span class="emphasis"><em>&lt;netmask&gt;</em></span>:<span class="emphasis"><em>&lt;gateway&gt;</em></span>[:<span class="emphasis"><em>&lt;interface&gt;</em></span>]
+</span></dt><dd><p class="simpara">
+ Add a static route with route options, which are separated by a colon.
+ IPv6 addresses have to be put in brackets.
+</p><p><strong>Example. </strong>
+</p><pre class="screen"> rd.route=192.168.200.0/24:192.168.100.222:ens10
+ rd.route=192.168.200.0/24:192.168.100.222
+ rd.route=192.168.200.0/24::ens10
+ rd.route=[2001:DB8:3::/8]:[2001:DB8:2::1]:ens10</pre><p>
+</p></dd><dt><span class="term">
+<span class="strong"><strong>bootdev=</strong></span><span class="emphasis"><em>&lt;interface&gt;</em></span>
+</span></dt><dd>
+ specify network interface to use routing and netroot information from.
+ Required if multiple ip= lines are used.
+</dd><dt><span class="term">
+<span class="strong"><strong>BOOTIF=</strong></span><span class="emphasis"><em>&lt;MAC&gt;</em></span>
+</span></dt><dd>
+ specify network interface to use routing and netroot information from.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.bootif=0</strong></span>
+</span></dt><dd>
+ Disable BOOTIF parsing, which is provided by PXE
+</dd><dt><span class="term">
+<span class="strong"><strong>nameserver=</strong></span><span class="emphasis"><em>&lt;IP&gt;</em></span> [<span class="strong"><strong>nameserver=</strong></span><span class="emphasis"><em>&lt;IP&gt;</em></span> …]
+</span></dt><dd>
+ specify nameserver(s) to use
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.peerdns=0</strong></span>
+</span></dt><dd>
+ Disable DNS setting of DHCP parameters.
+</dd><dt><span class="term">
+<span class="strong"><strong>biosdevname=0</strong></span>
+</span></dt><dd>
+ boolean, turn off biosdevname network interface renaming
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.neednet=1</strong></span>
+</span></dt><dd>
+ boolean, bring up network even without netroot set
+</dd><dt><span class="term">
+<span class="strong"><strong>vlan=</strong></span><span class="emphasis"><em>&lt;vlanname&gt;</em></span>:<span class="emphasis"><em>&lt;phydevice&gt;</em></span>
+</span></dt><dd>
+ Setup vlan device named &lt;vlanname&gt; on &lt;phydevice&gt;.
+ We support the four styles of vlan names: VLAN_PLUS_VID (vlan0005),
+ VLAN_PLUS_VID_NO_PAD (vlan5), DEV_PLUS_VID (eth0.0005),
+ DEV_PLUS_VID_NO_PAD (eth0.5)
+</dd><dt><span class="term">
+<span class="strong"><strong>bond=</strong></span><span class="emphasis"><em>&lt;bondname&gt;</em></span>[:<span class="emphasis"><em>&lt;bondslaves&gt;</em></span>:[:<span class="emphasis"><em>&lt;options&gt;</em></span>[:&lt;mtu&gt;]]]
+</span></dt><dd>
+ Setup bonding device &lt;bondname&gt; on top of &lt;bondslaves&gt;.
+ &lt;bondslaves&gt; is a comma-separated list of physical (ethernet) interfaces.
+ &lt;options&gt; is a comma-separated list on bonding options (modinfo bonding for
+ details) in format compatible with initscripts. If &lt;options&gt; includes
+ multi-valued arp_ip_target option, then its values should be separated by
+ semicolon. if the mtu is specified, it will be set on the bond master.
+ Bond without parameters assumes
+ bond=bond0:eth0,eth1:mode=balance-rr
+</dd><dt><span class="term">
+<span class="strong"><strong>team=</strong></span><span class="emphasis"><em>&lt;teammaster&gt;</em></span>:<span class="emphasis"><em>&lt;teamslaves&gt;</em></span>[:<span class="emphasis"><em>&lt;teamrunner&gt;</em></span>]
+</span></dt><dd>
+ Setup team device &lt;teammaster&gt; on top of &lt;teamslaves&gt;.
+ &lt;teamslaves&gt; is a comma-separated list of physical (ethernet) interfaces.
+ &lt;teamrunner&gt; is the runner type to be used (see <span class="strong"><strong>teamd.conf</strong></span>(5)); defaults to
+ activebackup.
+ Team without parameters assumes
+ team=team0:eth0,eth1:activebackup
+</dd><dt><span class="term">
+<span class="strong"><strong>bridge=</strong></span><span class="emphasis"><em>&lt;bridgename&gt;</em></span>:<span class="emphasis"><em>&lt;ethnames&gt;</em></span>
+</span></dt><dd>
+ Setup bridge &lt;bridgename&gt; with &lt;ethnames&gt;. &lt;ethnames&gt; is a comma-separated
+ list of physical (ethernet) interfaces. Bridge without parameters assumes
+ bridge=br0:eth0
+</dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_nfs"></a>NFS</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>root=</strong></span>[<span class="emphasis"><em>&lt;server-ip&gt;</em></span>:]<span class="emphasis"><em>&lt;root-dir&gt;</em></span>[:<span class="emphasis"><em>&lt;nfs-options&gt;</em></span>]
+</span></dt><dd>
+ mount nfs share from &lt;server-ip&gt;:/&lt;root-dir&gt;, if no server-ip is given, use
+ dhcp next_server. If server-ip is an IPv6 address it has to be put in
+ brackets, e.g. [2001:DB8::1]. NFS options can be appended with the prefix
+ ":" or "," and are separated by ",".
+</dd><dt><span class="term">
+<span class="strong"><strong>root=</strong></span>nfs:[<span class="emphasis"><em>&lt;server-ip&gt;</em></span>:]<span class="emphasis"><em>&lt;root-dir&gt;</em></span>[:<span class="emphasis"><em>&lt;nfs-options&gt;</em></span>], <span class="strong"><strong>root=</strong></span>nfs4:[<span class="emphasis"><em>&lt;server-ip&gt;</em></span>:]<span class="emphasis"><em>&lt;root-dir&gt;</em></span>[:<span class="emphasis"><em>&lt;nfs-options&gt;</em></span>], <span class="strong"><strong>root=</strong></span><span class="emphasis"><em>{dhcp|dhcp6}</em></span>
+</span></dt><dd><p class="simpara">
+ netroot=dhcp alone directs initrd to look at the DHCP root-path where NFS
+ options can be specified.
+</p><p><strong>Example. </strong>
+</p><pre class="screen"> root-path=&lt;server-ip&gt;:&lt;root-dir&gt;[,&lt;nfs-options&gt;]
+ root-path=nfs:&lt;server-ip&gt;:&lt;root-dir&gt;[,&lt;nfs-options&gt;]
+ root-path=nfs4:&lt;server-ip&gt;:&lt;root-dir&gt;[,&lt;nfs-options&gt;]</pre><p>
+</p></dd><dt><span class="term">
+<span class="strong"><strong>root=</strong></span><span class="emphasis"><em>/dev/nfs</em></span> nfsroot=[<span class="emphasis"><em>&lt;server-ip&gt;</em></span>:]<span class="emphasis"><em>&lt;root-dir&gt;</em></span>[:<span class="emphasis"><em>&lt;nfs-options&gt;</em></span>]
+</span></dt><dd>
+ <span class="emphasis"><em>Deprecated!</em></span> kernel Documentation_/filesystems/nfsroot.txt_ defines this
+ method. This is supported by dracut, but not recommended.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.nfs.domain=</strong></span><span class="emphasis"><em>&lt;NFSv4 domain name&gt;</em></span>
+</span></dt><dd>
+ Set the NFSv4 domain name. Will override the settings in <span class="emphasis"><em>/etc/idmap.conf</em></span>.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.net.dhcp.retry=</strong></span><span class="emphasis"><em>&lt;cnt&gt;</em></span>
+</span></dt><dd>
+ If this option is set, dracut will try to connect via dhcp &lt;cnt&gt; times before failing.
+ Default is 1.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.net.timeout.dhcp=</strong></span><span class="emphasis"><em>&lt;arg&gt;</em></span>
+</span></dt><dd>
+ If this option is set, dhclient is called with "--timeout &lt;arg&gt;".
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.net.timeout.iflink=</strong></span><span class="emphasis"><em>&lt;seconds&gt;</em></span>
+</span></dt><dd>
+ Wait &lt;seconds&gt; until link shows up. Default is 60 seconds.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.net.timeout.ifup=</strong></span><span class="emphasis"><em>&lt;seconds&gt;</em></span>
+</span></dt><dd>
+ Wait &lt;seconds&gt; until link has state "UP". Default is 20 seconds.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.net.timeout.route=</strong></span><span class="emphasis"><em>&lt;seconds&gt;</em></span>
+</span></dt><dd>
+ Wait &lt;seconds&gt; until route shows up. Default is 20 seconds.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.net.timeout.ipv6dad=</strong></span><span class="emphasis"><em>&lt;seconds&gt;</em></span>
+</span></dt><dd>
+ Wait &lt;seconds&gt; until IPv6 DAD is finished. Default is 50 seconds.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.net.timeout.ipv6auto=</strong></span><span class="emphasis"><em>&lt;seconds&gt;</em></span>
+</span></dt><dd>
+ Wait &lt;seconds&gt; until IPv6 automatic addresses are assigned. Default is 40 seconds.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.net.timeout.carrier=</strong></span><span class="emphasis"><em>&lt;seconds&gt;</em></span>
+</span></dt><dd>
+ Wait &lt;seconds&gt; until carrier is recognized. Default is 10 seconds.
+</dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_cifs"></a>CIFS</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>root=</strong></span>cifs://[<span class="emphasis"><em>&lt;username&gt;</em></span>[:<span class="emphasis"><em>&lt;password&gt;</em></span>]@]<span class="emphasis"><em>&lt;server-ip&gt;</em></span>:<span class="emphasis"><em>&lt;root-dir&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ mount cifs share from &lt;server-ip&gt;:/&lt;root-dir&gt;, if no server-ip is given, use
+ dhcp next_server. if server-ip is an IPv6 address it has to be put in
+ brackets, e.g. [2001:DB8::1]. If a username or password are not specified
+as part of the root, then they must be passed on the command line through
+cifsuser/cifspass.
+</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>Passwords specified on the kernel command line are visible for all
+users via the file <span class="emphasis"><em>/proc/cmdline</em></span> and via dmesg or can be sniffed on the
+network, when using DHCP with DHCP root-path.</p></div></dd><dt><span class="term">
+<span class="strong"><strong>cifsuser</strong></span>=<span class="emphasis"><em>&lt;username&gt;</em></span>
+</span></dt><dd>
+ Set the cifs username, if not specified as part of the root.
+</dd><dt><span class="term">
+<span class="strong"><strong>cifspass</strong></span>=<span class="emphasis"><em>&lt;password&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ Set the cifs password, if not specified as part of the root.
+</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>Passwords specified on the kernel command line are visible for all
+users via the file <span class="emphasis"><em>/proc/cmdline</em></span> and via dmesg or can be sniffed on the
+network, when using DHCP with DHCP root-path.</p></div></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_iscsi"></a>iSCSI</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>root=</strong></span>iscsi:[<span class="emphasis"><em>&lt;username&gt;</em></span>:<span class="emphasis"><em>&lt;password&gt;</em></span>[:<span class="emphasis"><em>&lt;reverse&gt;</em></span>:<span class="emphasis"><em>&lt;password&gt;</em></span>]@][<span class="emphasis"><em>&lt;servername&gt;</em></span>]:[<span class="emphasis"><em>&lt;protocol&gt;</em></span>]:[<span class="emphasis"><em>&lt;port&gt;</em></span>][:[<span class="emphasis"><em>&lt;iscsi_iface_name&gt;</em></span>]:[<span class="emphasis"><em>&lt;netdev_name&gt;</em></span>]]:[<span class="emphasis"><em>&lt;LUN&gt;</em></span>]:<span class="emphasis"><em>&lt;targetname&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ protocol defaults to "6", LUN defaults to "0". If the "servername" field is
+ provided by BOOTP or DHCP, then that field is used in conjunction with other
+ associated fields to contact the boot server in the Boot stage. However, if
+ the "servername" field is not provided, then the "targetname" field is then
+ used in the Discovery Service stage in conjunction with other associated
+ fields. See
+ <a class="ulink" href="http://tools.ietf.org/html/rfc4173#section-5" target="_top">rfc4173</a>.
+</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>Passwords specified on the kernel command line are visible for all
+users via the file <span class="emphasis"><em>/proc/cmdline</em></span> and via dmesg or can be sniffed on the
+network, when using DHCP with DHCP root-path.</p></div><p><strong>Example. </strong>
+</p><pre class="screen">root=iscsi:192.168.50.1::::iqn.2009-06.dracut:target0</pre><p>
+</p><p class="simpara">If servername is an IPv6 address, it has to be put in brackets:</p><p><strong>Example. </strong>
+</p><pre class="screen">root=iscsi:[2001:DB8::1]::::iqn.2009-06.dracut:target0</pre><p>
+</p></dd><dt><span class="term">
+<span class="strong"><strong>root=</strong></span><span class="emphasis"><em>???</em></span> <span class="strong"><strong>netroot=</strong></span>iscsi:[<span class="emphasis"><em>&lt;username&gt;</em></span>:<span class="emphasis"><em>&lt;password&gt;</em></span>[:<span class="emphasis"><em>&lt;reverse&gt;</em></span>:<span class="emphasis"><em>&lt;password&gt;</em></span>]@][<span class="emphasis"><em>&lt;servername&gt;</em></span>]:[<span class="emphasis"><em>&lt;protocol&gt;</em></span>]:[<span class="emphasis"><em>&lt;port&gt;</em></span>][:[<span class="emphasis"><em>&lt;iscsi_iface_name&gt;</em></span>]:[<span class="emphasis"><em>&lt;netdev_name&gt;</em></span>]]:[<span class="emphasis"><em>&lt;LUN&gt;</em></span>]:<span class="emphasis"><em>&lt;targetname&gt;</em></span> …
+</span></dt><dd><p class="simpara">
+ multiple netroot options allow setting up multiple iscsi disks:
+</p><p><strong>Example. </strong>
+</p><pre class="screen">root=UUID=12424547
+netroot=iscsi:192.168.50.1::::iqn.2009-06.dracut:target0
+netroot=iscsi:192.168.50.1::::iqn.2009-06.dracut:target1</pre><p>
+</p><p class="simpara">If servername is an IPv6 address, it has to be put in brackets:</p><p><strong>Example. </strong>
+</p><pre class="screen">netroot=iscsi:[2001:DB8::1]::::iqn.2009-06.dracut:target0</pre><p>
+</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>Passwords specified on the kernel command line are visible for all
+users via the file <span class="emphasis"><em>/proc/cmdline</em></span> and via dmesg or can be sniffed on the
+network, when using DHCP with DHCP root-path.
+You may want to use rd.iscsi.firmware.</p></div></dd><dt><span class="term">
+<span class="strong"><strong>root=</strong></span><span class="emphasis"><em>???</em></span> <span class="strong"><strong>rd.iscsi.initiator=</strong></span><span class="emphasis"><em>&lt;initiator&gt;</em></span> <span class="strong"><strong>rd.iscsi.target.name=</strong></span><span class="emphasis"><em>&lt;target name&gt;</em></span> <span class="strong"><strong>rd.iscsi.target.ip=</strong></span><span class="emphasis"><em>&lt;target ip&gt;</em></span> <span class="strong"><strong>rd.iscsi.target.port=</strong></span><span class="emphasis"><em>&lt;target port&gt;</em></span> <span class="strong"><strong>rd.iscsi.target.group=</strong></span><span class="emphasis"><em>&lt;target group&gt;</em></span> <span class="strong"><strong>rd.iscsi.username=</strong></span><span class="emphasis"><em>&lt;username&gt;</em></span> <span class="strong"><strong>rd.iscsi.password=</strong></span><span class="emphasis"><em>&lt;password&gt;</em></span> <span class="strong"><strong>rd.iscsi.in.username=</strong></span><span class="emphasis"><em>&lt;in username&gt;</em></span> <span class="strong"><strong>rd.iscsi.in.password=</strong></span><span class="emphasis"><em>&lt;in password&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ manually specify all iscsistart parameter (see <span class="strong"><strong><code class="literal">iscsistart --help</code></strong></span>)
+</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>Passwords specified on the kernel command line are visible for all
+users via the file <span class="emphasis"><em>/proc/cmdline</em></span> and via dmesg or can be sniffed on the
+network, when using DHCP with DHCP root-path.
+You may want to use rd.iscsi.firmware.</p></div></dd><dt><span class="term">
+<span class="strong"><strong>root=</strong></span><span class="emphasis"><em>???</em></span> <span class="strong"><strong>netroot=</strong></span>iscsi <span class="strong"><strong>rd.iscsi.firmware=1</strong></span>
+</span></dt><dd>
+ will read the iscsi parameter from the BIOS firmware
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.iscsi.login_retry_max=</strong></span><span class="emphasis"><em>&lt;num&gt;</em></span>
+</span></dt><dd>
+ maximum number of login retries
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.iscsi.param=</strong></span><span class="emphasis"><em>&lt;param&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ &lt;param&gt; will be passed as "--param &lt;param&gt;" to iscsistart.
+ This parameter can be specified multiple times.
+</p><p><strong>Example. </strong>
+</p><pre class="screen">"netroot=iscsi rd.iscsi.firmware=1 rd.iscsi.param=node.session.timeo.replacement_timeout=30"</pre><p>
+</p><p class="simpara">will result in</p><pre class="screen">iscsistart -b --param node.session.timeo.replacement_timeout=30</pre></dd></dl></div><p><span class="strong"><strong>rd.iscsi.ibft</strong></span> <span class="strong"><strong>rd.iscsi.ibft=1</strong></span>:
+ Turn on iBFT autoconfiguration for the interfaces</p><p><span class="strong"><strong>rd.iscsi.mp</strong></span> <span class="strong"><strong>rd.iscsi.mp=1</strong></span>:
+ Configure all iBFT interfaces, not only used for booting (multipath)</p><p><span class="strong"><strong>rd.iscsi.waitnet=0</strong></span>:
+ Turn off waiting for all interfaces to be up before trying to login to the iSCSI targets.</p><p><span class="strong"><strong>rd.iscsi.testroute=0</strong></span>:
+ Turn off checking, if the route to the iSCSI target IP is possible before trying to login.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_fcoe"></a>FCoE</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>rd.fcoe=0</strong></span>
+</span></dt><dd>
+ disable FCoE and lldpad
+</dd><dt><span class="term">
+<span class="strong"><strong>fcoe=</strong></span><span class="emphasis"><em>&lt;edd|interface|MAC&gt;</em></span>:<span class="emphasis"><em>{dcb|nodcb}</em></span>:<span class="emphasis"><em>{fabric|vn2vn}</em></span>
+</span></dt><dd><p class="simpara">
+ Try to connect to a FCoE SAN through the NIC specified by <span class="emphasis"><em>&lt;interface&gt;</em></span> or
+ <span class="emphasis"><em>&lt;MAC&gt;</em></span> or EDD settings. The second argument specifies if DCB
+ should be used. The optional third argument specifies whether
+ fabric or VN2VN mode should be used.
+ This parameter can be specified multiple times.
+</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>letters in the MAC-address must be lowercase!</p></div></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_nvmf"></a>NVMf</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>rd.nonvmf</strong></span>
+</span></dt><dd>
+ Disable NVMf
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.nvmf.nonbft</strong></span>
+</span></dt><dd>
+ Disable connecting to targets from the NVMe Boot Firmware Table. Without
+ this parameter, NBFT connections will take precedence over <span class="emphasis"><em>rd.nvmf.discover</em></span>.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.nvmf.nostatic</strong></span>
+</span></dt><dd>
+ Disable connecting to targets that have been statically configured when
+ the initramfs was built. Targets specified with rd.nvmf.discover on the
+ kernel command line will still be tried.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.nvmf.hostnqn=</strong></span><span class="emphasis"><em>&lt;hostNQN&gt;</em></span>
+</span></dt><dd>
+ NVMe host NQN to use
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.nvmf.hostid=</strong></span><span class="emphasis"><em>&lt;hostID&gt;</em></span>
+</span></dt><dd>
+ NVMe host id to use
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.nvmf.discover=</strong></span><span class="emphasis"><em>{rdma|fc|tcp}</em></span>,<span class="emphasis"><em>&lt;traddr&gt;</em></span>,[<span class="emphasis"><em>&lt;host_traddr&gt;</em></span>],[<span class="emphasis"><em>&lt;trsvcid&gt;</em></span>]
+</span></dt><dd><p class="simpara">
+ Discover and connect to a NVMe-over-Fabric controller specified by
+ <span class="emphasis"><em>&lt;traddr&gt;</em></span> and the optionally <span class="emphasis"><em>&lt;host_traddr&gt;</em></span> or <span class="emphasis"><em>&lt;trsvcid&gt;</em></span>.
+ The first argument specifies the transport to use; currently only
+ <span class="emphasis"><em>rdma</em></span>, <span class="emphasis"><em>fc</em></span>, or <span class="emphasis"><em>tcp</em></span> are supported.
+ This parameter can be specified multiple times.
+</p><p><strong>Examples. </strong>
+</p><pre class="screen">rd.nvmf.discover=tcp,192.168.10.10,,4420
+rd.nvmf.discover=fc,nn-0x201700a05634f5bf:pn-0x201900a05634f5bf,nn-0x200000109b579ef3:pn-0x100000109b579ef3</pre><p>
+</p></dd><dt><span class="term">
+<span class="strong"><strong>rd.nvmf.discover=fc,auto</strong></span>
+</span></dt><dd>
+ This special syntax determines that Fibre Channel autodiscovery
+ is to be used rather than regular NVMe discovery. It takes precedence
+ over all other <span class="emphasis"><em>rd.nvmf.discover=</em></span> arguments.
+</dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_nbd"></a>NBD</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>root=</strong></span>??? <span class="strong"><strong>netroot=</strong></span>nbd:<span class="emphasis"><em>&lt;server&gt;</em></span>:<span class="emphasis"><em>&lt;port/exportname&gt;</em></span>[:<span class="emphasis"><em>&lt;fstype&gt;</em></span>[:<span class="emphasis"><em>&lt;mountopts&gt;</em></span>[:<span class="emphasis"><em>&lt;nbdopts&gt;</em></span>]]]
+</span></dt><dd><p class="simpara">
+ mount nbd share from &lt;server&gt;.
+</p><p class="simpara">NOTE:
+ If "exportname" instead of "port" is given the standard port is used.
+ Newer versions of nbd are only supported with "exportname".</p></dd><dt><span class="term">
+<span class="strong"><strong>root=/dev/root netroot=dhcp</strong></span> with <span class="strong"><strong>dhcp</strong></span> <span class="strong"><strong>root-path=</strong></span>nbd:<span class="emphasis"><em>&lt;server&gt;</em></span>:<span class="emphasis"><em>&lt;port/exportname&gt;</em></span>[:<span class="emphasis"><em>&lt;fstype&gt;</em></span>[:<span class="emphasis"><em>&lt;mountopts&gt;</em></span>[:<span class="emphasis"><em>&lt;nbdopts&gt;</em></span>]]]
+</span></dt><dd><p class="simpara">
+ netroot=dhcp alone directs initrd to look at the DHCP root-path where NBD
+ options can be specified. This syntax is only usable in cases where you are
+ directly mounting the volume as the rootfs.
+</p><p class="simpara">NOTE:
+ If "exportname" instead of "port" is given the standard port is used.
+ Newer versions of nbd are only supported with "exportname".</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_virtiofs"></a>VIRTIOFS</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>root=</strong></span>virtiofs:<span class="emphasis"><em>&lt;mount-tag&gt;</em></span>
+</span></dt><dd>
+ mount virtiofs share using the tag &lt;mount-tag&gt;.
+ The tag name is arbitrary and must match the tag given in the qemu <span class="emphasis"><em>-device</em></span> command.
+</dd><dt><span class="term">
+<span class="strong"><strong>rootfstype=</strong></span>virtiofs <span class="strong"><strong>root=</strong></span><span class="emphasis"><em>&lt;mount-tag&gt;</em></span>
+</span></dt><dd>
+ mount virtiofs share using the tag &lt;mount-tag&gt;.
+ The tag name is arbitrary and must match the tag given in the qemu <span class="emphasis"><em>-device</em></span> command.
+</dd></dl></div><p>Both formats are supported by the <span class="emphasis"><em>virtiofs</em></span> dracut module.
+See <a class="ulink" href="https://gitlab.com/virtio-fs/virtiofsd" target="_top">https://gitlab.com/virtio-fs/virtiofsd</a> for more information.</p><p><strong>Example. </strong>
+</p><pre class="screen">root=virtiofs:host rw</pre><p>
+</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_dasd"></a>DASD</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>rd.dasd=</strong></span>….
+</span></dt><dd><p class="simpara">
+ same syntax as the kernel module parameter (s390 only).
+ For more details on the syntax see the IBM book
+ "Linux on IBM Z and IBM LinuxONE - Device Drivers, Features, and Commands"
+ <a class="ulink" href="https://www.ibm.com/docs/en/linux-on-systems?topic=overview-device-drivers-features-commands" target="_top">https://www.ibm.com/docs/en/linux-on-systems?topic=overview-device-drivers-features-commands</a>.
+ This parameter can be specified multiple times.
+</p><p class="simpara">NOTE:
+ This parameter is no longer handled by dracut itself but with the exact
+ same syntax by
+ <a class="ulink" href="https://github.com/ibm-s390-linux/s390-tools/tree/master/zdev/dracut/95zdev" target="_top">https://github.com/ibm-s390-linux/s390-tools/tree/master/zdev/dracut/95zdev</a>.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_zfcp"></a>ZFCP</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>rd.zfcp=</strong></span><span class="emphasis"><em>&lt;zfcp adaptor device bus ID&gt;</em></span>,<span class="emphasis"><em>&lt;WWPN&gt;</em></span>,<span class="emphasis"><em>&lt;FCPLUN&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ rd.zfcp can be specified multiple times on the kernel command
+ line.
+</p><p class="simpara">NOTE:
+ This parameter is no longer handled by dracut itself but with the exact
+ same syntax by
+ <a class="ulink" href="https://github.com/ibm-s390-linux/s390-tools/tree/master/zdev/dracut/95zdev" target="_top">https://github.com/ibm-s390-linux/s390-tools/tree/master/zdev/dracut/95zdev</a>.</p></dd><dt><span class="term">
+<span class="strong"><strong>rd.zfcp=</strong></span><span class="emphasis"><em>&lt;zfcp adaptor device bus ID&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ If NPIV is enabled and the <span class="emphasis"><em>allow_lun_scan</em></span> parameter to the zfcp
+ module is set to <span class="emphasis"><em>Y</em></span> then the zfcp driver will be initiating a
+ scan internally and the &lt;WWPN&gt; and &lt;FCPLUN&gt; parameters can be omitted.
+</p><p class="simpara">NOTE:
+ This parameter is no longer handled by dracut itself but with the exact
+ same syntax by
+ <a class="ulink" href="https://github.com/ibm-s390-linux/s390-tools/tree/master/zdev/dracut/95zdev" target="_top">https://github.com/ibm-s390-linux/s390-tools/tree/master/zdev/dracut/95zdev</a>.</p><p><strong>Example. </strong>
+</p><pre class="screen">rd.zfcp=0.0.4000,0x5005076300C213e9,0x5022000000000000
+rd.zfcp=0.0.4000</pre><p>
+</p></dd><dt><span class="term">
+<span class="strong"><strong>rd.zfcp.conf=0</strong></span>
+</span></dt><dd>
+ ignore zfcp.conf included in the initramfs
+</dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_znet"></a>ZNET</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>rd.znet=</strong></span><span class="emphasis"><em>&lt;nettype&gt;</em></span>,<span class="emphasis"><em>&lt;subchannels&gt;</em></span>,<span class="emphasis"><em>&lt;options&gt;</em></span>
+</span></dt><dd>
+ Activates a channel-attached network interface on s390 architecture.
+ &lt;nettype&gt; is one of: qeth, lcs, ctc.
+ &lt;subchannels&gt; is a comma-separated list of ccw device bus-IDs.
+ The list consists of 3 entries with nettype qeth, and 2 for other nettype.
+ &lt;options&gt; is a comma-separated list of &lt;name&gt;=&lt;value&gt; pairs,
+ where &lt;name&gt; refers to a device sysfs attribute to which &lt;value&gt; gets written.
+ rd.znet can be specified multiple times on the kernel command line.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.znet_ifname=</strong></span><span class="emphasis"><em>&lt;ifname&gt;</em></span>:<span class="emphasis"><em>&lt;subchannels&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ Assign network device name &lt;interface&gt; (i.e. "bootnet") to the NIC
+ corresponds to the subchannels. This is useful when dracut’s default
+ "ifname=" doesn’t work due to device having a changing MAC address.
+</p><p><strong>Example. </strong>
+</p><pre class="screen">rd.znet=qeth,0.0.0600,0.0.0601,0.0.0602,layer2=1,portname=foo
+rd.znet=ctc,0.0.0600,0.0.0601,protocol=bar</pre><p>
+</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_booting_live_images"></a>Booting live images</h3></div></div></div><p>Dracut offers multiple options for live booted images:</p><div class="informalexample"><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+SquashFS (read-only) base filesystem image
+</span></dt><dd><p class="simpara">
+Note — There are 3 separate overlay types available:
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+Device-mapper snapshots (the original offering),
+</li><li class="listitem">
+Device-mapper thin provisioning snapshots (see <span class="strong"><strong><span class="emphasis"><em>rd.live.overlay.thin</em></span></strong></span>,
+a later offering), and
+</li><li class="listitem">
+OverlayFS based overlay mounts (a more recent offering).
+</li></ul></div><p class="simpara">Using one of these technologies, the system will provide a writable overlay for
+the base, read-only SquashFS root filesystem. These methods enable a relatively
+fast boot and lower RAM usage.</p><p class="simpara">With the original Device-mapper snapshot overlay, users <span class="strong"><strong>must be careful</strong></span> to
+avoid writing too many blocks to the snapshot device. Once the blocks of the
+snapshot overlay are exhausted, the whole root filesystem becomes read-only
+leading to application failures. The snapshot overlay device is marked
+<span class="emphasis"><em>Overflow</em></span>, and a difficult recovery is required to repair and enlarge the
+overlay offline.</p><p class="simpara">When <span class="strong"><strong><span class="emphasis"><em>rd.live.overlay=</em></span></strong></span> is not specified for persistent overlay storage, or
+the specified file is not found or writable, a Device-mapper snapshot based
+non-persistent or temporary overlay is automatically created as a sparse file
+in RAM of the initramfs. This file will only consume content space as required
+blocks are allocated. This snapshot based overlay defaults to an apparent size
+of 32 GiB in RAM, and can be adjusted with the <span class="strong"><strong><span class="emphasis"><em>rd.live.overlay.size=</em></span></strong></span> kernel
+command line option. This file is hidden (and appears deleted) when the boot
+process switches out of the initramfs to the main root filesystem but its loop
+device remains connected to the Device-mapper snapshot.</p><p class="simpara">Even with large Device-mapper overlay files for write space, the available root
+filesystem capacity is limited by the total allocated size of the base root
+filesystem, which often provide only a small number of gigabytes of free space.</p><p class="simpara">This shortage could be remedied by building the root filesystem with more
+allocated free space, or the OverlayFS based overlay mount method can be used.</p><p class="simpara">When the <span class="strong"><strong><span class="emphasis"><em>rd.live.overlay.overlayfs</em></span></strong></span> option is specified or when
+<span class="strong"><strong><span class="emphasis"><em>rd.live.overlay=</em></span></strong></span> points to an appropriate directory with a sister at
+<code class="literal">/../ovlwork</code>, then an OverlayFS based overlay mount is employed. Such a
+persistent OverlayFS overlay can extend the available root filesystem storage
+up to the capacity of the LiveOS disk device.</p><p class="simpara">For non-persistent OverlayFS overlays, the <code class="literal">/run/overlayfs</code> directory in the
+<code class="literal">/run</code> tmpfs is used for temporary storage. This filesystem is typically sized
+to one half of the RAM total in the system.
+The command: <code class="literal">mount -o remount,size=&lt;nbytes&gt; /run</code> will resize this virtual
+filesystem after booting.</p><p class="simpara">The internal SquashFS structure is traditionally expected to be:</p><pre class="screen">squashfs.img | SquashFS from LiveCD .iso
+ !(mount)
+ /LiveOS
+ |- rootfs.img | Usually a ext4 filesystem image to mount read-only
+ !(mount)
+ /bin | Base Live root filesystem
+ /boot |
+ /dev |
+ ... |</pre><p class="simpara">For OverlayFS mount overlays, the internal SquashFS structure may be a direct
+compression of the root filesystem:</p><pre class="screen">squashfs.img | SquashFS from LiveCD .iso
+ !(mount)
+ /bin | Base Live root filesystem
+ /boot |
+ /dev |
+ ... |</pre><p class="simpara">Dracut uses one of the overlay methods of live booting by default. No
+additional command line options are required other than
+<span class="strong"><strong>root=</strong></span>live:<span class="emphasis"><em>&lt;path to blockdevice&gt;</em></span> or <span class="strong"><strong>root=</strong></span>live:<span class="emphasis"><em>&lt;URL&gt;</em></span> to specify
+the location of your squashed root filesystem.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+The compressed SquashFS image can be copied during boot to RAM at
+<code class="literal">/run/initramfs/squashed.img</code> by using the <span class="strong"><strong>rd.live.ram=1</strong></span> option.
+</li><li class="listitem">
+A device with a persistent overlay can be booted read-only by using the
+<span class="strong"><strong>rd.live.overlay.readonly</strong></span> option on the kernel command line. This will
+either cause a temporary, writable overlay to be stacked over a read-only
+snapshot of the root filesystem or the OverlayFS mount will use an additional
+lower layer with the root filesystem.
+</li></ul></div></dd><dt><span class="term">
+Uncompressed live filesystem image
+</span></dt><dd><p class="simpara">
+When the live system was installed with the <span class="emphasis"><em>--skipcompress</em></span> option of the
+<span class="emphasis"><em>livecd-iso-to-disk</em></span> installation script for Live USB devices, the root
+filesystem image, <span class="emphasis"><em>rootfs.img</em></span>, is expanded on installation and no SquashFS
+is involved during boot.
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+If <span class="strong"><strong>rd.live.ram=1</strong></span> is used in this situation, the full, uncompressed
+root filesystem is copied during boot to <code class="literal">/run/initramfs/rootfs.img</code> in the
+<code class="literal">/run</code> tmpfs.
+</li><li class="listitem">
+If <span class="strong"><strong>rd.live.overlay=none</strong></span> is provided as a kernel command line option,
+a writable, linear Device-mapper target is created on boot with no overlay.
+</li></ul></div></dd><dt><span class="term">
+Writable filesystem image
+</span></dt><dd><p class="simpara">
+The system will retrieve a compressed filesystem image, extract it to
+<code class="literal">/run/initramfs/fsimg/rootfs.img</code>, connect it to a loop device, create a
+writable, linear Device-mapper target at <code class="literal">/dev/mapper/live-rw</code>, and mount that
+as a writable volume at <code class="literal">/</code>. More RAM is required during boot but the live
+filesystem is easier to manage if it becomes full. Users can make a filesystem
+image of any size and that size will be maintained when the system boots. There
+is no persistence of root filesystem changes between boots with this option.
+</p><p class="simpara">The filesystem structure is expected to be:</p><pre class="screen">rootfs.tgz | Compressed tarball containing filesystem image
+ !(unpack)
+ /rootfs.img | Filesystem image at /run/initramfs/fsimg/
+ !(mount)
+ /bin | Live filesystem
+ /boot |
+ /dev |
+ ... |</pre><p class="simpara">To use this boot option, ensure that <span class="strong"><strong>rd.writable.fsimg=1</strong></span> is in your kernel
+command line and add the <span class="strong"><strong>root=live:&lt;URL&gt;</strong></span> to specify the location
+of your compressed filesystem image tarball or SquashFS image.</p></dd></dl></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>rd.writable.fsimg=</strong></span>1
+</span></dt><dd><p class="simpara">
+Enables writable filesystem support. The system will boot with a fully
+writable (but non-persistent) filesystem without snapshots <span class="emphasis"><em>(see notes above
+about available live boot options)</em></span>. You can use the <span class="strong"><strong>rootflags</strong></span> option to
+set mount options for the live filesystem as well <span class="emphasis"><em>(see documentation about
+rootflags in the <span class="strong"><strong>Standard</strong></span> section above)</em></span>.
+This implies that the whole image is copied to RAM before the boot continues.
+</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>There must be enough free RAM available to hold the complete image.</p></div><p class="simpara">This method is very suitable for diskless boots.</p></dd><dt><span class="term">
+<span class="strong"><strong>rd.minmem=</strong></span><span class="emphasis"><em>&lt;megabyte&gt;</em></span>
+</span></dt><dd><p class="simpara">
+Specify minimum free RAM in MB after copying a live disk image into memory.
+The default is 1024.
+</p><p class="simpara">This parameter only applies together with the parameters rd.writable.fsimg
+or rd.live.ram.</p></dd><dt><span class="term">
+<span class="strong"><strong>root=</strong></span>live:<span class="emphasis"><em>&lt;url&gt;</em></span>
+</span></dt><dd><p class="simpara">
+Boots a live image retrieved from <span class="emphasis"><em>&lt;url&gt;</em></span>. Requires the dracut <span class="emphasis"><em>livenet</em></span>
+module. Valid handlers: <span class="emphasis"><em>http, https, ftp, torrent, tftp</em></span>.
+</p><p><strong>Examples. </strong>
+</p><pre class="screen">root=live:http://example.com/liveboot.img
+root=live:ftp://ftp.example.com/liveboot.img
+root=live:torrent://example.com/liveboot.img.torrent</pre><p>
+</p></dd><dt><span class="term">
+<span class="strong"><strong>rd.live.debug=</strong></span>1
+</span></dt><dd>
+Enables debug output from the live boot process.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.live.dir=</strong></span><span class="emphasis"><em>&lt;path&gt;</em></span>
+</span></dt><dd>
+Specifies the directory within the boot device where the squashfs.img or
+rootfs.img can be found. By default, this is <code class="literal">/LiveOS</code>.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.live.squashimg=</strong></span><span class="emphasis"><em>&lt;filename of SquashFS image&gt;</em></span>
+</span></dt><dd>
+Specifies the filename for a SquashFS image of the root filesystem.
+By default, this is <span class="emphasis"><em>squashfs.img</em></span>.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.live.ram=</strong></span>1
+</span></dt><dd>
+Copy the complete image to RAM and use this for booting. This is useful
+when the image resides on, e.g., a DVD which needs to be ejected later on.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.live.overlay={</strong></span><span class="emphasis"><em>&lt;devspec&gt;</em></span>[:<span class="emphasis"><em>{&lt;pathspec&gt;|auto}</em></span>]|<span class="emphasis"><em>none</em></span>}
+</span></dt><dd><p class="simpara">
+Manage the usage of a persistent overlay.
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+<span class="strong"><strong><span class="emphasis"><em>&lt;devspec&gt;</em></span></strong></span> specifies the path to a device with a mountable filesystem.
+</li><li class="listitem"><p class="simpara">
+<span class="strong"><strong><span class="emphasis"><em>&lt;pathspec&gt;</em></span></strong></span> is a path within the <span class="strong"><strong><span class="emphasis"><em>&lt;devspec&gt;</em></span></strong></span> filesystem to either
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
+a file (that is loop mounted for a Device-mapper overlay) or
+</li><li class="listitem">
+a directory (that is symbolically linked to <code class="literal">/run/overlayfs</code> for a OverlayFS
+mount overlay). (A required sister directory <code class="literal">/&lt;pathspec&gt;/../ovlwork</code> is
+automatically made.)
+</li></ul></div></li><li class="listitem">
+<span class="strong"><strong><span class="emphasis"><em>none</em></span></strong></span> (the word itself) specifies that no overlay will be used, such as
+when an uncompressed, writable live root filesystem is available.
+</li></ul></div><p class="simpara">The above method shall be used to persist the changes made to the root
+filesystem specified within the
+<span class="strong"><strong>root=</strong></span>live:<span class="emphasis"><em>&lt;path to blockdevice&gt;</em></span> or <span class="strong"><strong>root=</strong></span>live:<span class="emphasis"><em>&lt;url&gt;</em></span> device.</p><p class="simpara">The default <span class="strong"><strong><span class="emphasis"><em>pathspec</em></span></strong></span>, when <span class="strong"><strong>:auto</strong></span> or
+no <span class="strong"><strong>:<span class="emphasis"><em>&lt;pathspec&gt;</em></span></strong></span> is given, is <code class="literal">/&lt;rd.live.dir&gt;/overlay-&lt;label&gt;-&lt;uuid&gt;</code>,
+where <span class="emphasis"><em>&lt;label&gt;</em></span> and <span class="emphasis"><em>&lt;uuid&gt;</em></span> are the LABEL and UUID of the filesystem specified
+by the <span class="strong"><strong>root=</strong></span>live:<span class="emphasis"><em>&lt;path|url&gt;</em></span> device.</p><p class="simpara">If a persistent overlay <span class="emphasis"><em>is detected</em></span> at the standard LiveOS path,
+and <span class="strong"><strong><span class="emphasis"><em>rd.live.overlay.overlayfs</em></span></strong></span> is not set to 1, the overlay type (either
+Device-mapper or OverlayFS) will be detected and it will be used.</p><p><strong>Examples. </strong>
+</p><pre class="screen">rd.live.overlay=/dev/sdb1:/persistent-overlay.img
+rd.live.overlay=UUID=99440c1f-8daa-41bf-b965-b7240a8996f4</pre><p>
+</p></dd><dt><span class="term">
+<span class="strong"><strong>rd.live.overlay.cowfs=</strong></span><span class="emphasis"><em>[btrfs|ext4|xfs]</em></span>
+</span></dt><dd>
+Specifies the filesystem to use when formatting the overlay partition.
+The default is ext4.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.live.overlay.size=</strong></span><span class="emphasis"><em>&lt;size_MiB&gt;</em></span>
+</span></dt><dd>
+Specifies a non-persistent Device-mapper overlay size in MiB. The default is
+<span class="emphasis"><em>32768</em></span>.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.live.overlay.readonly=</strong></span>1
+</span></dt><dd><p class="simpara">
+This is used to boot in a read-only mode with a normally read-write persistent
+overlay. With this option,
+</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+Device-mapper overlays will have an additional, non-persistent, writable
+snapshot overlay stacked over a read-only snapshot (<code class="literal">/dev/mapper/live‑ro</code>)
+of the base root filesystem and the persistent overlay, or
+</li><li class="listitem">
+for writable <code class="literal">rootfs.img</code> images, the above over a read-only loop device, or
+</li><li class="listitem">
+an OverlayFS mount will link the persistent overlay directory at
+<code class="literal">/run/overlayfs‑r</code> as an additional read-only lower layer stacked over the base
+root filesystem, and <code class="literal">/run/overlayfs</code> becomes the temporary, writable, upper
+directory overlay, to complete the bootable root filesystem.
+</li></ul></div></dd><dt><span class="term">
+<span class="strong"><strong>rd.live.overlay.reset=</strong></span>1
+</span></dt><dd>
+Specifies that a persistent overlay should be reset on boot. All previous root
+filesystem changes are vacated by this action.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.live.overlay.thin=</strong></span>1
+</span></dt><dd>
+Enables the usage of thin snapshots instead of classic dm snapshots.
+The advantage of thin snapshots is that they support discards, and will free
+blocks that are not claimed by the filesystem. In this use case, this means
+that memory is given back to the kernel when the filesystem does not claim it
+anymore.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.live.overlay.overlayfs=</strong></span>1
+</span></dt><dd><p class="simpara">
+Enables the use of the <span class="strong"><strong>OverlayFS</strong></span> kernel module, if available, to provide a
+copy-on-write union directory for the root filesystem. OverlayFS overlays are
+directories of the files that have changed on the read-only base (lower)
+filesystem. The root filesystem is provided through a special overlay type
+mount that merges at least two directories, designated the lower and the upper.
+If an OverlayFS upper directory is not present on the boot device, a tmpfs
+directory will be created at <code class="literal">/run/overlayfs</code> to provide temporary storage.
+Persistent storage can be provided on vfat or msdos formatted devices by
+supplying the OverlayFS upper directory within an embedded filesystem that
+supports the creation of trusted.* extended attributes and provides a valid
+d_type in readdir responses, such as with btrfs, ext4, f2fs, &amp; xfs. On
+non-vfat-formatted devices, a persistent OverlayFS overlay can extend the
+available root filesystem storage up to the capacity of the LiveOS disk device.
+</p><p class="simpara">The <span class="strong"><strong>rd.live.overlay.readonly</strong></span> option, which allows a persistent overlayfs to
+be mounted read-only through a higher level transient overlay directory, has
+been implemented through the multiple lower layers feature of OverlayFS.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_zipl"></a>ZIPL</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>rd.zipl=</strong></span><span class="emphasis"><em>&lt;path to blockdevice&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ Update the dracut commandline with the values found in the
+ <span class="emphasis"><em>dracut-cmdline.conf</em></span> file on the given device.
+ The values are merged into the existing commandline values
+ and the udev events are regenerated.
+</p><p><strong>Example. </strong>
+</p><pre class="screen">rd.zipl=UUID=0fb28157-99e3-4395-adef-da3f7d44835a</pre><p>
+</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_cio_ignore"></a>CIO_IGNORE</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>rd.cio_accept=</strong></span><span class="emphasis"><em>&lt;device-ids&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ Remove the devices listed in &lt;device-ids&gt; from the default
+ cio_ignore kernel command-line settings.
+ &lt;device-ids&gt; is a list of comma-separated CCW device ids.
+ The default for this value is taken from the
+ <span class="emphasis"><em>/boot/zipl/active_devices.txt</em></span> file.
+</p><p><strong>Example. </strong>
+</p><pre class="screen">rd.cio_accept=0.0.0180,0.0.0800,0.0.0801,0.0.0802</pre><p>
+</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_plymouth_boot_splash"></a>Plymouth Boot Splash</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>plymouth.enable=0</strong></span>
+</span></dt><dd>
+ disable the plymouth bootsplash completely.
+</dd><dt><span class="term">
+<span class="strong"><strong>rd.plymouth=0</strong></span>
+</span></dt><dd>
+ disable the plymouth bootsplash only for the initramfs.
+</dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_kernel_keys"></a>Kernel keys</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>masterkey=</strong></span><span class="emphasis"><em>&lt;kernel master key path name&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ Set the path name of the kernel master key.
+</p><p><strong>Example. </strong>
+</p><pre class="screen">masterkey=/etc/keys/kmk-trusted.blob</pre><p>
+</p></dd><dt><span class="term">
+<span class="strong"><strong>masterkeytype=</strong></span><span class="emphasis"><em>&lt;kernel master key type&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ Set the type of the kernel master key.
+</p><p><strong>Example. </strong>
+</p><pre class="screen">masterkeytype=trusted</pre><p>
+</p></dd><dt><span class="term">
+<span class="strong"><strong>evmkey=</strong></span><span class="emphasis"><em>&lt;EVM HMAC key path name&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ Set the path name of the EVM HMAC key.
+</p><p><strong>Example. </strong>
+</p><pre class="screen">evmkey=/etc/keys/evm-trusted.blob</pre><p>
+</p></dd><dt><span class="term">
+<span class="strong"><strong>evmx509=</strong></span><span class="emphasis"><em>&lt;EVM X.509 cert path name&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ Set the path name of the EVM X.509 certificate.
+</p><p><strong>Example. </strong>
+</p><pre class="screen">evmx509=/etc/keys/x509_evm.der</pre><p>
+</p></dd><dt><span class="term">
+<span class="strong"><strong>ecryptfskey=</strong></span><span class="emphasis"><em>&lt;eCryptfs key path name&gt;</em></span>
+</span></dt><dd><p class="simpara">
+ Set the path name of the eCryptfs key.
+</p><p><strong>Example. </strong>
+</p><pre class="screen">ecryptfskey=/etc/keys/ecryptfs-trusted.blob</pre><p>
+</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_deprecated_renamed_options"></a>Deprecated, renamed Options</h3></div></div></div><p>Here is a list of options and their new replacement.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+rdbreak
+</span></dt><dd>
+rd.break
+</dd><dt><span class="term">
+rd.ccw
+</span></dt><dd>
+rd.znet
+</dd><dt><span class="term">
+rd_CCW
+</span></dt><dd>
+rd.znet
+</dd><dt><span class="term">
+rd_DASD_MOD
+</span></dt><dd>
+rd.dasd
+</dd><dt><span class="term">
+rd_DASD
+</span></dt><dd>
+rd.dasd
+</dd><dt><span class="term">
+rdinitdebug rdnetdebug
+</span></dt><dd>
+rd.debug
+</dd><dt><span class="term">
+rd_NO_DM
+</span></dt><dd>
+rd.dm=0
+</dd><dt><span class="term">
+rd_DM_UUID
+</span></dt><dd>
+rd.dm.uuid
+</dd><dt><span class="term">
+rdblacklist
+</span></dt><dd>
+rd.driver.blacklist
+</dd><dt><span class="term">
+rdinsmodpost
+</span></dt><dd>
+rd.driver.post
+</dd><dt><span class="term">
+rdloaddriver
+</span></dt><dd>
+rd.driver.pre
+</dd><dt><span class="term">
+rd_NO_FSTAB
+</span></dt><dd>
+rd.fstab=0
+</dd><dt><span class="term">
+rdinfo
+</span></dt><dd>
+rd.info
+</dd><dt><span class="term">
+check
+</span></dt><dd>
+rd.live.check
+</dd><dt><span class="term">
+rdlivedebug
+</span></dt><dd>
+rd.live.debug
+</dd><dt><span class="term">
+live_dir
+</span></dt><dd>
+rd.live.dir
+</dd><dt><span class="term">
+liveimg
+</span></dt><dd>
+rd.live.image
+</dd><dt><span class="term">
+overlay
+</span></dt><dd>
+rd.live.overlay
+</dd><dt><span class="term">
+readonly_overlay
+</span></dt><dd>
+rd.live.overlay.readonly
+</dd><dt><span class="term">
+reset_overlay
+</span></dt><dd>
+rd.live.overlay.reset
+</dd><dt><span class="term">
+live_ram
+</span></dt><dd>
+rd.live.ram
+</dd><dt><span class="term">
+rd_NO_CRYPTTAB
+</span></dt><dd>
+rd.luks.crypttab=0
+</dd><dt><span class="term">
+rd_LUKS_KEYDEV_UUID
+</span></dt><dd>
+rd.luks.keydev.uuid
+</dd><dt><span class="term">
+rd_LUKS_KEYPATH
+</span></dt><dd>
+rd.luks.keypath
+</dd><dt><span class="term">
+rd_NO_LUKS
+</span></dt><dd>
+rd.luks=0
+</dd><dt><span class="term">
+rd_LUKS_UUID
+</span></dt><dd>
+rd.luks.uuid
+</dd><dt><span class="term">
+rd_NO_LVMCONF
+</span></dt><dd>
+rd.lvm.conf
+</dd><dt><span class="term">
+rd_LVM_LV
+</span></dt><dd>
+rd.lvm.lv
+</dd><dt><span class="term">
+rd_NO_LVM
+</span></dt><dd>
+rd.lvm=0
+</dd><dt><span class="term">
+rd_LVM_VG
+</span></dt><dd>
+rd.lvm.vg
+</dd><dt><span class="term">
+rd_NO_MDADMCONF
+</span></dt><dd>
+rd.md.conf=0
+</dd><dt><span class="term">
+rd_NO_MDIMSM
+</span></dt><dd>
+rd.md.imsm=0
+</dd><dt><span class="term">
+rd_NO_MD
+</span></dt><dd>
+rd.md=0
+</dd><dt><span class="term">
+rd_MD_UUID
+</span></dt><dd>
+rd.md.uuid
+</dd></dl></div><p>rd_NO_MULTIPATH: rd.multipath=0</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+rd_NFS_DOMAIN
+</span></dt><dd>
+rd.nfs.domain
+</dd><dt><span class="term">
+iscsi_initiator
+</span></dt><dd>
+rd.iscsi.initiator
+</dd><dt><span class="term">
+iscsi_target_name
+</span></dt><dd>
+rd.iscsi.target.name
+</dd><dt><span class="term">
+iscsi_target_ip
+</span></dt><dd>
+rd.iscsi.target.ip
+</dd><dt><span class="term">
+iscsi_target_port
+</span></dt><dd>
+rd.iscsi.target.port
+</dd><dt><span class="term">
+iscsi_target_group
+</span></dt><dd>
+rd.iscsi.target.group
+</dd><dt><span class="term">
+iscsi_username
+</span></dt><dd>
+rd.iscsi.username
+</dd><dt><span class="term">
+iscsi_password
+</span></dt><dd>
+rd.iscsi.password
+</dd><dt><span class="term">
+iscsi_in_username
+</span></dt><dd>
+rd.iscsi.in.username
+</dd><dt><span class="term">
+iscsi_in_password
+</span></dt><dd>
+rd.iscsi.in.password
+</dd><dt><span class="term">
+iscsi_firmware
+</span></dt><dd>
+rd.iscsi.firmware=0
+</dd><dt><span class="term">
+rd_NO_PLYMOUTH
+</span></dt><dd>
+rd.plymouth=0
+</dd><dt><span class="term">
+rd_retry
+</span></dt><dd>
+rd.retry
+</dd><dt><span class="term">
+rdshell
+</span></dt><dd>
+rd.shell
+</dd><dt><span class="term">
+rd_NO_SPLASH
+</span></dt><dd>
+rd.splash
+</dd><dt><span class="term">
+rdudevdebug
+</span></dt><dd>
+rd.udev.udev_log=debug
+</dd><dt><span class="term">
+rdudevinfo
+</span></dt><dd>
+rd.udev.udev_log=info
+</dd><dt><span class="term">
+rd.udev.debug
+</span></dt><dd>
+rd.udev.udev_log=debug
+</dd><dt><span class="term">
+rd.udev.info
+</span></dt><dd>
+rd.udev.udev_log=info
+</dd><dt><span class="term">
+rd_NO_ZFCPCONF
+</span></dt><dd>
+rd.zfcp.conf=0
+</dd><dt><span class="term">
+rd_ZFCP
+</span></dt><dd>
+rd.zfcp
+</dd><dt><span class="term">
+rd_ZNET
+</span></dt><dd>
+rd.znet
+</dd><dt><span class="term">
+KEYMAP
+</span></dt><dd>
+vconsole.keymap
+</dd><dt><span class="term">
+KEYTABLE
+</span></dt><dd>
+vconsole.keymap
+</dd><dt><span class="term">
+SYSFONT
+</span></dt><dd>
+vconsole.font
+</dd><dt><span class="term">
+CONTRANS
+</span></dt><dd>
+vconsole.font.map
+</dd><dt><span class="term">
+UNIMAP
+</span></dt><dd>
+vconsole.font.unimap
+</dd><dt><span class="term">
+UNICODE
+</span></dt><dd>
+vconsole.unicode
+</dd><dt><span class="term">
+EXT_KEYMAP
+</span></dt><dd>
+vconsole.keymap.ext
+</dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_configuration_in_the_initramfs_2"></a>Configuration in the Initramfs</h3></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="emphasis"><em>/etc/conf.d/</em></span>
+</span></dt><dd>
+ Any files found in <span class="emphasis"><em>/etc/conf.d/</em></span> will be sourced in the initramfs to
+ set initial values. Command line options will override these values
+ set in the configuration files.
+</dd><dt><span class="term">
+<span class="emphasis"><em>/etc/cmdline</em></span>
+</span></dt><dd>
+ Can contain additional command line options. Deprecated, better use
+ /etc/cmdline.d/*.conf.
+</dd><dt><span class="term">
+<span class="emphasis"><em>/etc/cmdline.d/*.conf</em></span>
+</span></dt><dd>
+ Can contain additional command line options.
+</dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_author_2"></a>AUTHOR</h2></div></div></div><p>Harald Hoyer</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_see_also_3"></a>SEE ALSO</h2></div></div></div><p><span class="strong"><strong>dracut</strong></span>(8) <span class="strong"><strong>dracut.conf</strong></span>(5)</p></div></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="lsinitrd1"></a>Chapter 9. LSINITRD(1)</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="#_name_4">NAME</a></span></dt><dt><span class="section"><a href="#_synopsis_3">SYNOPSIS</a></span></dt><dt><span class="section"><a href="#_description_4">DESCRIPTION</a></span></dt><dt><span class="section"><a href="#_options_2">OPTIONS</a></span></dt><dt><span class="section"><a href="#_availability_2">AVAILABILITY</a></span></dt><dt><span class="section"><a href="#_authors_2">AUTHORS</a></span></dt><dt><span class="section"><a href="#_see_also_4">SEE ALSO</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_name_4"></a>NAME</h2></div></div></div><p>lsinitrd - tool to show the contents of an initramfs image</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_synopsis_3"></a>SYNOPSIS</h2></div></div></div><p><span class="strong"><strong>lsinitrd</strong></span> [<span class="emphasis"><em>OPTION…</em></span>] [&lt;image&gt; [&lt;filename&gt; [&lt;filename&gt; […] ]]]</p><p><span class="strong"><strong>lsinitrd</strong></span> [<span class="emphasis"><em>OPTION…</em></span>] -k &lt;kernel version&gt;</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_description_4"></a>DESCRIPTION</h2></div></div></div><p>lsinitrd shows the contents of an initramfs image. if &lt;image&gt; is omitted, then
+lsinitrd determines the default location based on the local configuration
+or Linux distribution policy.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_options_2"></a>OPTIONS</h2></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+<span class="strong"><strong>-h, --help</strong></span>
+</span></dt><dd>
+ print a help message and exit.
+</dd><dt><span class="term">
+<span class="strong"><strong>-s, --size</strong></span>
+</span></dt><dd>
+ sort the contents of the initramfs by size.
+</dd><dt><span class="term">
+<span class="strong"><strong>-f, --file</strong></span> <span class="emphasis"><em>&lt;filename&gt;</em></span>
+</span></dt><dd>
+ print the contents of &lt;filename&gt;.
+</dd><dt><span class="term">
+<span class="strong"><strong>-k, --kver</strong></span> <span class="emphasis"><em>&lt;kernel version&gt;</em></span>
+</span></dt><dd>
+ inspect the initramfs of &lt;kernel version&gt;.
+</dd><dt><span class="term">
+<span class="strong"><strong>-m, --mod</strong></span>
+</span></dt><dd>
+ list dracut modules included of the initramfs image.
+</dd><dt><span class="term">
+<span class="strong"><strong>--unpack</strong></span>
+</span></dt><dd>
+ unpack the initramfs to the current directory, instead of displaying the contents.
+ If optional filenames are given, will only unpack specified files, else the whole image will be unpacked.
+ Won’t unpack anything from early cpio part.
+</dd><dt><span class="term">
+<span class="strong"><strong>--unpackearly</strong></span>
+</span></dt><dd>
+ unpack the early microcode initramfs to the current directory, instead of displaying the contents.
+ Same as --unpack, but only unpack files from early cpio part.
+</dd><dt><span class="term">
+<span class="strong"><strong>-v, --verbose</strong></span>
+</span></dt><dd>
+ unpack verbosely
+</dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_availability_2"></a>AVAILABILITY</h2></div></div></div><p>The lsinitrd command is part of the dracut package and is available from
+<a class="ulink" href="https://github.com/dracut-ng/dracut-ng" target="_top">https://github.com/dracut-ng/dracut-ng</a></p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_authors_2"></a>AUTHORS</h2></div></div></div><p>Harald Hoyer</p><p>Amerigo Wang</p><p>Nikoli</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_see_also_4"></a>SEE ALSO</h2></div></div></div><p><span class="strong"><strong>dracut</strong></span>(8)</p></div></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="_developer_manual"></a>Chapter 10. Developer Manual</h2></div></div></div></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="dracutmodules7"></a>Chapter 11. DRACUT.MODULES(7)</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="#_name_5">NAME</a></span></dt><dt><span class="section"><a href="#_description_5">DESCRIPTION</a></span></dt><dt><span class="section"><a href="#stages">Boot Process Stages</a></span></dt><dd><dl><dt><span class="section"><a href="#_hook_cmdline">Hook: cmdline</a></span></dt><dt><span class="section"><a href="#_hook_pre_udev">Hook: pre-udev</a></span></dt><dt><span class="section"><a href="#_start_udev">Start Udev</a></span></dt><dt><span class="section"><a href="#_hook_pre_trigger">Hook: pre-trigger</a></span></dt><dt><span class="section"><a href="#_trigger_udev">Trigger Udev</a></span></dt><dt><span class="section"><a href="#_main_loop">Main Loop</a></span></dt><dt><span class="section"><a href="#_hook_pre_mount">Hook: pre-mount</a></span></dt><dt><span class="section"><a href="#_hook_mount">Hook: mount</a></span></dt><dt><span class="section"><a href="#_hook_pre_pivot">Hook: pre-pivot</a></span></dt><dt><span class="section"><a href="#_hook_cleanup">Hook: cleanup</a></span></dt><dt><span class="section"><a href="#_cleanup_and_switch_root">Cleanup and switch_root</a></span></dt></dl></dd><dt><span class="section"><a href="#_network_infrastructure">Network Infrastructure</a></span></dt><dt><span class="section"><a href="#_writing_a_module">Writing a Module</a></span></dt><dd><dl><dt><span class="section"><a href="#_module_setup_sh_check">module-setup.sh: check()</a></span></dt><dt><span class="section"><a href="#_module_setup_sh_depends">module-setup.sh: depends()</a></span></dt><dt><span class="section"><a href="#_module_setup_sh_cmdline">module-setup.sh: cmdline()</a></span></dt><dt><span class="section"><a href="#_module_setup_sh_install">module-setup.sh: install()</a></span></dt><dt><span class="section"><a href="#_module_setup_sh_installkernel">module-setup.sh: installkernel()</a></span></dt><dt><span class="section"><a href="#_anchor_id_creation_xreflabel_creation_creation_functions">Creation Functions</a></span></dt><dt><span class="section"><a href="#_initramfs_functions">Initramfs Functions</a></span></dt><dt><span class="section"><a href="#_network_modules">Network Modules</a></span></dt></dl></dd><dt><span class="section"><a href="#_author_3">AUTHOR</a></span></dt><dt><span class="section"><a href="#_see_also_5">SEE ALSO</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_name_5"></a>NAME</h2></div></div></div><p>dracut.modules - dracut modules</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_description_5"></a>DESCRIPTION</h2></div></div></div><p>dracut uses a modular system to build and extend the initramfs image. All
+modules are located in <span class="emphasis"><em>/usr/lib/dracut/modules.d</em></span> or in <span class="emphasis"><em>&lt;git-src&gt;/modules.d</em></span>.
+The most basic dracut module is <span class="emphasis"><em>99base</em></span>. In <span class="emphasis"><em>99base</em></span> the initial shell script
+init is defined, which gets run by the kernel after initramfs loading. Although
+you can replace init with your own version of <span class="emphasis"><em>99base</em></span>, this is not encouraged.
+Instead you should use, if possible, the hooks of dracut. All hooks, and the
+point of time in which they are executed, are described in <a class="xref" href="#stages" title="Boot Process Stages">the section called “Boot Process Stages”</a>.</p><p>The main script, which creates the initramfs is dracut itself. It parses all
+arguments and sets up the directory, in which everything is installed. It then
+executes all check, install, installkernel scripts found in the modules, which
+are to be processed. After everything is installed, the install directory is
+archived and compressed to the final initramfs image. All helper functions used
+by check, install and installkernel are found in in the file <span class="emphasis"><em>dracut-functions</em></span>.
+These shell functions are available to all module installer (install,
+installkernel) scripts, without the need to source <span class="emphasis"><em>dracut-functions</em></span>.</p><p>A module can check the preconditions for install and installkernel with the
+check script. Also dependencies can be expressed with check. If a module passed
+check, install and installkernel will be called to install all of the necessary
+files for the module. To split between kernel and non-kernel parts of the
+installation, all kernel module related parts have to be in installkernel. All
+other files found in a module directory are module specific and mostly are hook
+scripts and udev rules.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="stages"></a>Boot Process Stages</h2></div></div></div><p>dracut modules can insert custom script at various points, to control the boot
+process.
+These hooks are plain directories containing shell scripts ending with ".sh",
+which are sourced by init.
+Common used functions are in <span class="emphasis"><em>dracut-lib.sh</em></span>, which can be sourced by any script.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_hook_cmdline"></a>Hook: cmdline</h3></div></div></div><p>The <span class="emphasis"><em>cmdline</em></span> hook is a place to insert scripts to parse the kernel command line
+and prepare the later actions, like setting up udev rules and configuration
+files.</p><p>In this hook the most important environment variable is defined: root. The
+second one is rootok, which indicates, that a module claimed to be able to parse
+the root defined. So for example, <span class="strong"><strong>root=</strong></span><span class="emphasis"><em>iscsi:….</em></span> will be claimed by the
+iscsi dracut module, which then sets rootok.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_hook_pre_udev"></a>Hook: pre-udev</h3></div></div></div><p>This hook is executed right after the cmdline hook and a check if root and
+rootok were set. Here modules can take action with the final root, and before
+udev has been run.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_start_udev"></a>Start Udev</h3></div></div></div><p>Now udev is started and the logging for udev is setup.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_hook_pre_trigger"></a>Hook: pre-trigger</h3></div></div></div><p>In this hook, you can set udev environment variables with <span class="strong"><strong>udevadm control
+--property=KEY=<span class="emphasis"><em>value</em></span></strong></span> or control the further execution of udev with
+udevadm.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_trigger_udev"></a>Trigger Udev</h3></div></div></div><p>udev is triggered by calling udevadm trigger, which sends add events for all
+devices and subsystems.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_main_loop"></a>Main Loop</h3></div></div></div><p>In the main loop of dracut loops until udev has settled and
+all scripts in <span class="emphasis"><em>initqueue/finished</em></span> returned true.
+In this loop there are three hooks, where scripts can be inserted
+by calling /sbin/initqueue.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_initqueue"></a>Initqueue</h4></div></div></div><p>This hook gets executed every time a script is inserted here, regardless of the
+udev state.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_initqueue_settled"></a>Initqueue settled</h4></div></div></div><p>This hook (initqueue/settled) gets executed every time udev has settled.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_initqueue_timeout"></a>Initqueue timeout</h4></div></div></div><p>This hook (initqueue/timeout) gets executed, when the main loop counter becomes
+half of the rd.retry counter.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_initqueue_online"></a>Initqueue online</h4></div></div></div><p>This hook (initqueue/online) gets executed whenever a network interface comes online
+(that is, once it is up and configured by the configured network module).</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_initqueue_finished"></a>Initqueue finished</h4></div></div></div><p>This hook (initqueue/finished) is called after udev has settled and
+if all scripts herein return 0 the main loop will be ended.
+Arbitrary scripts can be added here, to loop in the
+initqueue until something happens, which a dracut module wants to wait for.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_hook_pre_mount"></a>Hook: pre-mount</h3></div></div></div><p>Before the root device is mounted all scripts in the hook pre-mount are
+executed. In some cases (e.g. NFS) the real root device is already mounted,
+though.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_hook_mount"></a>Hook: mount</h3></div></div></div><p>This hook is mainly to mount the real root device.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_hook_pre_pivot"></a>Hook: pre-pivot</h3></div></div></div><p>This hook is called before cleanup hook, This is a good place for
+actions other than cleanups which need to be called before pivot.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_hook_cleanup"></a>Hook: cleanup</h3></div></div></div><p>This hook is the last hook and is called before init finally switches root to
+the real root device. This is a good place to clean up and kill processes not
+needed anymore.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_cleanup_and_switch_root"></a>Cleanup and switch_root</h3></div></div></div><p>Init (or systemd) kills all udev processes, cleans up the environment,
+sets up the arguments for the real init process and finally calls switch_root.
+switch_root removes the whole filesystem hierarchy of the initramfs,
+chroot()s to the real root device and calls /sbin/init with the specified
+arguments.</p><p>To ensure all files in the initramfs hierarchy can be removed, all processes
+still running from the initramfs should not have any open file descriptors left.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_network_infrastructure"></a>Network Infrastructure</h2></div></div></div><p>FIXME</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_writing_a_module"></a>Writing a Module</h2></div></div></div><p>A simple example module is <span class="emphasis"><em>90kernel-modules</em></span>, which modprobes a kernel module
+after udev has settled and the basic device drivers have been loaded.</p><p>All module installation information is in the file module-setup.sh.</p><p>First we create a check() function, which just exits with 0 indicating that this
+module should be included by default.</p><p>check():</p><pre class="screen">return 0</pre><p>Then we create the install() function, which installs a cmdline hook with
+priority number 20 called <span class="emphasis"><em>parse-insmodpost.sh</em></span>. It also installs the
+<span class="emphasis"><em>insmodpost.sh</em></span> script in <span class="emphasis"><em>/sbin</em></span>.</p><p>install():</p><pre class="screen">inst_hook cmdline 20 "$moddir/parse-insmodpost.sh"
+inst_simple "$moddir/insmodpost.sh" /sbin/insmodpost.sh</pre><p>The <span class="emphasis"><em>parse-instmodpost.sh</em></span> parses the kernel command line for a argument
+rd.driver.post, blacklists the module from being autoloaded and installs the
+hook <span class="emphasis"><em>insmodpost.sh</em></span> in the <span class="emphasis"><em>initqueue/settled</em></span>.</p><p><span class="emphasis"><em>parse-insmodpost.sh</em></span>:</p><pre class="screen">for p in $(getargs rd.driver.post=); do
+ echo "blacklist $p" &gt;&gt; /run/modprobe.d/initramfsblacklist.conf
+ _do_insmodpost=1
+done
+
+[ -n "$_do_insmodpost" ] &amp;&amp; /sbin/initqueue --settled --unique --onetime /sbin/insmodpost.sh
+unset _do_insmodpost</pre><p><span class="emphasis"><em>insmodpost.sh</em></span>, which is called in the <span class="emphasis"><em>initqueue/settled</em></span> hook will just
+modprobe the kernel modules specified in all rd.driver.post kernel command line
+parameters. It runs after udev has settled and is only called once (--onetime).</p><p><span class="emphasis"><em>insmodpost.sh</em></span>:</p><pre class="screen">. /lib/dracut-lib.sh
+
+for p in $(getargs rd.driver.post=); do
+ modprobe $p
+done</pre><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_module_setup_sh_check"></a>module-setup.sh: check()</h3></div></div></div><p><span class="emphasis"><em>check()</em></span> is called by dracut to evaluate the inclusion of a dracut module in
+the initramfs.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+$hostonly
+</span></dt><dd>
+If the $hostonly variable is set, then the module check() function
+should be in "hostonly" mode, which means, that the check() should only return
+0, if the module is really needed to boot this specific host.
+</dd></dl></div><p>check() should return with:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+0
+</span></dt><dd>
+Include the dracut module in the initramfs.
+</dd><dt><span class="term">
+1
+</span></dt><dd>
+Do not include the dracut module. The requirements are not fulfilled
+(missing tools, etc.)
+</dd><dt><span class="term">
+255
+</span></dt><dd>
+Only include the dracut module, if another module requires it or if
+explicitly specified in the config file or on the argument list.
+</dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_module_setup_sh_depends"></a>module-setup.sh: depends()</h3></div></div></div><p>The function depends() should echo all other dracut module names the module
+depends on.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_module_setup_sh_cmdline"></a>module-setup.sh: cmdline()</h3></div></div></div><p>This function should print the kernel command line options needed to boot the
+current machine setup. It should start with a space and should not print a
+newline.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_module_setup_sh_install"></a>module-setup.sh: install()</h3></div></div></div><p>The install() function is called to install everything non-kernel related.
+To install binaries, scripts, and other files, you can use the functions
+mentioned in <a class="xref" href="#creation">[creation]</a>.</p><p>To address a file in the current module directory, use the variable "$moddir".</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_module_setup_sh_installkernel"></a>module-setup.sh: installkernel()</h3></div></div></div><p>In installkernel() all kernel related files should be installed. You can use all
+of the functions mentioned in <a class="xref" href="#creation">[creation]</a> to install files.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_anchor_id_creation_xreflabel_creation_creation_functions"></a><a id="creation"></a>Creation Functions</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_inst_multiple_o_lt_file_gt_lt_file_gt_8230"></a>inst_multiple [-o] &lt;file&gt; [ &lt;file&gt; …]</h4></div></div></div><p>installs multiple binaries and files. If executables are specified without a
+path, dracut will search the path PATH=/usr/sbin:/sbin:/usr/bin:/bin for the
+binary. If the option "-o" is given as the first parameter, a missing file does
+not lead to an error.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_inst_lt_src_gt_lt_dst_gt"></a>inst &lt;src&gt; [&lt;dst&gt;]</h4></div></div></div><p>installs <span class="emphasis"><em>one</em></span> file &lt;src&gt; either to the same place in the initramfs or to an
+optional &lt;dst&gt;. inst with more than two arguments is treated the same as
+inst_multiple, all arguments are treated as files to install and none as
+install destinations.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_inst_hook_lt_hookdir_gt_lt_prio_gt_lt_src_gt"></a>inst_hook &lt;hookdir&gt; &lt;prio&gt; &lt;src&gt;</h4></div></div></div><p>installs an executable/script &lt;src&gt; in the dracut hook &lt;hookdir&gt; with priority
+&lt;prio&gt;.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_inst_rules_lt_udevrule_gt_lt_udevrule_gt_8230"></a>inst_rules &lt;udevrule&gt; [ &lt;udevrule&gt; …]</h4></div></div></div><p>installs one or more udev rules. Non-existent udev rules are reported, but do
+not let dracut fail.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_instmods_lt_kernelmodule_gt_lt_kernelmodule_gt_8230"></a>instmods &lt;kernelmodule&gt; [ &lt;kernelmodule&gt; … ]</h4></div></div></div><p>instmods should be used only in the installkernel() function.</p><p>instmods installs one or more kernel modules in the initramfs. &lt;kernelmodule&gt;
+can also be a whole subsystem, if prefixed with a "=", like "=drivers/net/team".</p><p>instmods will not install the kernel module, if $hostonly is set and the kernel
+module is not currently needed by any /sys/<span class="strong"><strong>…</strong></span>/uevent MODALIAS.
+To install a kernel module regardless of the hostonly mode use the form:</p><pre class="screen">hostonly='' instmods &lt;kernelmodule&gt;</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_initramfs_functions"></a>Initramfs Functions</h3></div></div></div><p>FIXME</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="_network_modules"></a>Network Modules</h3></div></div></div><p>FIXME</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_author_3"></a>AUTHOR</h2></div></div></div><p>Harald Hoyer</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_see_also_5"></a>SEE ALSO</h2></div></div></div><p><span class="strong"><strong>dracut</strong></span>(8)</p></div></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="dracutbootup7"></a>Chapter 12. DRACUT.BOOTUP(7)</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="#_name_6">NAME</a></span></dt><dt><span class="section"><a href="#_description_6">DESCRIPTION</a></span></dt><dt><span class="section"><a href="#_author_4">AUTHOR</a></span></dt><dt><span class="section"><a href="#_see_also_6">SEE ALSO</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_name_6"></a>NAME</h2></div></div></div><p>dracut.bootup - boot ordering in the initramfs</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_description_6"></a>DESCRIPTION</h2></div></div></div><p>This flow chart illustrates the ordering of the services, if systemd is used in
+the dracut initramfs.</p><pre class="screen"> systemd-journal.socket
+ |
+ v
+ dracut-cmdline.service
+ |
+ v
+ dracut-pre-udev.service
+ |
+ v
+ systemd-udevd.service
+ |
+ v
+local-fs-pre.target dracut-pre-trigger.service
+ | |
+ v v
+ (various mounts) (various swap systemd-udev-trigger.service
+ | devices...) | (various low-level (various low-level
+ | | | services: seed, API VFS mounts:
+ v v v tmpfiles, random mqueue, configfs,
+ local-fs.target swap.target dracut-initqueue.service sysctl, ...) debugfs, ...)
+ | | | | |
+ \_______________|____________________ | ___________________|____________________/
+ \|/
+ v
+ sysinit.target
+ |
+ _________________/|\___________________
+ / | \
+ | | |
+ v | v
+ (various | rescue.service
+ sockets...) | |
+ | | v
+ v | rescue.target
+ sockets.target |
+ | |
+ \_________________ | emergency.service
+ \| |
+ v v
+ basic.target emergency.target
+ |
+ ______________________/|
+ / |
+ | v
+ | initrd-root-device.target
+ | |
+ | v
+ | dracut-pre-mount.service
+ | |
+ | v
+ | sysroot.mount
+ | |
+ | v
+ | initrd-root-fs.target
+ (custom initrd services) |
+ | v
+ | dracut-mount.service
+ | |
+ | v
+ | initrd-parse-etc.service
+ | |
+ | v
+ | (sysroot-usr.mount and
+ | various mounts marked
+ | with fstab option
+ | x-initrd.mount)
+ | |
+ | v
+ | initrd-fs.target
+ \______________________ |
+ \|
+ v
+ initrd.target
+ |
+ v
+ dracut-pre-pivot.service
+ |
+ v
+ initrd-cleanup.service
+ isolates to
+ initrd-switch-root.target
+ |
+ v
+ ______________________/|
+ / |
+ | initrd-udevadm-cleanup-db.service
+ | |
+ (custom initrd services) |
+ | |
+ \______________________ |
+ \|
+ v
+ initrd-switch-root.target
+ |
+ v
+ initrd-switch-root.service
+ |
+ v
+ switch-root</pre></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_author_4"></a>AUTHOR</h2></div></div></div><p>Harald Hoyer</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_see_also_6"></a>SEE ALSO</h2></div></div></div><p><span class="strong"><strong>dracut</strong></span>(8) <span class="strong"><strong>bootup</strong></span>(7)</p></div></div><div class="appendix"><div class="titlepage"><div><div><h2 class="title"><a id="_license"></a>Appendix A. License</h2></div></div></div><p>This work is licensed under the Creative Commons Attribution/Share-Alike
+License. To view a copy of this license, visit
+<a class="ulink" href="http://creativecommons.org/licenses/by-sa/3.0/" target="_top">http://creativecommons.org/licenses/by-sa/3.0/</a> or send a letter to Creative
+Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.</p></div></div></div></body></html> \ No newline at end of file