Initramfs zfs boot

From copec
Revision as of 12:40, 24 January 2017 by Copec (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Overview

Both Debian and Ubuntu fail to boot when there is an arbitrarily more complex zpool than a single vdev that contains the bootfs.

Notes on Boot Process

  • The linux kernel is initially bootstrapped.
  • The compiled-in initramfs is mounted and executed.
    • It mounts the external initramfs; Deletes everything under its own initramfs; Executes the external initramfs /init

(External) initramfs init

  • Create
    • /dev
    • /root
    • /sys
    • /proc
    • /tmp
    • /var/lock
  • Mount
    • /sys
    • /proc
    • /dev
    • /dev/pts
    • /run
  • Create
    • /run/initramfs
  • Setup bash exports
  • Setup hostname
  • Source
    • /conf/initramfs.conf
    • /conf/conf.d/*
    • /scripts/functions
  • Parse command line options
    • init root rootflags rootfstype rootdelay resumedelay loop loopflags loopfstype crytopts nfsroot netboot ip ip6 boot ubi.mtd resume resume_offset noresume drop_capabilities panic quiet ro rw debug break blacklist netconsole BOOTIF hwaddr fastboot forcefsck fsckfix fsckmode fsck.repair recovery
  • Default
    • BOOT=local
    • noresume
  • maybe_break top
    • export BOOT
    • run_scripts /scripts/init-top
  • maybe_break modules
    • load_modules
  • maybe_break premount
    • run_scripts /scripts/init-premount
  • maybe_break mount
  • /scripts/local
  • /scripts/nfs
  • /scripts/BOOT
  • parse_numeric ROOT
  • maybe_break mountroot
  • mount_top
  • mount_premount
  • mountroot
  • Mount
    • /usr
  • mount_bottom
  • nfs_bottom
  • local_bottom
  • maybe_break bottom
    • run_scripts /scripts/init-bottom