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

Исходное сообщение
"Проблема с initrd"

Отправлено fazr , 19-Мрт-08 18:46 
Капаю в сторону понимая работы initrd в Linux.
прочитал: http://www.opennet.me/base/sys/initrd_intro.txt.html
и еще кучу документации, но везде в основном говориться что из себя представляет и как собрать initrd образ, но вот мне не понятно для чего он нужен вообще?
Ведь если GRUB способен понять файловую систему /boot где лежит и initrd и само ядро vmlinuz, почему нельзя вкомпилить прямо в основное ядро все драйверы для того же LVM, специфичных SCSI адаптеров и т.д... разве так нельзя?

не пинайте пожалуйста, а помогите разобрать :(


Содержание

Сообщения в этом обсуждении
"Проблема с initrd"
Отправлено Yes , 19-Мрт-08 21:58 
>все драйверы для того же LVM, специфичных SCSI адаптеров и т.д...
>разве так нельзя?

Можно, почему ж нельзя? Ты будешь для этого пересобирать ядро? А для каждой из имеющихся у тебя машин? А каждый раз "потом" - для каждой новой машины? Успехов. Дистрибуторы "для себя эту проблему решили": ядро со  всеми драйверами в модулях и пересборка только initrd... Или типа того.


"Проблема с initrd"
Отправлено fazr , 20-Мрт-08 10:14 
>Можно, почему ж нельзя? Ты будешь для этого пересобирать ядро? А для
>каждой из имеющихся у тебя машин? А каждый раз "потом" -
>для каждой новой машины? Успехов. Дистрибуторы "для себя эту проблему решили":
>ядро со  всеми драйверами в модулях и пересборка только initrd...
>Или типа того.

Эээээ, а что - пересобрать на 100 машинах initrd образ это гораздо легче чем пересобрать ядро? по моему одинаково по трудозатратам, единственное что ядро будет дольше собираться, а обходить, грубо говоря, всё равно придется все машины...

про дистрибуторов - вот например берем RHEL, из коробки нету поддержки reiserfs, как мне его включить в initrd не пересобирая всё ядро полностью?


"Проблема с initrd"
Отправлено angra , 20-Мрт-08 10:29 
В наше время ядро ради добавления оборудования пересобирают очень редко. Для поддержки оборудования есть модули, но на стадии загрузки может не оказаться поддержки того, на чем расположен / или /boot, а как следствие нет доступа к модулям. Эта и ряд других проблем решается через initrd.
P.S. Если вы пока не столкнулись с ситуацией когда что-то нужно, то не стоит заявлять что это не нужно всем.

"Проблема с initrd"
Отправлено fazr , 20-Мрт-08 10:46 
>В наше время ядро ради добавления оборудования пересобирают очень редко. Для поддержки
>оборудования есть модули, но на стадии загрузки может не оказаться поддержки
>того, на чем расположен / или /boot, а как следствие нет
>доступа к модулям. Эта и ряд других проблем решается через initrd.
>
>P.S. Если вы пока не столкнулись с ситуацией когда что-то нужно, то
>не стоит заявлять что это не нужно всем.

Во-первых, где вы видете что я заявлял что это никому не нужно? я наоборот понимаю что нужно и хочу понять зачем именно?

вот ваш пример не особо понятен мне в плане - если не доступен /boot то как будет доступен расположенный на нем initrd??? или вы и initrd.img располагаете на другом (отличном от /boot ) разделе? но какой в этом сакраментальный смысл если на этом самом доступном разделе и можно положить vmlinuz???


"Проблема с initrd"
Отправлено angra , 20-Мрт-08 11:01 
Разберем простую загрузку с винта. У вас есть ядро, большинство оборудования поддерживается модулями, в самом ядре только самое необходимое. Все замечательно пока вы ставите на обычные ide диски. Но в какой-то момент вы наталкиваетесь на машину, где загрузка будет идти с raid/sata/scsi, то есть с чего-то что не поддерживается самим ядром. При этом загрузчик без проблем получит доступ к этому оборудованию за счет BIOS, а вот ядро BIOS уже не использует. Загрузчик считывает с диска vmlinuz и initrd и передает им управление. Обратите внимание что initrd считывается загрузчиком, не ядром. В результате ядро получает доступ к мини /, на котором есть нужные модули, а заодно некоторые скрипты+утилиты. Все это в конечном итоге обеспечивает доступ к настоящему /, который и монтируется впоследствии.
Если хочется более экзотического варианта, то посмотрите как устроена загрузка по сети с монтированием / по nfs или с разбивка + форматирование + заливание образа на винчестер.

"Проблема с initrd"
Отправлено fazr , 20-Мрт-08 11:29 
>[оверквотинг удален]
>чего-то что не поддерживается самим ядром. При этом загрузчик без проблем
>получит доступ к этому оборудованию за счет BIOS, а вот ядро
>BIOS уже не использует. Загрузчик считывает с диска vmlinuz и initrd
>и передает им управление. Обратите внимание что initrd считывается загрузчиком, не
>ядром. В результате ядро получает доступ к мини /, на котором
>есть нужные модули, а заодно некоторые скрипты+утилиты. Все это в конечном
>итоге обеспечивает доступ к настоящему /, который и монтируется впоследствии.
>Если хочется более экзотического варианта, то посмотрите как устроена загрузка по сети
>с монтированием / по nfs или с разбивка + форматирование +
>заливание образа на винчестер.

простите великодушно за назойливость :)
но вот в вашем примере - почему нельзя просто перекомпилировать ядро для поддержки эти raid/sata/scsi и когда grub передаст ему управление и оно уже имея поддержку этого оборудования продолжит загрузку? в чем минусы такого подхода кроме как перекомпиляции ядра??


