[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