# BOOTING: root=/dev/ram0

## Kobboi

When I see root=/dev/ram0 in the kernel line of a bootloader configuration, is it a reference to the initrd/initramfs? Why is it needed? Isn't the kernel aware of the fact that there is something else in memory (address provided by bootloader) even without this kernel parameter? Also, does this restrict the size of the initrd/initramfs, since ramdisks have maximum sizes in the kernel configuration?

----------

## ltboy

initrd images are designed to load before the kernel has booted up entirely. That means that your kernel will be referencing files and devices before the filesystem or udev are up. root=/dev/ram0 is used with initrd images to avoid the kernel looking for, say, your splash images on /dev/sd** or whatever since that filesystem hasn't been loaded yet. As a note, make sure that if you use root=/dev/ram0 you accompany it with a real_root argument.

As to the size limitations, using root=/dev/ram0 does not limit the size of initrd's. Your initrd IS /dev/ram0. loading an initrd image from your bootloader creates the ramdisk device your kernel sees as ram0 and mounts the initrd image to that device. What limit's its size is the setting in your kernel config. General rule though is that if your initrd is bigger than the default settings in the kernel then it is bigger than you want it to be for a desktop/notebook system.

----------

## jburns

Read the file /usr/src/linux/Documentation/initrd.txt

----------

