1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 <html xmlns="http://www.w3.org/1999/xhtml">
7 <title>initramfs-tools - mini-DebConf Cambridge 2014</title>
9 <meta name="generator" content="S5" />
10 <meta name="version" content="S5 1.1" />
11 <meta name="author" content="Ben Hutchings" />
12 <!-- configuration parameters -->
13 <meta name="defaultView" content="slideshow" />
14 <meta name="controlVis" content="hidden" />
15 <!-- style sheet links -->
16 <link rel="stylesheet" href="s5-blank/ui/default/slides.css" type="text/css" media="projection" id="slideProj" />
17 <link rel="stylesheet" href="s5-blank/ui/default/outline.css" type="text/css" media="screen" id="outlineStyle" />
18 <link rel="stylesheet" href="s5-blank/ui/default/print.css" type="text/css" media="print" id="slidePrint" />
19 <link rel="stylesheet" href="s5-blank/ui/default/opera.css" type="text/css" media="projection" id="operaFix" />
20 <style type="text/css">
21 .logo { position: absolute; right: 0; top: 0; height: 100% }
22 table { border-collapse: collapse }
23 th { border-bottom: 2pt solid black }
24 th, td { padding: 0 6pt }
25 .package { font-family: monospace }
26 var { font-family: sans }
28 <style type="text/css" media="print">
29 .slide { page-break-after: always }
32 <script src="s5-blank/ui/default/slides.js" type="text/javascript"></script>
37 <div id="controls"><!-- DO NOT EDIT --></div>
38 <div id="currentSlide"><!-- DO NOT EDIT --></div>
42 <h1>mini-DebConf Cambridge 2014</h1>
43 <h2>initramfs-tools</h2>
48 <div class="presentation">
51 <h1>initramfs-tools</h1>
52 <object data="tux-debian.svg" width="35%" align="right"></object>
53 <h3>Ben Hutchings</h3>
57 <h1>What is the initramfs for?</h1>
58 <ul class="incremental">
60 Huge variety of disk drivers, net drivers and filesystems that
61 may be needed to mount root
64 Generic kernel shouldn't have all these built-in
67 Root might also need RAID, LVM, dm-crypt, which generally need
68 to be configured by userland
71 Kernel needs a way to load modules and run scripts but
72 it can't read them from the root filesystem
75 Solution: boot loader provides a bundle of files
76 (initramfs image) to the kernel
82 <img src="yo-dawg.jpeg" width="90%" />
86 <h1>How the kernel uses an initramfs</h1>
87 <ul class="incremental">
89 Kernel <em>always</em> mounts an initial root filesystem using
93 If the boot loader provides an initramfs image, kernel
94 unpacks it into this filesystem, then runs <tt>/init</tt>
97 The initramfs init system is then responsible for mounting
98 the real root filesystem and running the real <tt>init</tt>
99 <ul class="incremental">
101 Although it is not <em>required</em> to hand over at all
102 - e.g. debian-installer
111 <ul class="incremental">
113 Started in Ubuntu in 2005 and adopted in Debian later that year
116 <tt>mkinitramfs</tt> builds an initramfs image using the
117 included scripts, necessary kernel modules, udev, and utilities
118 from klibc-utils or busybox
121 Uses build-time and boot-time hook scripts for
124 <li>Used by btrfs-tools, cryptsetup, lvm2, mdadm, etc.</li>
128 Supports dependencies within each set of scripts
134 <h1>The init system</h1>
135 <ul class="incremental">
137 Mount <tt>devtmpfs</tt>, <tt>devpts</tt>, <tt>procfs</tt>,
138 <tt>sysfs</tt>, <tt>tmpfs</tt> at <tt>/run</tt>
141 Run <tt>init-top</tt> scripts - includes starting udev
144 Load explicitly configured modules
147 Run <tt>init-premount</tt> scripts
150 Run <tt>local-top</tt> or <tt>nfs-top</tt> scripts
154 Run <tt>local-premount</tt> or <tt>nfs-premount</tt> scripts
155 - e.g. btrfs scan, resume from disk
158 Mount root filesystem
171 Linux 'Tux' logo © Larry Ewing, Simon Budig.
173 Redistribution is free but has to include this notice.
176 <li>Modified by Ben to add Debian open-ND logo</li>
180 Debian open-ND logo © Software in the Public Interest, Inc.
182 Permission is hereby granted, free of charge, to any person obtaining
183 a copy of this software and associated documentation files (the
184 "Software"), to deal in the Software without restriction, including
185 without limitation the rights to use, copy, modify, merge, publish,
186 distribute, sublicense, and/or sell copies of the Software, and to
187 permit persons to whom the Software is furnished to do so, subject to
188 the following conditions:
190 The above copyright notice and this permission notice shall be
191 included in all copies or substantial portions of the Software.
193 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
194 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
195 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
196 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
197 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
198 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
199 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
203 Xzibit promotional photo © Retna, used for purpose of parody