lkml.org 
[lkml]   [2008]   [Mar]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
SubjectRe: [PATCH] chroot= as a new kernel parameter
Date
On Monday 03 March 2008 10:19, Guillaume Chazarain wrote:
>
> init=/working_distro/lib/ld-linux.so.2 --library-path
> /working_distro/lib /working_distro/usr/sbin/chroot /working_distro/
> /sbin/init
>
root=<root> init=/working_distro/lib/ld-linux.so.2 --library-path
/working_distro/lib working_distro/usr/sbin/chroot /working_distro/ /sbin/init

I think that it is *interestly* hack but I am not sure that it will be an usable method for all of a distroes which exists on the world.
At last my patch is as simple as possible and it has *only* a *few lines of the code* and it can be used
as *independent* method to various *hundred* distroes.

root=<root> chroot=<chroot>

and it looks *beautiful* I think :-)

so I have sent a patch again which it has corrected a *coding style* and a new description in a kernel-parameters.txt file
(a suggestions for better description are welcome).
I think that this can be a *last version* of a patch.
Because I am *newbie* in a kernel hacking I hope that someone will had been written me what now with it ?
Maybe send this patch *directly* to *kernel guru* such as Andrew Morton which manages a -mm series ?


diff -urp linux-2.6.24-orig/Documentation/kernel-parameters.txt linux-2.6.24/Documentation/kernel-parameters.txt
--- linux-2.6.24-orig/Documentation/kernel-parameters.txt 2008-02-25 20:53:26.000000000 -0500
+++ linux-2.6.24/Documentation/kernel-parameters.txt 2008-03-04 09:51:52.000000000 -0500
@@ -381,6 +381,8 @@ and is between 256 and 4096 characters.
Value can be changed at runtime via
/selinux/checkreqprot.

+ chroot= [KNL] change a root for an init process.
+
clock= [BUGS=X86-32, HW] gettimeofday clocksource override.
[Deprecated]
Forces specified clocksource (if available) to be used
diff -urp linux-2.6.24-orig/init/main.c linux-2.6.24/init/main.c
--- linux-2.6.24-orig/init/main.c 2008-03-01 12:58:37.000000000 -0500
+++ linux-2.6.24/init/main.c 2008-03-05 08:23:32.000000000 -0500
@@ -755,8 +755,20 @@ static void __init do_pre_smp_initcalls(
spawn_softlockup_task();
}

+static void *chroot_str;
+static int __init chroot_setup(char *str)
+{
+ chroot_str = str;
+ return 1;
+}
+__setup("chroot=", chroot_setup);
+
static void run_init_process(char *init_filename)
{
+ if (chroot_str)
+ if (sys_chroot(chroot_str) < 0)
+ printk(KERN_WARNING "chroot=%s failed\n", chroot_str);
+
argv_init[0] = init_filename;
kernel_execve(init_filename, argv_init, envp_init);
}

\
 
 \ /
  Last update: 2008-03-05 08:41    [W:0.063 / U:0.396 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site