Процес на зареждане на Linux iniramfs & root (\)

Имам някакъв въпрос, свързан с процеса на linux boot. Initramfs е първият етап на заредена коренна файлова система. Процесът на стартиране в iniramfs е отговорен за монтирането на действителната коренна файлова система от твърдия диск към / директория.

Сега въпросът ми е where is / directory created by init (процес на стартиране на initramfs) за монтиране на действителния корен дял. В рам ли е или харддиск ?

Също така, след като се монтира действителният root дял, какво се случва с initramfs ?

Ако initramfs бъде изтрит от ram, тогава какво се случва с / папка, създадена от initramfs ?

Моля, предложете, може ли някой да обясни how does this magic works.

// Алън


person Allan    schedule 12.06.2013    source източник


Отговори (2)


Това, което /sbin/init (на initramfs) прави е, зарежда файловите системи и необходимите модули. След това се опитва да зареди целевите реални "rootfs". След това се превключва от initramfs към истински rootfs и "/" е на твърдия диск. "/" се създава, когато сте инсталирали системите и сте извършили форматирането на твърдия диск. Имайте предвид, че става дума за четене на съдържанието на файловата система, така че е предпоставка първо да заредите необходимия модул. Ако имате ext3 дял на "/", тогава ext3.ko ще бъде зареден и така.

Отговор на втория въпрос - след извършване на необходимото зареждане на fs модула, той превключва от init на initramfs към init на истински rootfs и започва обичайният процес на зареждане и initramfs се премахва от паметта. Това превключване се извършва чрез pivot_root().

Отговор на трети - initramfs не създава никаква директория, той просто зарежда съществуващо initramfs.img изображение в ram.

И така, накратко, зареждането на iniramfs или rootfs не означава създаване на директория, а зареждане на съществуващи изображения на файлова система. Веднага след зареждане - използва initramfs за зареждане на необходимия модул за файлови системи, сякаш може да чете истинската файлова система. Надявам се, че ще помогне!

person rakib_    schedule 12.06.2013

С initrd има две опции:

  1. Използване на pivot_root за завъртане на крайната файлова система в позиция, или

  2. Изпразване на корена и монтиране на крайната файлова система върху него.

Повече информация можете да намерите тук.

person idoby    schedule 12.06.2013