Можно ли загрузить ядро ​​Linux без initrd?

4626
lang2

Можно ли загрузить ядро ​​Linux (скажем, 2.6.35) без initrd в наши дни? Кажется, я помню, что это было возможно раньше (ранние 2.6.x и 2.4). Я имею в виду, теоретически, если ядро ​​имеет встроенную поддержку всего аппаратного обеспечения (без модулей), ему не нужно раннее пользовательское пространство, верно?

4
Вы могли бы, [по крайней мере, в 2007 году] (http://kerneltrap.org/node/7874) и в [2008] (https://bbs.archlinux.org/viewtopic.php?id=52968). Я бы сказал так, если у вас есть все необходимые встроенные драйверы файловой системы и оборудования. new123456 13 лет назад 1
Если я правильно помню, я загрузил Gentoo нормально, используя последнее стабильное ядро ​​без модулей или initrd несколько месяцев назад, так что теперь оно должно работать. AndrejaKo 13 лет назад 0
@AndrejaKo: Я пытался, но ядро ​​так и не смогло найти устройство / dev / sda1, хотя я скомпилировал его в поддержку SATA. Если нет initrd (в результате mdev или udev), кто отвечает за создание этих устройств? lang2 13 лет назад 0
@ lang2 Вы тоже компилировали в драйверах файловой системы? Вот что я получал, когда забывал их. AndrejaKo 13 лет назад 0

1 ответ на вопрос

9
Paul

Я не использую initrd. Все, что должно произойти, это то, что у вас есть все драйверы, необходимые для загрузки вашей системы, скомпилированные в ядро, а не в виде модулей.

Если вы используете gentoo, то сборка ядра и драйверов является частью процесса установки, и это становится второй натурой, если вы собираетесь добавить в свою систему зависимое от загрузки оборудование, то есть сначала добавить драйвер в ядро. Также становится второй натурой отключать все, что вам не нужно - потому что нет смысла компилировать кучу драйверов даже в виде модулей, если вы никогда не собираетесь их использовать.

Этот процесс концептуально более сложен в дистрибутиве, таком как Ubuntu, где ядро ​​управляется как пакет и имеет все модульное решение (оно должно успешно работать на многих различных системах из коробки). Это часто не стоит беспокоиться.

Благодарю. Я все еще хотел бы понять в этом случае, кто создает файл устройства / dev / sda. lang2 13 лет назад 0
Ядро будет при условии, что оно имеет правильные драйверы для типа и модели жесткого диска. Это должно быть ядро, так как ничего другого нет - после того, как ядро ​​загрузилось, первое, что ему нужно сделать, - это получить доступ к inittab (в зависимости от дистрибутива) из / dev / sda1 (если это корневой раздел) Paul 13 лет назад 0