Есть ли способ дождаться монтирования корневой файловой системы? - PullRequest
3 голосов
/ 17 февраля 2011

У меня есть статически связанный код (не модуль) в ядре, который должен запускать поток ядра после монтирования корневой файловой системы .Проблема в том, что я не знаю, как это сделать без изменения функции ядра prepare_namespace ().Я думал, что это можно сделать через initcalls, но они выполняются до того, как ядро ​​позаботится о rootfs.Кто-нибудь знает лучший способ сделать это?

ОБНОВЛЕНИЕ [1]: @BenVoigit предложил следующее решение в комментариях: Похоже, вы должны открыть / proc / mounts и poll_waitв теме.См. Источник `mounts_poll '

UPDATE [2]: Я посмотрел патчи RSBAC, RSBAC модифицирует функцию prepare_namespace (), чтобы выполнить некоторые действия после файловая система смонтирована.Кажется, это самый простой способ.

1 Ответ

0 голосов
/ 18 февраля 2011

Что ж, современные образы Linux слишком велики, чтобы вместить загрузочный сектор ПК.Современные загрузчики, такие как grub, монтируют небольшую файловую систему в оперативную память перед реальной.

Чтобы понять, что происходит под капотом, вы можете открыть образ диска, расположенный в / boot.Например, в Ubuntu:

mkdir test
cd test
zcat /boot/initrd.img-2.6.35-24-generic > image.cpio
cpio -i < image.cpio
vim init

В конце концов, это просто набор сценариев оболочки - простота почти поэтична.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...