"Проблема с initrd"
Отправлено angra , 21-Мрт-08 06:33 
Можно, но зачем? Гвозди, знаете, тоже можно забивать микроскопом, но почему-то этого не делают. Кроме того, повторю еще раз, initrd это не только набор модулей, но еще скриптов+утилит. Можете сколько угодно перекомпилировать ядро, но без initrd нормальную загрузку по сети вы не сделаете.

"Проблема за проблемой"
Отправлено Andrey Mitrofanov , 20-Мрт-08 11:14 
>>Можно, почему ж нельзя?

(1)
>>машины? Успехов.

(2)

>Эээээ, а что - пересобрать на 100 машинах initrd образ это гораздо легче чем пересобрать ядро?

Да. Именно это, в общем-то, и было сказано.

> по моему одинаково по трудозатратам, единственное что

(1)+(2)+флаг+барабан. Никто _не_заставляет_, да - можно, рекомендую даже: пособирайте, может пройдёт, а может нам неразумным расскажете про Великий Путь Просветления...

>ядро будет дольше собираться, а обходить, грубо говоря, всё равно придется
>все машины...

Чем пересборка ядра Вам поможет в решении "проблемы" хождения по машинам?

>про дистрибуторов - вот например берем RHEL, из коробки нету поддержки reiserfs,
>как мне его включить в initrd не пересобирая всё ядро полностью?

(1)+(2)+флаг+барабан.

Вопросы?


"Проблема за проблемой"
Отправлено goofy , 20-Мрт-08 11:35 
>[оверквотинг удален]
>>все машины...
>
>Чем пересборка ядра Вам поможет в решении "проблемы" хождения по машинам?
>
>>про дистрибуторов - вот например берем RHEL, из коробки нету поддержки reiserfs,
>>как мне его включить в initrd не пересобирая всё ядро полностью?
>
>(1)+(2)+флаг+барабан.
>
>Вопросы?

пляя, вот из-за таких вот ответов люди и отворачиваются от linux подобных ОС. Вместо того чтобы объяснить или посоветовать что-то конкретное прочитать - давайте лучше и проще обосрём человека с ног до головы. Товарищ Митрофанов, если вам нечего сказать - лучше не поливайте тут помоями своего умишки, а просто промолчите, сойдете за умного. Не устраивайте здесь ЛОР.


"за проблемой, за проблемой"
Отправлено Andrey Mitrofanov , 20-Мрт-08 13:24 
>>Вопросы?
>
>пляя, вот из-за таких вот ответов люди и отворачиваются от linux подобных
>ОС. Вместо того чтобы объяснить или посоветовать что-то конкретное прочитать -
>давайте лучше и проще обосрём человека с ног до головы.

Если это был _вопрос_, отвечаю. Таки да, у меня есть, что сказать -- тем, кто умеет спрашивать и слушать-читать ответ, очень желательно наличие само ирониии, самооценки хотя бы. На ЛОРе скучно и тупо, спасибо, лучше /вы/ к нам. Про обсирание/помои -- свежий воздух, витамины, самомнение вазелином смазывайте, если продолжится -- проконсультируйтесь с доктором (на ЛОРе, я слышал, это в ассортименте).

>Товарищ Митрофанов, если вам нечего сказать - лучше не поливайте тут помоями
>своего умишки, а просто промолчите, сойдете за умного.

ЛОРовский логпед тебе "товарищ"! :-P

> Не устраивайте здесь ЛОР.

ЗЫЖ yes, ihbt


"Проблема с initrd"
Отправлено angra , 20-Мрт-08 10:11 
Добвалю что initrd это не только набор модулей ядра, но и набор скриптов+утилит. И возможности применения ограничиваются вашей фантазией.

"Проблема с initrd"
Отправлено Andrey Mitrofanov , 20-Мрт-08 13:45 
Ещё раз, терпите. :)
>и еще кучу документации, но везде в основном говориться что из себя
>представляет и как собрать initrd образ, но вот мне не понятно
>для чего он нужен вообще?

initrd - простейшая файловая система, которая может быть загружена в память начальным загрузчиком вместе с ядром ещё _до_ запуска самого ядра, и драйверов железа и монтирования "реальных" файловых систем.

Вот _для_чего_ -- уже масса вариантов: - дистрибутивное ядро, где всё железо модулями, - уже писал; - сетевая загрузка; - некоторые делают всю систему внутри initrd (=в памяти, без hdd), вроде бы... google.ru применение initrd