Initramfs zfs boot
From copec
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