<h3>Ben Hutchings</h3>
</div>
+<div class="slide">
+ <h1>What is the initramfs for?</h1>
+ <ul class="incremental">
+ <li>
+ Huge variety of disk drivers, net drivers and filesystems that
+ may be needed to mount root
+ </li>
+ <li>
+ Generic kernel shouldn't have all these built-in
+ </li>
+ <li>
+ Root might also need RAID, LVM, dm-crypt, which generally need
+ to be configured by userland
+ </li>
+ <li>
+ Kernel needs a way to load modules and run scripts but
+ it can't read them from the root filesystem
+ </li>
+ <li>
+ Solution: boot loader provides a bundle of files
+ (initramfs image) to the kernel
+ </li>
+ </ul>
+</div>
+
+<div class="slide">
+ <img src="yo-dawg.jpeg" width="90%" />
+</div>
+
+<div class="slide">
+ <h1>How the kernel uses an initramfs</h1>
+ <ul class="incremental">
+ <li>
+ Kernel <em>always</em> mounts an initial root filesystem using
+ either ramfs or tmpfs
+ </li>
+ <li>
+ If the boot loader provides an initramfs image, kernel
+ unpacks it into this filesystem, then runs <tt>/init</tt>
+ </li>
+ <li>
+ The initramfs init system is then responsible for mounting
+ the real root filesystem and running the real <tt>init</tt>
+ <ul class="incremental">
+ <li>
+ Although it is not <em>required</em> to hand over at all
+ - e.g. debian-installer
+ </li>
+ </ul>
+ </li>
+ </ul>
+</div>
+
+<div class="slide">
+ <h1>Overview</h1>
+ <ul class="incremental">
+ <li>
+ Started in Ubuntu in 2005 and adopted in Debian later that year
+ </li>
+ <li>
+ <tt>mkinitramfs</tt> builds an initramfs image using the
+ included scripts, necessary kernel modules, udev, and utilities
+ from klibc-utils or busybox
+ </li>
+ <li>
+ Uses build-time and boot-time hook scripts for
+ extensibility
+ <ul>
+ <li>Used by btrfs-tools, cryptsetup, lvm2, mdadm, etc.</li>
+ </ul>
+ </li>
+ <li>
+ Supports dependencies within each set of scripts
+ </li>
+ </ul>
+</div>
+
<div class="slide">
<h1>Questions?</h1>
</div>
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-->
</li>
+ <li>
+ Xzibit promotional photo © Retna, used for purpose of parody
+ </li>
</ul>
</div>