Welcome to Linux Knowledge Base and Tutorial
"The place where you learn linux"
International Medical Corps

 Create an AccountHome | Submit News | Your Account  

Tutorial Menu
Linux Tutorial Home
Table of Contents

· Introduction to Operating Systems
· Linux Basics
· Working with the System
· Shells and Utilities
· Editing Files
· Basic Administration
· The Operating System
· The X Windowing System
· The Computer Itself
· Networking
· System Monitoring
· Solving Problems
· Security
· Installing and Upgrading
· Linux and Windows

Glossary
MoreInfo
Man Pages
Linux Topics
Test Your Knowledge

Site Menu
Site Map
FAQ
Copyright Info
Terms of Use
Privacy Info
Disclaimer
WorkBoard
Thanks
Donations
Advertising
Masthead / Impressum
Your Account

Communication
Feedback
Forums
Private Messages
Surveys

Features
HOWTOs
News Archive
Submit News
Topics
User Articles
Web Links

Google
Google


The Web
linux-tutorial.info

Who's Online
There are currently, 82 guest(s) and 0 member(s) that are online.

You are an Anonymous user. You can register for free by clicking here

  

initrd



DESCRIPTION

       The  special file /dev/initrd is a read-only block device.
       Device /dev/initrd is a RAM disk that is initialized (e.g.
       loaded)  by  the boot loader before the kernel is started.
       The kernel then can use the the block device /dev/initrd's
       contents for a two phased system boot-up.

       In  the  first  boot-up  phase,  the  kernel starts up and
       mounts an initial root file-system from  the  contents  of
       /dev/initrd   (e.g.  RAM  disk  initialized  by  the  boot
       loader).  In the second phase, additional drivers or other
       modules  are  loaded  from  the initial root device's con­
       tents.  After loading the additional modules, a  new  root
       file  system (i.e. the normal root file system) is mounted
       from a different device.


