LINUX.ORG.RU
решено ФорумTalks

Зачем нужна initramfs?

 , , ,


0

1

Лично мне непонятно. linux — монолитное ядро c поддержкой модулей, следовательно часть драйверов может быть просто вшита внутрь, а остальные подгружены из модулей. Логично, что достаточно добавить в ядро драйвера для дисков и файловых систем, а остальное можно подгрузить с диска. Но почему вместо подгрузки драйверов с диска их просто запихивают в архив?

★★★

Чего ноешь, давай дистр делай где всё в ядро вшито и вся загрузка - это считывание с диска одного большого файла

DumLemming ★★
()
Ответ на: комментарий от DumLemming
  1. Где ты увидел нытьё?
  2. В ядро не надо вшивать всё подряд, достаточно драйверов ФС.
  3. Изменить параметры загрузки можно и без болгеносостроения
Werenter ★★★
() автор топика

Основная проблема не в драверах.

Если корень на устройстве которое требует конфигурирования (сеть, raid, lvm, crypto), то без него не обойтись.

Пока у тебя корень на обычном блочном устройстве - initramfs нафиг не нужен.

vel ★★★★★
()

Простой вариант: ты хочешь иметь полностью зашифрованный диск, включая рут, соотв. грузишься с флешки, которая грузит систему с initramfs, расшифровывает рут и передает управление системе инициализации на нем.

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

Так зачем же? Если я правильно понимаю, драйвера для рута можно включить в само ядро, без создания отдельного архива. А инит стартует уже следующим шагом, когда рут смонтирован.

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

Вот человек выше ответил Зачем нужна initramfs? (комментарий)

Например, для монтирования mdraid нужны бинарники mdadm, для lvm свои, для luks - cryptsetup, и т.д., а эти кейсы не заканчиваются с монтированием рута, дальше веселее :)

pekmop1024 ★★★★★
()
Последнее исправление: pekmop1024 (всего исправлений: 2)
Ответ на: комментарий от Werenter

А как ты его смонтируешь, если настройки и скрипты монтирования в ядре не лежат? Сетевой диск, soft-raid, зашифрованный диск, lvm…

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

Интересно, возможен ли такой вариант настройки вручную самостоятельно:

  1. Создавать минимальный набор используемого софта, аналогичный содержимому initramfs на immutable FS, которую наверно можно монтировать как readonly. Возможно даже с хранением на носителе почти в оригинальном формате initramfs, который уже используется.

  2. В определенный момент работы скриптов с initramfs вместо перемонтирования / (рута) на другой большой FS, подмонтировать большой корневой раздел поверх initramfs через какую-нибудь union fs типа mergerfs.

Возможно тогда бы система загрузки до OS Init была бы более очевидна и видна без необходимости залазить внутрь сжатого архива initramfs?

Из недостатков - как минимум использование fuse, он ведь тормозной, возможно и еще какие-то недостатки? Наверно, это чем-то походило бы образно на squashfs LiveCD с дополнительным слоем для сохранения изменений?

sanyo1234
()
Ответ на: комментарий от utanho

Сколько сидел под гентой, никогда не использовал инитрам.

Сижу под слакой и тоже не использую инитрам.

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

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

mrdeath ★★★★★
()

добавлю пять копеек про md-raid: ведро вполне себе умеет собирать такие массивы, там есть опция "md raid autodetect" или как-то так. обычные зеркала, по крайней мере, прекрасно стартуют без сторонней обвязки.
а так-то у меня, например, самосборные ядра вообще монолитные, без поддержки модулей. железо не меняется, один раз конфиг собираешь под нужную машину и всю жизнь make oldconfig потом.
подкроватный сервер грузится без initrd как раз. десктоп - с ней, потому как шЫфрованный рут

PerdunJamesBond
()

Потому что в Линуксе всё сделано через жопу. В нормальных ОС (Windows NT, Haiku, *BSD) загрузчик умеет загружать ядерные модули вместе с ядром так что никакой дополнительной initrd/initramfs с дубликатами файлов не требуется.

X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 1)
Ответ на: комментарий от pekmop1024

Я отвечал на это

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

Если btrfs смогли затащить в grub, то никаких особых усилий для доступа к ФС не требуется.

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

Если btrfs смогли затащить в grub, то никаких особых усилий для доступа к ФС не требуется.

Мне интересен вот такой сценарий:

Имеем несколько характеристик:

  • отдельные /boot, /var, /opt, /home
  • RAID средствами btrfs
  • сжатие средствами btrfs
  • шифрование средствами luks

Берем рандомное сочетание любых из них и пробуем жить без initramfs. Я ответа на вопрос не знаю только про btrfs, остальное работать не будет.

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

Ну так то да, любой может собрать монолитный кернел под себя

Кто говорил про монолит? Из необходимого, только вкорячивание фс для корня и ефи раздела. Всё остальное подтягивантся из /lib/modules

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

Чего ноешь, давай дистр делай где всё в ядро вшито и вся загрузка - это считывание с диска одного большого файла

Ну, у меня гента вполне без initramfs обходится. Всё отлично работает. Драйверы либо модулями, либо и правда вшиты. Ядро лежит на fat32 EFI разделе и грузится сразу оттуда.

Loki13 ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)