poking around in places in the kernel source i haven't been to in a while so probably the first in a series of nitpicky questions. the "retain_initrd" kernel parameter is documented thusly: retain_initrd [RAM] Keep initrd memory after extraction ok, but does that mean one has *access* to it? let's look at the source in init/initramfs.c. here's the processing of the parameter: ===== start static int __initdata do_retain_initrd; static int __init retain_initrd_param(char *str) { if (*str) return 0; do_retain_initrd = 1; <--- record the parameter return 1; } __setup("retain_initrd", retain_initrd_param); ===== end and here's the apparent effect it has, just below that in the same source file: ===== start static void __init free_initrd(void) { #ifdef CONFIG_KEXEC unsigned long crashk_start = (unsigned long)__va(crashk_res.start); unsigned long crashk_end = (unsigned long)__va(crashk_res.end); #endif if (do_retain_initrd) goto skip; ... snip for KEXEC ... free_initrd_mem(initrd_start, initrd_end); skip: initrd_start = 0; initrd_end = 0; } ===== end so if i read this correctly, if i use the kernel parm of "retain_initrd", the call to free_initrd_mem() is skipped, but the variables initrd_start and initrd_end are still cleared, so what exactly is one supposed to do with the information that the initrd content is still in memory? it's not like it's mounted and visible from userspace, is it? what is the value of that parameter? rday -- ======================================================================== Robert P. J. Day Ottawa, Ontario, CANADA http://crashcourse.ca Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday ========================================================================