diff options
Diffstat (limited to 'dracut.html')
-rw-r--r-- | dracut.html | 4202 |
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 > .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 > .titlepage h1.title { + text-align:center; +} + +.article > .titlepage h1.title { + text-align:center; +} + +.set .titlepage > div > div > 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 > div > div > div > 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 > dl > 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"><<a class="email" href="mailto:harald@profian.com">harald@profian.com</a>></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><image></em></span> [<span class="emphasis"><em><kernel version></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 <image> for the kernel with the version <kernel version>. +If <kernel version> is omitted, then the version of the actual running +kernel is used. If <image> is omitted or empty, 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"><kernel-version></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"><path to device +node></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"><kernel +module name></code></em></span>, with <span class="emphasis"><em><code class="literal"><kernel module name></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" >> rd.live.overlay/etc/cmdline.d/mycmdline.conf +# echo export FOO=testtest >> rd.live.overlay/etc/conf.d/testvar.conf +# echo export BAR=testtest >> 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 <interfacename> +# 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 >/dev/kmsg 2>&1 </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" > /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><kernel version></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><output file></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><output file></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><list of dracut modules></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><list of dracut modules></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><list of dracut modules></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><list of dracut modules></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><list of kernel modules></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><list of kernel modules></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><list of kernel modules></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><list of kernel modules></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><list of filesystems></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><kernel directory></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><dir>[:<dir>…]++</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><list of directories></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 <parameters></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><list of fsck tools></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><dir></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><dracut configuration file></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><configuration directory></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><temporary directory></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><sysroot directory></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><sshkey file></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><logfile></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><mode></em></span></strong></span> +</span></dt><dd><p class="simpara"> + Specify the host-only mode to use. <span class="emphasis"><em><mode></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><list of nics></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><policy></em></span> +</span></dt><dd> + Use <span class="emphasis"><em><policy></em></span> to address disks and partitions. + <span class="emphasis"><em><policy></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><filename></em></span> +</span></dt><dd> + Add entries of <span class="emphasis"><em><filename></em></span> to the initramfs /etc/fstab. +</dd><dt><span class="term"> +<span class="strong"><strong>--mount</strong></span> "<span class="emphasis"><em><device></em></span> <span class="emphasis"><em><mountpoint></em></span> <span class="emphasis"><em><filesystem type></em></span> [<span class="emphasis"><em><filesystem options></em></span> [<span class="emphasis"><em><dump frequency></em></span> [<span class="emphasis"><em><fsck order></em></span>]]]" +</span></dt><dd> + Mount <span class="emphasis"><em><device></em></span> on <span class="emphasis"><em><mountpoint></em></span> with <span class="emphasis"><em><filesystem type></em></span> in the + initramfs. <span class="emphasis"><em><filesystem options></em></span>, <span class="emphasis"><em><dump options></em></span> and <span class="emphasis"><em><fsck order></em></span> can + be specified, see fstab manpage for the details. + The default <span class="emphasis"><em><filesystem options></em></span> is "defaults". + The default <span class="emphasis"><em><dump frequency></em></span> is "0". + The default <span class="emphasis"><em><fsck order></em></span> is "2". +</dd><dt><span class="term"> +<span class="strong"><strong>--mount</strong></span> "<span class="emphasis"><em><mountpoint></em></span>" +</span></dt><dd> + Like above, but <span class="emphasis"><em><device></em></span>, <span class="emphasis"><em><filesystem type></em></span> and <span class="emphasis"><em><filesystem options></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><device></em></span> +</span></dt><dd> + Bring up <span class="emphasis"><em><device></em></span> in initramfs, <span class="emphasis"><em><device></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><SOURCE></em></span> <span class="emphasis"><em><TARGET></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><file list></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><file list></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><compressor></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><compressor></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><level></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><directory></em></span></strong></span> +</span></dt><dd> + Log all files installed from the host to <span class="emphasis"><em><directory></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><EFI>/EFI/Linux/linux-$kernel$-<MACHINE_ID>-<BUILD_ID>.efi</em></span>. + <EFI> 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 <BUILD_ID> 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 + <MACHINE_ID> part. +</dd><dt><span class="term"> +<span class="strong"><strong>--uefi-stub <span class="emphasis"><em><file></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<EFI-MACHINE-TYPE-NAME>.efi.stub</em></span>. +</dd><dt><span class="term"> +<span class="strong"><strong>--uefi-splash-image <span class="emphasis"><em><file></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><file></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/<KERNEL-VERSION>/vmlinuz</em></span> or + <span class="emphasis"><em>/boot/vmlinuz-<KERNEL-VERSION></em></span>. +</dd><dt><span class="term"> +<span class="strong"><strong>--sbat <parameters></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><dracut modules></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><dracut modules></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><dracut modules></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><dracut modules></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><kernel modules></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><list of kernel modules></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><kernel modules></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><kernel modules></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><filesystem names></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><kernel modules directory></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><dir></em></span>[:<span class="emphasis"><em><dir></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><dir></em></span>[ <span class="emphasis"><em><dir></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><file></em></span>[ <span class="emphasis"><em><file></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><file></em></span>[ <span class="emphasis"><em><file></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|<compressor [args …]>}</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>{<compressor [args …]>}</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><directory></em></span> " +</span></dt><dd> + Prefix initramfs files with <span class="emphasis"><em><directory></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><nic></em></span>[ <span class="emphasis"><em><nic></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><policy></em></span>" +</span></dt><dd> + Use <span class="emphasis"><em><policy></em></span> to address disks and partitions. + <span class="emphasis"><em><policy></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><temporary directory></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><filename></em></span> " +</span></dt><dd> + Add entries of <span class="emphasis"><em><filename></em></span> to the initramfs /etc/fstab. +</dd><dt><span class="term"> +<span class="strong"><strong>add_device+=</strong></span>" <span class="emphasis"><em><device></em></span> " +</span></dt><dd> + Bring up <span class="emphasis"><em><device></em></span> in initramfs, <span class="emphasis"><em><device></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><fsck tools></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><dir></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><file></em></span>" +</span></dt><dd> + Path to logfile. +</dd><dt><span class="term"> +<span class="strong"><strong>sshkey=</strong></span>"<span class="emphasis"><em><file></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><variable mapping></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><fontname></em></span>" +</span></dt><dd> + The font <fontname> 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><directory></em></span>" +</span></dt><dd> + Log all files installed from the host to <span class="emphasis"><em><directory></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><EFI>/EFI/Linux/linux-$kernel$-<MACHINE_ID>-<BUILD_ID>.efi</em></span>. + <EFI> 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 <BUILD_ID> 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 + <MACHINE_ID> part (default=yes). +</dd><dt><span class="term"> +<span class="strong"><strong>uefi_stub=</strong></span>"<span class="emphasis"><em><file></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<EFI-MACHINE-TYPE-NAME>.efi.stub</em></span>. +</dd><dt><span class="term"> +<span class="strong"><strong>uefi_splash_image=</strong></span>"<span class="emphasis"><em><file></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><file></em></span>", <span class="strong"><strong>uefi_secureboot_key=</strong></span>"<span class="emphasis"><em><file></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><file></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/<KERNEL-VERSION>/vmlinuz</em></span> or + <span class="emphasis"><em>/boot/vmlinuz-<KERNEL-VERSION></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><filepattern></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=<label_of_root></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=<uuidnumber></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><path to real init></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><path to blockdevice></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><filesystem type></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><mount options></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><path to blockdevice></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 >= 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><path to resume partition></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><drivername></em></span>[,<span class="emphasis"><em><drivername></em></span>,…] +</span></dt><dd> + do not load kernel module <drivername>. 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><drivername></em></span>[,<span class="emphasis"><em><drivername></em></span>,…] +</span></dt><dd> + force loading kernel module <drivername>. 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><drivername></em></span>[,<span class="emphasis"><em><drivername></em></span>,…] +</span></dt><dd> + force loading kernel module <drivername> 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><seconds></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><seconds></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><terminal device></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><seconds></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><keymap base file name></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><list of keymap base file names></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><font base file name></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><console map base file name></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><unicode table base file name></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><locale></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><locale></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><volume group name></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><volume group name>/<logical volume name></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><luks uuid></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><luks uuid></em></span>. + The comparisons also matches, if <span class="emphasis"><em><luks uuid></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><luks uuid></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><luks uuid></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><luks uuid></em></span>. The comparisons also matches, if <span class="emphasis"><em><luks uuid></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><seconds></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><keypath>[:<keydev>[:<luksdev>]]</em></span> +</span></dt><dd><p class="simpara"> + <span class="emphasis"><em><keypath></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><keypath></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><keydev></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><luksdev></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><keydev></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 > 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><md raid uuid></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><dm raid uuid></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><boot device></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=<uuid> +boot=LABEL=<label></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<index> +</span></dt><dd> +on-board device index number +</dd><dt><span class="term"> +s<slot>[f<function>][d<dev_id>] +</span></dt><dd> +hotplug slot index number +</dd><dt><span class="term"> +x<MAC> +</span></dt><dd> +MAC address +</dd><dt><span class="term"> +[P<domain>]p<bus>s<slot>[f<function>][d<dev_id>] +</span></dt><dd> +PCI geographical location +</dd><dt><span class="term"> +[P<domain>]p<bus>s<slot>[f<function>][u<port>][..][c<config>][i<interface>] +</span></dt><dd> +USB port number chain +</dd></dl></div><p>All multi-function PCI devices will carry the [f<function>] 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><interface></em></span>:<span class="emphasis"><em>{dhcp|on|any|dhcp6|auto6|link6}</em></span>[:[<span class="emphasis"><em><mtu></em></span>][:<span class="emphasis"><em><macaddr></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"> +<macaddr> +</span></dt><dd> +optionally <span class="strong"><strong>set</strong></span> <macaddr> on the <interface>. This +cannot be used in conjunction with the <span class="strong"><strong>ifname</strong></span> argument for the +same <interface>. +</dd></dl></div></div></dd><dt><span class="term"> +<span class="strong"><strong>ip=</strong></span><span class="emphasis"><em><client-IP></em></span>:[<span class="emphasis"><em><peer></em></span>]:<span class="emphasis"><em><gateway-IP></em></span>:<span class="emphasis"><em><netmask></em></span>:<span class="emphasis"><em><client_hostname></em></span>:<span class="emphasis"><em><interface></em></span>:<span class="emphasis"><em>{none|off|dhcp|on|any|dhcp6|auto6|ibft}</em></span>[:[<span class="emphasis"><em><mtu></em></span>][:<span class="emphasis"><em><macaddr></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><peer></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"> +<macaddr> +</span></dt><dd> +optionally <span class="strong"><strong>set</strong></span> <macaddr> on the <interface>. This +cannot be used in conjunction with the <span class="strong"><strong>ifname</strong></span> argument for the +same <interface>. +</dd></dl></div></div></dd><dt><span class="term"> +<span class="strong"><strong>ip=</strong></span><span class="emphasis"><em><client-IP></em></span>:[<span class="emphasis"><em><peer></em></span>]:<span class="emphasis"><em><gateway-IP></em></span>:<span class="emphasis"><em><netmask></em></span>:<span class="emphasis"><em><client_hostname></em></span>:<span class="emphasis"><em><interface></em></span>:<span class="emphasis"><em>{none|off|dhcp|on|any|dhcp6|auto6|ibft}</em></span>[:[<span class="emphasis"><em><dns1></em></span>][:<span class="emphasis"><em><dns2></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><peer></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><interface></em></span>:<span class="emphasis"><em><MAC></em></span> +</span></dt><dd><p class="simpara"> + Assign network device name <interface> (i.e. "bootnet") to the NIC with + MAC <MAC>. +</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><net></em></span>/<span class="emphasis"><em><netmask></em></span>:<span class="emphasis"><em><gateway></em></span>[:<span class="emphasis"><em><interface></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><interface></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><MAC></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><IP></em></span> [<span class="strong"><strong>nameserver=</strong></span><span class="emphasis"><em><IP></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><vlanname></em></span>:<span class="emphasis"><em><phydevice></em></span> +</span></dt><dd> + Setup vlan device named <vlanname> on <phydevice>. + 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><bondname></em></span>[:<span class="emphasis"><em><bondslaves></em></span>:[:<span class="emphasis"><em><options></em></span>[:<mtu>]]] +</span></dt><dd> + Setup bonding device <bondname> on top of <bondslaves>. + <bondslaves> is a comma-separated list of physical (ethernet) interfaces. + <options> is a comma-separated list on bonding options (modinfo bonding for + details) in format compatible with initscripts. If <options> 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><teammaster></em></span>:<span class="emphasis"><em><teamslaves></em></span>[:<span class="emphasis"><em><teamrunner></em></span>] +</span></dt><dd> + Setup team device <teammaster> on top of <teamslaves>. + <teamslaves> is a comma-separated list of physical (ethernet) interfaces. + <teamrunner> 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><bridgename></em></span>:<span class="emphasis"><em><ethnames></em></span> +</span></dt><dd> + Setup bridge <bridgename> with <ethnames>. <ethnames> 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><server-ip></em></span>:]<span class="emphasis"><em><root-dir></em></span>[:<span class="emphasis"><em><nfs-options></em></span>] +</span></dt><dd> + mount nfs share from <server-ip>:/<root-dir>, 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><server-ip></em></span>:]<span class="emphasis"><em><root-dir></em></span>[:<span class="emphasis"><em><nfs-options></em></span>], <span class="strong"><strong>root=</strong></span>nfs4:[<span class="emphasis"><em><server-ip></em></span>:]<span class="emphasis"><em><root-dir></em></span>[:<span class="emphasis"><em><nfs-options></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=<server-ip>:<root-dir>[,<nfs-options>] + root-path=nfs:<server-ip>:<root-dir>[,<nfs-options>] + root-path=nfs4:<server-ip>:<root-dir>[,<nfs-options>]</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><server-ip></em></span>:]<span class="emphasis"><em><root-dir></em></span>[:<span class="emphasis"><em><nfs-options></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><NFSv4 domain name></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><cnt></em></span> +</span></dt><dd> + If this option is set, dracut will try to connect via dhcp <cnt> 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><arg></em></span> +</span></dt><dd> + If this option is set, dhclient is called with "--timeout <arg>". +</dd><dt><span class="term"> +<span class="strong"><strong>rd.net.timeout.iflink=</strong></span><span class="emphasis"><em><seconds></em></span> +</span></dt><dd> + Wait <seconds> 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><seconds></em></span> +</span></dt><dd> + Wait <seconds> 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><seconds></em></span> +</span></dt><dd> + Wait <seconds> 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><seconds></em></span> +</span></dt><dd> + Wait <seconds> 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><seconds></em></span> +</span></dt><dd> + Wait <seconds> 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><seconds></em></span> +</span></dt><dd> + Wait <seconds> 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><username></em></span>[:<span class="emphasis"><em><password></em></span>]@]<span class="emphasis"><em><server-ip></em></span>:<span class="emphasis"><em><root-dir></em></span> +</span></dt><dd><p class="simpara"> + mount cifs share from <server-ip>:/<root-dir>, 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><username></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><password></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><username></em></span>:<span class="emphasis"><em><password></em></span>[:<span class="emphasis"><em><reverse></em></span>:<span class="emphasis"><em><password></em></span>]@][<span class="emphasis"><em><servername></em></span>]:[<span class="emphasis"><em><protocol></em></span>]:[<span class="emphasis"><em><port></em></span>][:[<span class="emphasis"><em><iscsi_iface_name></em></span>]:[<span class="emphasis"><em><netdev_name></em></span>]]:[<span class="emphasis"><em><LUN></em></span>]:<span class="emphasis"><em><targetname></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><username></em></span>:<span class="emphasis"><em><password></em></span>[:<span class="emphasis"><em><reverse></em></span>:<span class="emphasis"><em><password></em></span>]@][<span class="emphasis"><em><servername></em></span>]:[<span class="emphasis"><em><protocol></em></span>]:[<span class="emphasis"><em><port></em></span>][:[<span class="emphasis"><em><iscsi_iface_name></em></span>]:[<span class="emphasis"><em><netdev_name></em></span>]]:[<span class="emphasis"><em><LUN></em></span>]:<span class="emphasis"><em><targetname></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><initiator></em></span> <span class="strong"><strong>rd.iscsi.target.name=</strong></span><span class="emphasis"><em><target name></em></span> <span class="strong"><strong>rd.iscsi.target.ip=</strong></span><span class="emphasis"><em><target ip></em></span> <span class="strong"><strong>rd.iscsi.target.port=</strong></span><span class="emphasis"><em><target port></em></span> <span class="strong"><strong>rd.iscsi.target.group=</strong></span><span class="emphasis"><em><target group></em></span> <span class="strong"><strong>rd.iscsi.username=</strong></span><span class="emphasis"><em><username></em></span> <span class="strong"><strong>rd.iscsi.password=</strong></span><span class="emphasis"><em><password></em></span> <span class="strong"><strong>rd.iscsi.in.username=</strong></span><span class="emphasis"><em><in username></em></span> <span class="strong"><strong>rd.iscsi.in.password=</strong></span><span class="emphasis"><em><in password></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><num></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><param></em></span> +</span></dt><dd><p class="simpara"> + <param> will be passed as "--param <param>" 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><edd|interface|MAC></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><interface></em></span> or + <span class="emphasis"><em><MAC></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><hostNQN></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><hostID></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><traddr></em></span>,[<span class="emphasis"><em><host_traddr></em></span>],[<span class="emphasis"><em><trsvcid></em></span>] +</span></dt><dd><p class="simpara"> + Discover and connect to a NVMe-over-Fabric controller specified by + <span class="emphasis"><em><traddr></em></span> and the optionally <span class="emphasis"><em><host_traddr></em></span> or <span class="emphasis"><em><trsvcid></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><server></em></span>:<span class="emphasis"><em><port/exportname></em></span>[:<span class="emphasis"><em><fstype></em></span>[:<span class="emphasis"><em><mountopts></em></span>[:<span class="emphasis"><em><nbdopts></em></span>]]] +</span></dt><dd><p class="simpara"> + mount nbd share from <server>. +</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><server></em></span>:<span class="emphasis"><em><port/exportname></em></span>[:<span class="emphasis"><em><fstype></em></span>[:<span class="emphasis"><em><mountopts></em></span>[:<span class="emphasis"><em><nbdopts></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><mount-tag></em></span> +</span></dt><dd> + mount virtiofs share using the tag <mount-tag>. + 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><mount-tag></em></span> +</span></dt><dd> + mount virtiofs share using the tag <mount-tag>. + 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><zfcp adaptor device bus ID></em></span>,<span class="emphasis"><em><WWPN></em></span>,<span class="emphasis"><em><FCPLUN></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><zfcp adaptor device bus ID></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 <WWPN> and <FCPLUN> 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><nettype></em></span>,<span class="emphasis"><em><subchannels></em></span>,<span class="emphasis"><em><options></em></span> +</span></dt><dd> + Activates a channel-attached network interface on s390 architecture. + <nettype> is one of: qeth, lcs, ctc. + <subchannels> is a comma-separated list of ccw device bus-IDs. + The list consists of 3 entries with nettype qeth, and 2 for other nettype. + <options> is a comma-separated list of <name>=<value> pairs, + where <name> refers to a device sysfs attribute to which <value> 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><ifname></em></span>:<span class="emphasis"><em><subchannels></em></span> +</span></dt><dd><p class="simpara"> + Assign network device name <interface> (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=<nbytes> /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><path to blockdevice></em></span> or <span class="strong"><strong>root=</strong></span>live:<span class="emphasis"><em><URL></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:<URL></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><megabyte></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><url></em></span> +</span></dt><dd><p class="simpara"> +Boots a live image retrieved from <span class="emphasis"><em><url></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><path></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><filename of SquashFS image></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><devspec></em></span>[:<span class="emphasis"><em>{<pathspec>|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><devspec></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><pathspec></em></span></strong></span> is a path within the <span class="strong"><strong><span class="emphasis"><em><devspec></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">/<pathspec>/../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><path to blockdevice></em></span> or <span class="strong"><strong>root=</strong></span>live:<span class="emphasis"><em><url></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><pathspec></em></span></strong></span> is given, is <code class="literal">/<rd.live.dir>/overlay-<label>-<uuid></code>, +where <span class="emphasis"><em><label></em></span> and <span class="emphasis"><em><uuid></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><path|url></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><size_MiB></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, & 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><path to blockdevice></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><device-ids></em></span> +</span></dt><dd><p class="simpara"> + Remove the devices listed in <device-ids> from the default + cio_ignore kernel command-line settings. + <device-ids> 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><kernel master key path name></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><kernel master key type></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><EVM HMAC key path name></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><EVM X.509 cert path name></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><eCryptfs key path name></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>] [<image> [<filename> [<filename> […] ]]]</p><p><span class="strong"><strong>lsinitrd</strong></span> [<span class="emphasis"><em>OPTION…</em></span>] -k <kernel version></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 <image> 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><filename></em></span> +</span></dt><dd> + print the contents of <filename>. +</dd><dt><span class="term"> +<span class="strong"><strong>-k, --kver</strong></span> <span class="emphasis"><em><kernel version></em></span> +</span></dt><dd> + inspect the initramfs of <kernel version>. +</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><git-src>/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" >> /run/modprobe.d/initramfsblacklist.conf + _do_insmodpost=1 +done + +[ -n "$_do_insmodpost" ] && /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] <file> [ <file> …]</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 <src> [<dst>]</h4></div></div></div><p>installs <span class="emphasis"><em>one</em></span> file <src> either to the same place in the initramfs or to an +optional <dst>. 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 <hookdir> <prio> <src></h4></div></div></div><p>installs an executable/script <src> in the dracut hook <hookdir> with priority +<prio>.</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 <udevrule> [ <udevrule> …]</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 <kernelmodule> [ <kernelmodule> … ]</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. <kernelmodule> +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 <kernelmodule></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 |