[TOC] ## References *...The kernel (optionally) mounts an in-memory file system, often generated by `dracut(8)`, which looks for the root file system. Nowadays this is implemented as an "initramfs" — a compressed CPIO archive that the kernel extracts into a tmpfs. In the past normal file systems using an in-memory block device (ramdisk) were used, and the name "initrd" is still used to describe both concepts. It's the boot loader or the firmware that loads both the kernel and initrd/initramfs images into memory, but the kernel which interprets it as a file system...* *[--- `bootup(7)`](https://man7.org/linux/man-pages/man7/bootup.7.html)* Distro documentation may contains some good sources: 1. [*Custom Initramfs*](https://wiki.gentoo.org/wiki/Custom_Initramfs) in Gentoo 2. [*Arch boot process*](https://wiki.archlinux.org/title/Arch_boot_process) in Arch Linux Wiki. 3. [*InitramfsDebug*](https://wiki.debian.org/InitramfsDebug) in Debian Wiki. Useful tool includes [`lsinitrd`](https://man7.org/linux/man-pages/man1/lsinitrd.1.html), [`unmkinitramfs`](https://manpages.ubuntu.com/manpages/focal/en/man8/unmkinitramfs.8.html), [`dracut(8)`](https://man7.org/linux/man-pages/man8/dracut.8.html) etc. Note that `intramfs` is not the only mechanism to let kernel have a usable rootfs before it can access the real one. The `initrd`, a read-only block device once mounted, can provide utilities needed to mount the actual root file system, is the old way to provide such make-shift root file system before `initramfs` gained popularity. See [`initrd(4)`](https://man7.org/linux/man-pages/man4/initrd.4.html) for details. Unfortunately due to historical reason, very often the term `initrd` is used to refer to `initramfs`. For example, the [`mkinitrd(8)`](https://man7.org/linux/man-pages/man8/mkinitrd.8.html) command is a tool for creating initramfs, but was named after `initrd`. ### [David Hand _ "Linux initramfs for fun, and, uh..."](https://youtu.be/KQjRnuwb7is) {%youtube KQjRnuwb7is %} ### [Modifying GRUB & Initrd for PXE boot [Ubuntu]](https://www.youtube.com/live/WkDq2EtKemk) {%youtube WkDq2EtKemk %} ### [Securing the Linux boot process](https://youtu.be/ywoMSwvxZo4) {%youtube ywoMSwvxZo4 %}