On 09/26/2010 12:06 AM, Amadeusz ÅoÅnowski wrote:
Let take a look at Linux sources, /usr/src/linux-2.6.35/init/main.c: 204: char * envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, }; 857: run_init_process("/sbin/init"); 817: static void run_init_process(char *init_filename) 818: { 819: argv_init[0] = init_filename; 820: kernel_execve(init_filename, argv_init, envp_init); 821: } As we can see HOME=/ and TERM=linux are provided for init and this might be expected on some systems (Gentoo comes to my mind, here ;-)). That's why we should give to init the same set of env. vars as Linux kernel does. --- modules.d/99base/init | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules.d/99base/init b/modules.d/99base/init index 5a02ade..dc0a0df 100755 --- a/modules.d/99base/init +++ b/modules.d/99base/init @@ -59,8 +59,8 @@ emergency_shell() fi } +OLD_PATH="$PATH" export PATH=/sbin:/bin:/usr/sbin:/usr/bin -export TERM=linux NEWROOT="/sysroot" trap "emergency_shell Signal caught!" 0 @@ -327,8 +327,8 @@ info "Switching root" wait_for_loginit umask $OLD_UMASK -unset HOME -unset TERM +export PATH="$OLD_PATH" + exec switch_root "$NEWROOT" "$INIT" $initargs || { echo "Something went very badly wrong in the initramfs. Please " echo "file a bug against dracut."
pushed -- To unsubscribe from this list: send the line "unsubscribe initramfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html