URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6050
[ Назад ]

Исходное сообщение
"Определение девайса с которого был запущен линух."

Отправлено Fagot , 29-Дек-06 10:39 
Здравствуйте.
Собираю свой линух, запускается из initrd.
Самописный linuxrc (на Си).
Определяет какие block devices есть в системе и создаёт для них файлы устройств в /dev/.
Как сделать, чтобы linuxrc мог определить на каком из этих девайсов находится ядро и initrd. Т.е. от куда он был запущен.
Сейчас сделал так: по порядку монтирует все девайсы и ищет спец файл. Если находит то это и есть нужный девайс.
Но такой подход уж очень медленный.

Содержание

Сообщения в этом обсуждении
"Определение девайса с которого был запущен линух."
Отправлено vt , 30-Дек-06 19:33 
>Собираю свой линух, запускается из initrd.
>Самописный linuxrc (на Си).
>Определяет какие block devices есть в системе и создаёт для них файлы
>устройств в /dev/.
>Как сделать, чтобы linuxrc мог определить на каком из этих девайсов находится
>ядро и initrd. Т.е. от куда он был запущен.

Никак не сделать. Это "знает" только загрузчик.
Чтобы передавать эту информацию ядру нужен самописный isolinux )

>Сейчас сделал так: по порядку монтирует все девайсы и ищет спец файл.
>Если находит то это и есть нужный девайс.
>Но такой подход уж очень медленный.

Live-CD примерно так и делают


"Определение девайса с которого был запущен линух."
Отправлено andreyka459 , 01-Янв-07 19:08 
>Live-CD примерно так и делают

именно. и связано это ИМХО с тем, что у разных ядер мб разные наименоваения для разных устройств. Более того, в зависимости от того, поддержка каких именно устройств включена в конкретное ядро, нумерация тоже может быть разной.  

в таких условиях требовать от загрузчика передачи правильного имени устройства низя.  

так что никакой "свой" isolinux  в общем случае не поможет(если не наложить какихто ограничений).


"Определение девайса с которого был запущен линух."
Отправлено tungus , 31-Дек-06 05:12 
cat /proc/cmdline ?

"Определение девайса с которого был запущен линух."
Отправлено vt , 31-Дек-06 13:21 
>cat /proc/cmdline ?

Только если кто-то или что-то при загрузке поместит туда что-нибудь типа bootdev=/dev/...
Тогда, кстати, это появится не только в /proc/cmdline, но и в env
Но автоматически isolinux ничего такого не делает - остается только руками в boot-prompt