On 19/04/2015 01:06, Isaac Dunham wrote:
I'm not sure exactly what the priority is, but the kernel searches /sbin/init, /init, and /linuxrc at least.
From the kernel source (init/main.c): if (!try_to_run_init_process("/sbin/init") || !try_to_run_init_process("/etc/init") || !try_to_run_init_process("/bin/init") || !try_to_run_init_process("/bin/sh")) return 0; with /init being executed prior to any of those lines if it exists.
I've seen a reference to a kernel option that changes the "init" on the initramfs recently on this list; I'm not positive what it is, but it may be rdinit.
According to the same kernel file: yes, rdinit :)
As far as I know, if the initramfs init program completes, the kernel panics. It needs to mount the new / on a mountpoint (traditionally /mnt), move /dev to /mnt/dev if using a dynamic /dev, change the root (pivot_root() is the typical syscall, usually used via switch_root or pivot_root commands), and exec the new init.
It makes absolutely no difference to the kernel whether init is run from an initramfs or not. The init process that the kernel runs is pid 1 and the kernel stops caring what happens at that point - except it doesn't like it if pid 1 dies. From there on, finalizing the initialization is the job of userspace; most people will indeed want to pivot_root, but some systems are happy running with the initramfs as the root filesystem for the whole machine lifetime. -- Laurent _______________________________________________ Dng mailing list Dng@lists.dyne.org https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng