[Sarlug] initrd

Masterhard masterhard at cdma-saratov.ru
Mon Dec 2 11:09:55 MSK 2002


       При загрузке с initrd, система загружается следующим образом:

         1. Загрузчик загружает ядро и содержимое /dev/initrd в память.

         2. При запуске ядра, оно разархивирует и копирует содержимое
устройства /dev/initrd на устройство /dev/ram0 , а  затем
         освобождает память, занятую /dev/initrd.

         3. Затем ядро монтирует устройство /dev/ram0 для чтения и записи в
качестве начальной корневой файловой системы.

         4.  Если  отображаемая  нормальная  корневая  файловая  система
также  является  начальной корневой файловой системой
         (например, /dev/ram0 ), то ядро переходит к последнему пункту для
нормальной загрузки.

         5. Если в начальной корневой файловой системе находится исполняемый
файл /linuxrc, он  исполняется  с  uid  0.   (Файл
         /linuxrc должен иметь разрешения на исполнение.  Файл /linuxrc
может быть любым допустимым исполняемым файлом, включая
         скрипт шелла.)

         6. Если /linuxrc не выполняется или когда /linuxrc заканчивает
выполнение, монтируется  нормальная  корневая  файловая
         система.   (Если  /linuxrc  завершается  с  какой-либо файловой
системой, монтированной на начальной корневой файловой
         системе, то поведение ядра НЕ ОПРЕДЕЛЕНО.  См. подробности о
поведении текущей версии ядра в разделе ПРИМЕЧАНИЯ.)

         7. Если нормальная корневая файловая система имеет каталог /initrd,
то устройство /dev/ram0 перемещается из / в  /ini-
         trd.   Иначе,  если каталог /initrd не существует, устройство
/dev/ram0 размонтируется.  (При перемещении из / в /ini-
         trd, /dev/ram0 не размонтируется, и потому процессы с /dev/ram0
могут продолжать работать.  Если  каталог  /initrd  не
         существует  на  нормальной  корневой  файловой  системе  и
какие-либо процессы с /dev/ram0 продолжют выполняться после
         завершения /linuxrc, то поведение ядра НЕ ОПРЕДЕЛЕНО.  См.
подробности о  поведении  текущей  версии  ядра  в  разделе
         ПРИМЕЧАНИЯ.)

         8. На нормальной корневой файловой системе следует обычная
процедура загрузки (например, вызов /sbin/init).




----- Original Message -----
From: "Алексей Синицын" <a.sinitsin at overta.ru>
Subject: [Sarlug] initrd
>
>  Кто-то спрашивал по поводу initrd. Это из форума:
>
> initrd разворачивается в озу и позволяет получать доступ к корню. как
> только доступ получен все что нужно грузится из /lib/modules а initrd
> завершает работу (для его работы в ядро должна быть вкомпилена его
> (initrd) поддержка.
> создается командой mkinitrd и туда в зависимости от опций пихаются разные
> модуля, поэтому размер будет разный (например поддержка ext2 скомпилена
> модулем и тогда к корню на ext2 без него никак, или scsi или raid)
>






More information about the Sarlug mailing list