LINUX.ORG.RU

Создание LiveCD


0

0

при загрузке лайв сиди грузится инитрд, который должен найти, подмонтировать корень и передать управление дальше, так? так как искать корень если он файл на диске с ядром? ядро знает с какой железки оно запущено? зы копал лайв сиди бубунты, там какие-то волшебные переменные которые содержат нужную инфу и которые у меня на машине пустые.


> ядро знает с какой железки оно запущено?
Понятия не имеет.

грузится инитрд, который должен найти, подмонтировать корень и передать управление дальше, так?

Абсолютно верно.

Делается примерно так:
0) Навтыкать в ядро модулей, чтобы оно определило устройства.
1) Запустить udev/mdev, чтобы он насоздавал файлов в /dev/ для устройств компьютера (интересуют дисковые)
2) Каждое из получившихся устройств примонтировать и посмотреть, нет ли там волшебного файла /live/filesystem.squashfs (подставить по вкусу).
3) Смонтировать tmpfs (rw), смонтировать этот файл (ro), объединить эти маунтпоинты в один с помощью unionfs (rw), сделать chroot в получившийся маунтпоинт.

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

спасибо, схема в принципе понятна. те мне придется тупо перебирать /dev/*d**, /dev/cdrom и тд? а если скажем грузимся с mmc и название в /dev я не могу предусмотреть (я не знаю что у юзера за железка и как она назовется), есть варианты получить весь список дисковых устройств определенных конкретной системе?

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

udev также может создавать в /dev/disk/ симлинки на устройства, именуя их по-другому. Так, например, можно грузиться по uuid: /dev/disk/by-uuid/...

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