Старожил
Сообщения: 466
Благодарности: 5
|
Профиль
|
Отправить PM
| Цитировать
[pre]
ИМЯ
initrd - RAM-диск, инициализируемый загрузчиком
ОПИСАНИЕ
Специальный файл /dev/initrd - это блочное устройство
только для чтения. Устройство /dev/initrd - это диск,
расположенный в оперативной памяти, который
инициализируется (т.е. загружается) загрузчиком до запуска
ядра. Затем ядро может использовать содержимое блочного
устройства /dev/initrd для двухфазовой загрузки системы.
Во время первой фазы ядро запускает и монтирует начальную
корневую файловую систему из содержимого /dev/initrd
(например, RAM-диска, инициализируемого загрузчиком). Во
время второй фазы из начального содержимого корневого
устройства загружаются дополнительные драйвера или другие
модули. После загрузки дополнительных модулей с другого
устройства монтируется новая корневая файловая система
(т.е., нормальная корневая файловая система).
ДЕЙСТВИЯ ПРИ ЗАГРУЗКЕ
При загрузке с 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 перемещается из
/ в /initrd. Иначе, если каталог /initrd не существует,
устройство /dev/ram0 размонтируется. (При перемещении
из / в /initrd, /dev/ram0 не размонтируется, и потому
процессы с /dev/ram0 могут продолжать работать. Если
каталог /initrd не существует на нормальной корневой
файловой системе и какие-либо процессы с /dev/ram0
продолжют выполняться после завершения /linuxrc, то
поведение ядра НЕ ОПРЕДЕЛЕНО. См. подробности о
поведении текущей версии ядра в разделе ПРИМЕЧАНИЯ.)
8. На нормальной корневой файловой системе следует
обычная процедура загрузки (например, вызов /sbin/init).
[/pre] уффф (c) man initrd
|