/boot

  • Everything needed to boot except config
  • /boot/map
    • Location of kernel
  • /boot/vmlinuz
    • Kernel or symlink to
    • Per kernel release
  • /boot/initrd.img
    • Temp file system before kernel
    • Per kernel release
  • /boot/System.map
    • Symbol lookup table
    • Per kernel release
  • /boot/config
    • Per kernel release
  • /boot/grub
    • GRUB config files

vmlinux

  • Statically linked executable
  • Contains kernel

initramfs

  • Generated by mkinitcpio/dracut
  • Set up early userspace
    • / starts empty
    • initramfs images unpacked here
  • Contains necessary to strap late userspace
    • To the point where it can access the filesystem
  • Executes /init as PID 1
    • Resolve block device names to real devices via udev
    • systemd-modules-load
      • Loads kernel modules
    • DRM module
  • Real root is mounted at /sysroot
    • Switched to using systemctl switch-root
    • Finally, /init in real root is run