3880 lines
247 KiB
HTML
3880 lines
247 KiB
HTML
<?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 054</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="idm46158327173728"></a>dracut 054</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@redhat.com">harald@redhat.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="#_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 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="#_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, then the default location
|
||
/boot/initramfs-<kernel version>.img is used.</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 is /boot/initramfs-<span class="emphasis"><em><code class="literal"><kernel version></code></em></span>.img and
|
||
contains the kernel modules of the currently active kernel with version
|
||
<span class="emphasis"><em><code class="literal"><kernel version></code></em></span>.</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>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>(5).</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.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.ext3 ssh' initramfs-dbg.img</pre><p>This will create an initramfs with the strace, fsck.ext3 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. Some of the basic operations are covered here. For more information
|
||
you should also visit:
|
||
<a class="ulink" href="https://www.kernel.org/pub/linux/utils/boot/dracut/dracut.html" target="_top">https://www.kernel.org/pub/linux/utils/boot/dracut/dracut.html</a></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="ext3"
|
||
/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="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 [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 [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 [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 [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 [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 [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 [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 [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 [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>--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>
|
||
</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>
|
||
</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>
|
||
</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>
|
||
</dd><dt><span class="term">
|
||
<span class="strong"><strong>--fscks</strong></span> [LIST]
|
||
</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 [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>--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></dl></div><p><span class="strong"><strong>--hostonly-cmdline</strong></span>:
|
||
Store kernel command line arguments needed in the initramfs</p><p><span class="strong"><strong>--no-hostonly-cmdline</strong></span>:
|
||
Do not store kernel command line arguments needed in the initramfs</p><p><span class="strong"><strong>--no-hostonly-default-device</strong></span>:
|
||
Do not generate implicit host devices like root, swap, fstab, etc.
|
||
Use "--mount" or "--add-device" to explicitly add devices as needed.</p><p><span class="strong"><strong>--hostonly-i18n</strong></span>:
|
||
Install only needed keyboard and font files according to the host configuration (default).</p><p><span class="strong"><strong>--no-hostonly-i18n</strong></span>:
|
||
Install all keyboard and font files available.</p><div class="variablelist"><dl class="variablelist"><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"
|
||
</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 hostonly mode for resume support when your swap is on
|
||
LVM or an encrypted partition.
|
||
[NB --device can be used for compatibility with earlier releases]
|
||
</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 [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"</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 "lzma --compress=lzma -9"</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
|
||
"lzma --compress=xz --check=crc32 --lzma2=dict=1MiB"</p></div></dd><dt><span class="term">
|
||
<span class="strong"><strong>--lzo</strong></span>
|
||
</span></dt><dd>
|
||
Compress the generated initramfs using lzop.
|
||
</dd></dl></div><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.</p></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
|
||
<span class="strong"><strong>--lz4</strong></span>
|
||
</span></dt><dd>
|
||
Compress the generated initramfs using lz4.
|
||
</dd></dl></div><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.</p></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
|
||
<span class="strong"><strong>--zstd</strong></span>
|
||
</span></dt><dd>
|
||
Compress the generated initramfs using Zstandard.
|
||
</dd></dl></div><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.</p></div><div class="variablelist"><dl class="variablelist"><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>--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></dl></div><p><span class="strong"><strong>--profile</strong></span>:
|
||
Output profile information of the build process</p><p><span class="strong"><strong>--ro-mnt</strong></span>:
|
||
Mount / and /usr read-only by default.</p><div class="variablelist"><dl class="variablelist"><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>--loginstall <span class="emphasis"><em><DIR></em></span></strong></span>
|
||
</span></dt><dd>
|
||
Log all files installed from the host to <span class="emphasis"><em><DIR></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-existant 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></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_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://dracut.wiki.kernel.org" target="_top">https://dracut.wiki.kernel.org</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>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>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>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>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>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 directories, where to look for firmwares, separated by :
|
||
</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|lzo|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>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>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.
|
||
</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
|
||
</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"
|
||
</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>.
|
||
</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 hostonly 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=yes)
|
||
</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=yes)
|
||
</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.
|
||
</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.
|
||
</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>
|
||
Set logging to standard error level.
|
||
</dd><dt><span class="term">
|
||
<span class="strong"><strong>sysloglvl</strong></span>="<span class="emphasis"><em>{0-6}</em></span>"
|
||
</span></dt><dd>
|
||
Set logging to syslog level.
|
||
</dd><dt><span class="term">
|
||
<span class="strong"><strong>fileloglvl=</strong></span>"<span class="emphasis"><em>{0-6}</em></span>"
|
||
</span></dt><dd>
|
||
Set logging to file level.
|
||
</dd><dt><span class="term">
|
||
<span class="strong"><strong>logfile=</strong></span>"<span class="emphasis"><em><file></em></span>"
|
||
</span></dt><dd>
|
||
Path to log file.
|
||
</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.
|
||
</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 hostonly mode.
|
||
</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.
|
||
</dd><dt><span class="term">
|
||
<span class="strong"><strong>loginstall=</strong></span>"<span class="emphasis"><em><DIR></em></span>"
|
||
</span></dt><dd>
|
||
Log all files installed from the host to <span class="emphasis"><em><DIR></em></span>.
|
||
</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>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></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="#_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=ext3</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 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 30 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 genereted 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 on defined breakpoint
|
||
</dd><dt><span class="term">
|
||
<span class="strong"><strong>rd.udev.info</strong></span>
|
||
</span></dt><dd>
|
||
set udev to loglevel info
|
||
</dd><dt><span class="term">
|
||
<span class="strong"><strong>rd.udev.debug</strong></span>
|
||
</span></dt><dd>
|
||
set udev to loglevel debug
|
||
</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 loosing 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><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><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 and to SUSE using wicked.
|
||
</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.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>
|
||
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.
|
||
The <span class="emphasis"><em><traddr></em></span> parameter can be set to <span class="emphasis"><em>auto</em></span> to select
|
||
autodiscovery; in that case all other parameters are ignored.
|
||
This parameter can be specified multiple times.
|
||
</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="_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>
|
||
same syntax as the kernel module parameter (s390 only)
|
||
</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>
|
||
rd.zfcp can be specified multiple times on the kernel command
|
||
line.
|
||
</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 adaptor will be initiating a
|
||
scan internally and the <WWPN> and <FCPLUN> parameters can be omitted.
|
||
</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>
|
||
The whole parameter is appended to /etc/ccw.conf, which is used on
|
||
RHEL/Fedora with ccw_init, which is called from udev for certain
|
||
devices on z-series.
|
||
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 with read-only filesystem image
|
||
</span></dt><dd><p class="simpara">
|
||
The system will boot with a
|
||
read-only filesystem from the SquashFS and apply a writable Device-mapper
|
||
snapshot or an OverlayFS overlay mount for the read-only base filesystem. This
|
||
method ensures a relatively fast boot and lower RAM usage. Users <span class="strong"><strong>must be
|
||
careful</strong></span> to avoid writing too many blocks to a snapshot volume. Once the
|
||
blocks of the snapshot overlay are exhausted, the root filesystem becomes
|
||
read-only and may cause application failures. The snapshot overlay file is
|
||
marked <span class="emphasis"><em>Overflow</em></span>, and a difficult recovery is required to repair and enlarge
|
||
the overlay offline. Non-persistent overlays are sparse files in RAM that only
|
||
consume content space as required blocks are allocated. They default to an
|
||
apparent size of 32 GiB in RAM. The size can be adjusted with the
|
||
<span class="strong"><strong>rd.live.overlay.size=</strong></span> kernel command line option.
|
||
</p><p class="simpara">The filesystem structure is traditionally expected to be:</p><pre class="screen">squashfs.img | SquashFS from LiveCD .iso
|
||
!(mount)
|
||
/LiveOS
|
||
|- rootfs.img | Filesystem image to mount read-only
|
||
!(mount)
|
||
/bin | Live filesystem
|
||
/boot |
|
||
/dev |
|
||
... |</pre><p class="simpara">For OverlayFS mount overlays, the filesystem structure may also be a direct
|
||
compression of the root filesystem:</p><pre class="screen">squashfs.img | SquashFS from LiveCD .iso
|
||
!(mount)
|
||
/bin | Live 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=live:<URL></strong></span> to
|
||
specify the location of your squashed 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>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 permanent overlay.
|
||
</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
|
||
<span class="emphasis"><em><devspec></em></span> specifies the path to a device with a mountable filesystem.
|
||
</li><li class="listitem"><p class="simpara">
|
||
<span class="emphasis"><em><pathspec></em></span> is the path to a file within that filesystem, which shall be
|
||
used to persist the changes made to the device specified by the
|
||
<span class="strong"><strong>root=live:<span class="emphasis"><em><url></em></span></strong></span> option.
|
||
</p><p class="simpara">The default <span class="emphasis"><em>pathspec</em></span>, when <span class="emphasis"><em>auto</em></span> or no <span class="emphasis"><em>:<pathspec></em></span> is given, is
|
||
<code class="literal">/<rd.live.dir>/overlay-<label>-<uuid></code>, where <span class="emphasis"><em><label></em></span> is the
|
||
device LABEL, and <span class="emphasis"><em><uuid></em></span> is the device UUID.
|
||
* <span class="emphasis"><em>none</em></span> (the word itself) specifies that no overlay will be used, such as when
|
||
an uncompressed, writable live root filesystem is available.</p><p class="simpara">If a persistent overlay <span class="emphasis"><em>is detected</em></span> at the standard LiveOS path, the
|
||
overlay & overlay type detected, whether Device-mapper or OverlayFS, will be
|
||
used.</p></li></ul></div><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.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>
|
||
This is used to boot with a normally read-write persistent overlay in a
|
||
read-only mode. With this option, either an additional, non-persistent,
|
||
writable snapshot overlay will be stacked over a read-only snapshot,
|
||
<code class="literal">/dev/mapper/live‑ro</code>, of the base filesystem with the persistent overlay, or a
|
||
read-only loop device, in the case of a writable <span class="emphasis"><em>rootfs.img</em></span>, or an OverlayFS
|
||
mount will use the persistent overlay directory linked at <code class="literal">/run/overlayfs‑r</code> as
|
||
an additional lower layer along with the base root filesystem and apply a
|
||
transient, writable upper directory overlay, in order to complete the booted
|
||
root filesystem.
|
||
</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 the lower and upper directories. 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 ext4 and 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">If a persistent overlay is detected at the standard LiveOS path, the overlay &
|
||
overlay type detected, whether OverlayFS or Device-mapper, will be used.</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 key path name></em></span>
|
||
</span></dt><dd><p class="simpara">
|
||
Set the path name of the EVM 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>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, which were used in dracut prior to version 008, 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_SNAPSHOT
|
||
</span></dt><dd>
|
||
rd.lvm.snapshot
|
||
</dd><dt><span class="term">
|
||
rd_LVM_SNAPSIZE
|
||
</span></dt><dd>
|
||
rd.lvm.snapsize
|
||
</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.debug
|
||
</dd><dt><span class="term">
|
||
rdudevinfo
|
||
</span></dt><dd>
|
||
rd.udev.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 uses the default image <span class="emphasis"><em>/boot/<machine-id>/<kernel-version>/initrd</em></span> or
|
||
<span class="emphasis"><em>/boot/initramfs-<kernel-version>.img</em></span>.</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://dracut.wiki.kernel.org" target="_top">https://dracut.wiki.kernel.org</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" >> /etc/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-existant 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
|
||
| 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> |