BOOT-UP OPERATION

       When booting up with initrd, the system boots as follows:

         1.  The  boot  loader  loads  the  kernel  program   and
         /dev/initrd's contents into memory.

         2. On kernel startup, the kernel uncompresses and copies
         the contents  of  the  device  /dev/initrd  onto  device
         /dev/ram0 and then frees the memory used by /dev/initrd.

         3. The kernel then read-write mounts device /dev/ram0 as
         the initial root file system.

         4.  If the indicated normal root file system is also the
         initial root file-system (e.g.   /dev/ram0  )  then  the
         kernel  skips  to  the  last  step  for  the  usual boot
         sequence.

         5. If the executable file /linuxrc  is  present  in  the
         initial  root file-system, /linuxrc is executed with uid
         0.  (The file /linuxrc must have executable  permission.
         The file /linuxrc can be any valid executable, including
         a shell script.)

         6. If /linuxrc is not executed or when  /linuxrc  termi­
         nates,  the  normal  root  file  system is mounted.  (If
         /linuxrc exits with any file-systems mounted on the ini­
         tial  root  file-system, then the behavior of the kernel
         is UNSPECIFIED.  See the NOTES section for  the  current
         kernel behavior.)

         7. If the normal root file has directory /initrd, device
         /dev/ram0 is moved from  /  to  /initrd.   Otherwise  if
         directory  /initrd  does  not  exist device /dev/ram0 is
         unmounted.  (When moved from / to /initrd, /dev/ram0  is
         not unmounted and therefore processes can remain running
              Specifies  the  file  to  load  as  the contents of
              /dev/initrd.  For LOADLIN this is  a  command  line
              option.   For  LILO you have to use this command in
              the LILO configuration file /etc/lilo.config.   The
              filename  specified with this option will typically
              be a gzipped file-system image.

       noinitrd
              This boot time option disables the two phase  boot-
              up  operation.   The kernel performs the usual boot
              sequence as if  /dev/initrd  was  not  initialized.
              With  this  option,  any  contents  of  /dev/initrd
              loaded into memory by the boot loader contents  are
              preserved.   This  option  permits  the contents of
              /dev/initrd to be any data and need not be  limited
              to  a file system image.  However, device /dev/ini­
              trd is read-only and can  be  read  only  one  time
              after system startup.

       root=device-name
              Specifies  the device to be used as the normal root
              file system.  For LOADLIN this is  a  command  line
              option.  For LILO this is a boot time option or can
              be used as an option line in the LILO configuration
              file /etc/lilo.config.  The device specified by the
              this option must be a  mountable  device  having  a
              suitable root file-system.


CHANGING THE NORMAL ROOT FILE SYSTEM

       By  default, the kernel's settings (e.g. set in the kernel
       file with rdev or compiled into the kernel file),  or  the
       boot  loader  option  setting  is used for the normal root
       file systems.  For a NFS-mounted normal root file  system,
       one  has  to use the nfs_root_name and nfs_root_addrs boot
       options to give the NFS settings.  For more information on
       NFS-mounted  root  see  the kernel documentation file nfs­
       root.txt.  For more information on setting the  root  file
       system also see the LILO and LOADLIN documentation.

       It  is also possible for the /linuxrc executable to change
       the normal root device.  For /linuxrc to change the normal
       root device, /proc must be mounted.  After mounting /proc,
       /linuxrc changes the normal root device  by  writing  into
       the     proc     files     /proc/sys/kernel/real-root-dev,
       /proc/sys/kernel/nfs-root-name, and  /proc/sys/kernel/nfs-
       root-addrs.   For  a physical root device, the root device
       is changed by having /linuxrc write the new root file sys­
       tem  device  number  into  /proc/sys/kernel/real-root-dev.
       For a NFS root file system, the root device is changed  by
       having   /linuxrc   write   the  NFS  setting  into  files
       /proc/sys/kernel/nfs-root-name  and  /proc/sys/kernel/nfs-
       root-addrs  and  then  writing  0xff (e.g. the pseudo-NFS-


USAGE

       The main motivation for implementing initrd was  to  allow
       for modular kernel configuration at system installation.

       A possible system installation scenario is as follows:

         1.  The  loader program boots from floppy or other media
         with  a  minimal  kernel  (e.g.  support  for  /dev/ram,
         /dev/initrd,   and   the  ext2  file-system)  and  loads
         /dev/initrd with a gzipped version of the initial  file-
         system.

         2.  The executable /linuxrc determines what is needed to
         (1) mount the normal root file-system (i.e. device type,
         device  drivers,  file  system) and (2) the distribution
         media (e.g. CD-ROM, network, tape,  ...).  This  can  be
         done  by asking the user, by auto-probing, or by using a
         hybrid approach.

         3. The executable /linuxrc loads the  necessary  modules
         from the initial root file-system.

         4.  The  executable  /linuxrc  creates and populates the
         root file system.  (At this stage the normal  root  file
         system does not have to be a completed system yet.)

         5.  The  executable /linuxrc sets /proc/sys/kernel/real-
         root-dev, unmount /proc, the normal root file system and
         any  other  file systems it has mounted, and then termi­
         nates.

         6. The kernel then mounts the normal root file system.

         7. Now that the file system is  accessible  and  intact,
         the boot loader can be installed.

         8.  The boot loader is configured to load into /dev/ini­
         trd a file system with the set of modules that was  used
         to  bring  up the system.  (e.g. Device /dev/ram0 can be
         modified, then unmounted,  and  finally,  the  image  is
         written from /dev/ram0 to a file.)

         9.  The  system is now bootable and additional installa­
         tion tasks can be performed.

       The key role of /dev/initrd in the above is to re-use  the
       configuration  data during normal system operation without
       requiring initial kernel selection, a large generic kernel
       or, recompiling the kernel.

       A second scenario is for installations where Linux runs on
       systems with different hardware configurations in a single
       Last  but not least, Linux distributions on CD-ROM may use
       initrd for easy installation from the CD-ROM.  The distri­
       bution  can  use LOADLIN to directly load /dev/initrd from
       CD-ROM without the need of any floppies.  The distribution
       could  also  use  a  LILO boot floppy and then bootstrap a
       bigger ram disk via /dev/initrd from the CD-ROM.


CONFIGURATION

       The /dev/initrd is a read-only block device assigned major
       number  1  and minor number 250.  Typically /dev/initrd is
       owned by root.disk with mode 0400  (read  access  by  root
       only).   If  the  Linux  system  does not have /dev/initrd
       already created, it can be created with the following com­
       mands:

               mknod -m 400 /dev/initrd b 1 250
               chown root:disk /dev/initrd

       Also,  support  for both "RAM disk" and "Initial RAM disk"
       (e.g.  CONFIG_BLK_DEV_RAM=y and CONFIG_BLK_DEV_INITRD=y  )
       support must be compiled directly into the Linux kernel to
       use /dev/initrd.  When using  /dev/initrd,  the  RAM  disk
       driver cannot be loaded as a module.


FILES

       /dev/initrd
       /dev/ram0
       /linuxrc
       /initrd


SEE ALSO

       chown(1),  mknod(1),  ram(4), freeramdisk(8), rdev(8), The
       documentation file initrd.txt in the kernel  source  pack­
       age,  the  LILO  documentation, the LOADLIN documentation,
       the SYSLINUX documentation.


NOTES

       1. With the current kernel, any file systems  that  remain
       mounted when /dev/ram0 is moved from / to /initrd continue
       to be accessible.  However, the /proc/mounts  entries  are
       not updated.

       2.  With the current kernel, if directory /initrd does not
       exist, then /dev/ram0  will  NOT  be  fully  unmounted  if
       /dev/ram0  is  used  by any process or has any file-system
       mounted on it.  If /dev/ram0 is NOT fully unmounted,  then
       /dev/ram0 will remain in memory.

       3.  Users of /dev/initrd should not depend on the behavior
       give in the above  notes.   The  behavior  may  change  in
       future versions of the Linux kernel.

  




Login
Nickname

Password

Security Code
Security Code
Type Security Code


Don't have an account yet? You can create one. As a registered user you have some advantages like theme manager, comments configuration and post comments with your name.

Help if you can!


Amazon Wish List

Did You Know?
You can choose larger fonts by selecting a different themes.


Friends



Tell a Friend About Us

Bookmark and Share



Web site powered by PHP-Nuke

Is this information useful? At the very least you can help by spreading the word to your favorite newsgroups, mailing lists and forums.
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters. Articles are the property of their respective owners. Unless otherwise stated in the body of the article, article content (C) 1994-2013 by James Mohr. All rights reserved. The stylized page/paper, as well as the terms "The Linux Tutorial", "The Linux Server Tutorial", "The Linux Knowledge Base and Tutorial" and "The place where you learn Linux" are service marks of James Mohr. All rights reserved.
The Linux Knowledge Base and Tutorial may contain links to sites on the Internet, which are owned and operated by third parties. The Linux Tutorial is not responsible for the content of any such third-party site. By viewing/utilizing this web site, you have agreed to our disclaimer, terms of use and privacy policy. Use of automated download software ("harvesters") such as wget, httrack, etc. causes the site to quickly exceed its bandwidth limitation and are therefore expressly prohibited. For more details on this, take a look here

PHP-Nuke Copyright © 2004 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Page Generation: 0.07 Seconds