On Sat, Dec 01, 2007 at 09:22:28PM -0500, Robert P. J. Day wrote: > > just perusing the simple code in init/noinitramfs.c, which is > what's invoked if you choose not to build in initrd support: No, that's invoked when you choose not to build initramfs. IOW: it is used when you build with initrd. > static int __init default_rootfs(void) > { > int err; > > err = sys_mkdir("/dev", 0755); > if (err < 0) > goto out; > > err = sys_mknod((const char __user *) "/dev/console", > S_IFCHR | S_IRUSR | S_IWUSR, > new_encode_dev(MKDEV(5, 1))); > if (err < 0) > goto out; > > err = sys_mkdir("/root", 0700); > if (err < 0) > goto out; > > return 0; > ... > > so, if you choose not to select initrd support, then the above trivial > initial root filesystem better be everything you need to completely > finish the boot process, right? i just want to make sure i'm not > overlooking anything subtle. No, when you don't use initrd, you get initramfs. The trivial initramfs contains the same what the above code has, but in a packed cpio archive. If you choose to use initrd, you don't get that packed cpio archive, so the above code makes a simple root filesystem on which the initrd image is mounted. The difference between initrd and initramfs is that initrd contains a filesystem image that's being put in a ramdisk and initramfs contains a cpio archive that's put into the page cache (using ramfs/tmpfs). The advantage of initramfs is that it doesn't need any particular filesystem compiled into the kernel (i.e.: everything can be modular) and that the final filesystem only occupies exactly enough space (no wasted empty space in the ramdisk). Erik -- They're all fools. Don't worry. Darwin may be slow, but he'll eventually get them. -- Matthew Lammers in alt.sysadmin.recovery
Attachment:
signature.asc
Description: Digital signature