Messages in this thread Patch in this message |  | | | Date | Tue, 14 May 2002 11:55:43 +0100 (BST) | | From | Tigran Aivazian <> | | Subject | Re: Initrd or Cdrom as root |
| |
On Tue, 14 May 2002, Hans K. Rosbach wrote:
> Is there any way to dynamically load initrd or cdrom permanently as > the root fs when booting from cdrom? > > My problem is that I need a reliable way to ALWAYS find the correct > device to mount. Is there any way to make the kernel automagically > mount the cdrom it booted from?
yes, just pass rootcd=1 as a boot command line option with the hack below applied. Make sure that cdrom support is always compiled statically, otherwise it will break.
--- 2418-/drivers/cdrom/cdrom.c Fri Nov 16 18:14:08 2001 +++ 2418-rootparam/drivers/cdrom/cdrom.c Tue Mar 12 00:29:54 2002 @@ -2480,6 +2480,11 @@ return proc_dostring(ctl, write, filp, buffer, lenp); }
+kdev_t get_cdrom_dev(void) +{ + return topCdromPtr ? topCdromPtr->dev : 0; +} + /* Unfortunately, per device settings are not implemented through procfs/sysctl yet. When they are, this will naturally disappear. For now just update all drives. Later this will become the template on which --- 2418-/init/main.c Mon Feb 25 19:38:13 2002 +++ 2418-rootparam/init/main.c Tue Mar 12 00:29:54 2002 @@ -311,6 +311,16 @@
__setup("root=", root_dev_setup);
+static int rootcd_enable __initdata = 0; + +static int __init rootcd_setup(char *str) +{ + get_option(&str, &rootcd_enable); + return 1; +} + +__setup("rootcd=", rootcd_setup); + static int __init checksetup(char *line) { struct kernel_param *p; @@ -772,6 +782,10 @@ rd_load(); #endif
+ if (rootcd_enable) { + extern kdev_t get_cdrom_dev(void); + ROOT_DEV = get_cdrom_dev(); + } /* Mount the root filesystem.. */ mount_root();
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |