LINUX.ORG.RU

Выгружается ли initramfs или initrd из ram после полной загрузки?


0

1

Выгружается ли initramfs или initrd из ram после полной загрузки? Думаю, что не имеет смысла хранить их в оперативе, т.е. они более никогда не потребуются после запуска. Реализован ли их выгруз подефолту или надо руками писать в rc.local? Или вообще нельзя выгружать?

Вроде нет. По крайней мере, модули, что он загружает при загрузке системы, остаются потом в памяти.

frak
()

> Реализован ли их выгруз подефолту
Да. man pivot_root

AITap ★★★★★
()

initramfs не выгружается. Вместо этого файл /init в нем содержит в конце строку, вызывающую программу switch_root, которая стирает из initramfs все файлы, тем самым освобождая память настолько, насколько это возможно (имеется в виду, что, если загрузчику не передавать initramfs, то ядро само сделает точно такой же пустой initramfs, который в /proc/mounts видно как rootfs).

initrd действительно выгружается init-скриптами после pivot_root, только тебе надо об этом поскорее забыть, поскольку initrd сейчас никто не пользуется (файл initrd.img - это, как правило, переименованный initramfs).

AEP ★★★★★
()
Ответ на: комментарий от AEP

да, я в курсе, что initrd - это устаревшая технология, образ с ext2 внутри. огромное спасибо за ответ, самый расширенный. но ты уверен, что ядро создаст initramfs, даже если загрузка осуществляется без костылей? там же VFS только создается ( / ) и всё. или я что-то не так понимаю? кстати, ядро может стартовать без поддержки юзерспейса вообще?

ktulhu666 ☆☆☆
() автор топика
Ответ на: комментарий от ktulhu666

файловая система rootfs, в которую заодно осуществляется распаковка архива-initramfs, нужна ядру в любом случае, чтобы последовательность команд cd / ; cd .. ; pwd давала правильный результат

AEP ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.