Difference between revisions of "Initramfs zfs boot"

From copec
Jump to: navigation, search
 
(6 intermediate revisions by the same user not shown)
Line 6: Line 6:
 
* The compiled-in initramfs is mounted and executed.
 
* The compiled-in initramfs is mounted and executed.
 
** It mounts the external initramfs; Deletes everything under its own initramfs; Executes the external initramfs /init
 
** 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

Latest revision as of 12:40, 24 January 2017

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