LINUX.ORG.RU

Используете ли вы initrd или initramfs?

 ,


1

1

Добрый день!

Интересно узнать о такой специфичной штуке, как Initial RAM-disk: используете ли вы её, и что в вашем случае initrd (initramfs) из себя представляет.

Решаете ли вы с помощью Initial RAM-Disk какие-то специфичные задачи, может у вас там целая миниатюрная ОС предустановлена?

Если не секрет, расскажите пожалуйста, какие функции в Initial RAM-disk вы используете. Не важно, если это ваше собственное решение или вы используете предустановленный дистрибутивный initrd (initramfs).

Используете шифрование? Используете ли вы загрузку компонентов ОС по сети? Вообще, какие функции используете в Initial RAM-disk и какие возможности вам хотелось бы получить?

Храните ли вы initrd (initramfs) отдельным файлом, или собираете вместе с ядром, одним файлом?

Когда ломается сервер или рабочая станция, вы загружались по сети (PXE) в linux+initramfs чтобы решить проблему? Расскажите истории успеха: как часто initrd / initramfs вас выручал, или вам наоборот было проще всё переустановить заново, не заморачиваясь починкой?

Что-нибудь необычное, экзотичное? Очень интересно узнать!

  1. Предустановленный в дистрибутиве217 (61%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. Не использую совсем47 (13%)

    *********************************************************************

  3. Использую mkinitcpio36 (10%)

    *****************************************************

  4. Использую dracut25 (7%)

    ************************************

  5. Использую initramfs-tools11 (3%)

    ****************

  6. Собственный для моих задач9 (3%)

    *************

  7. Использую другое ПО7 (2%)

    **********

  8. Initial RAM-disk это основная ОС2 (1%)

    **

Всего голосов: 354

>>> Проголосовать

★★★★★

Проверено: Harald ()

Да ХЗ, в дебиане по умолчанию настроен, работает — я и не трогаю. Только пишу в конфиге по старой привычке modules=dep вместо modules=most.

dogbert ★★★★★ ()

Собственный для моих задач

в основном загрузка микрокода и/или загрузка модулей программного рейда или scsi-адаптера, которые мне неохота в ядро жестко встраивать

ananas ★★★★★ ()

использую когда нестандартная конфигурация корня, например подкаталог

mittorn ★★★★★ ()

А какого здесь нет мультивыбора? Или я единственный оригинал с более чем одним линуксовым компом с разными дистрибутивами?

kirill_rrr ★★★★★ ()

Храните ли вы initrd (initramfs) отдельным файлом, или собираете вместе с ядром, одним файлом?

«Инитрамфс» с прикладным ПО я собираю вместе с ядром единым файлом, чтобы облегчить передачу загрузчику лишь одного адреса для загрузки ядра Линукса и прикладных программ. На компе мне это не нужно и мне тоже любопытно узнать у народа с какой целью это нужно на компе или сервере. Я использую «Инитрамфс» на армовской плате, чтобы прикладное ПО не копировалось при каждом запуске из энергонезависимой памяти в ОЗУ, а сразу лежало в ОЗУ после зарузки ядра Линукса.

Enthusiast ()

большинство используют чтобы дрова диска/ФС использовать модулем

что удивительно - в русском чате по лфс это считают нормальным и всем рекомендуют т.к. не знают какие дрова им нужны (хотя о чем я говорю, за неделю два чела с вопросами «что такое grep» и «чем отличаеться sysvinit и systemd редакции?»)

я не использую т.к. не нужно

для восстановления имею убунту в даул буте (основная ОС - лфс)

убунта и лфс на одинаковом конфиге ядра => инитрд не где нет

и почему нет мультивыбора, ведь с предустановленным в дистрибутиве все равно может использоваться инструмент из опроса

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

DMITRY ()
Ответ на: комментарий от kirill_rrr

Или я единственный оригинал с более чем одним линуксовым компом с разными дистрибутивами?

Не единственный.

dimgel ★★★ ()

А где вариант ответа: «Не знаю»?

Vier_E ★★★ ()

genkernel. Голосоввл за другое по так как в генту еще 2 варианта.

Slackware_user ★★★★★ ()

Линукс разве умеет запускаться без initrd? Это в Windows и Haiku загрузчик умеет помимо ядра ещё и драйверы с настройками грузить, GRUB вроде так не умеет.

X512 ★★ ()

использую то что идет в арче по умолчанию, вроде работает. Кстати для генерации применяется booster, рекомендую

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

Линукс разве умеет запускаться без initrd?

Это фиаско. Столько хвалебных песен в сторону винды и гайки, а по факту, линукс вы и не знаете совсем.

П.С. без интирд/инитрам с 2008 года.

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

П.С. без интирд/инитрам с 2008 года.

Модули статически слинкованы? Так не считается. Haiku умеет динамически грузить модули ядра без initrd.

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

Модули статически слинкованы? Так не считается. Haiku умеет динамически грузить модули ядра без initrd.

Мда. Чтобы загрузить какой-нибудь модуль с, скажем, ext4, внезапно уже должен быть загружен модуль ext4 (+mbcache +jbd2) или быть статически слинкованным. Гайка умеет грузить модули ФС с этих ФС ничего не зная об этих ФС? :) Ох уж эти сказки, ох уж эти сказочники…

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

Гайка умеет грузить модули ФС с этих ФС ничего не зная об этих ФС? :)

В Haiku загрузчик умеет читать ФС и грузить оттуда драйверы. GRUB вроде бы тоже умеет читать ФС, почему бы ему тоже не грузить драйверы?

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

GRUB вроде бы тоже умеет читать ФС, почему бы ему тоже не грузить драйверы

Он умеет минимально собирать массивы, читать ядро с параметрами и initrd в память с известных ему ФС и пнуть этот бутерброд на выполнение. Остальное зависит от загруженного кода.

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

В Haiku загрузчик умеет читать ФС и грузить оттуда драйверы

А, то есть драйвер ФС таки статически слинкован.

GRUB вроде бы тоже умеет читать ФС, почему бы ему тоже не грузить драйверы?

GRUB - далеко не единственный загрузчик который может грузить ядро. Я вот для загрузки ядра вообще напрямую UEFI пользуюсь, который слыхом не слыхивал о ext4 где у меня лежат модули ядра и ничего, в силу своей убогости и огороженности кроме дерьмовой fat32 не знает.

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

А, то есть драйвер ФС таки статически слинкован.

В загрузчик, а не ядро и минимальная его версия. В GRUB тоже есть драйвер ФС.

GRUB - далеко не единственный загрузчик который может грузить ядро.

А в Haiku загрузчик haiku_loader – единственный и он неотъемлемая часть системы. Он много чего делает помимо загрузки ядра: применяет релокации ядра, грузит драйверы, грузит конфиги ядра, генерирует таблицу страниц MMU и отображает базовые устройства в память вроде контроллера прерываний и UART. В нём есть понятное обычному пользователю меню загрузки где не надо писать никаких команд, можно выбрать с какого диска грузиться (можно грузиться с любого раздела с установленной Haiku, эти разделы автоматически детектируются и выводятся в список, GRUB так не умеет). Можно выбрать разрешение экрана, разные опции отладки и безопасного режима.

В загрузчике Haiku вообще никаких конфигов нет, всё работает автоматически.

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

В загрузчик, а не ядро и минимальная его версия.

Шило на мыло.

В GRUB тоже есть драйвер ФС.

GRUB не единственный загрузчик.

А в Haiku загрузчик haiku_loader – единственный и он неотъемлемая часть системы

Вот абсолютно пофиг что в гайке загрузчик гвоздями прибили. Тем более если загрузчик неотъемлемый - никакой разницы между этим велосипедом и статически слинкованным драйвером в ядре нету.

понятное обычному пользователю меню загрузки

Оно в UEFI/BIOS есть. Зачем оно ещё и в загрузчике? Сначала одно понятное пользователю меню, потом другое, там третьего нету, чтобы пользователю ещё понятнее было?

В загрузчике Haiku вообще никаких конфигов нет, всё работает автоматически.

Ага, автоматически узнаёт наверно, с какого хоста какую-нибудь рутовую NFS монтировать, да? Там и libastral статически слинкован? :)

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

Шило на мыло.

В GRUB этот драйвер всё равно есть и его достаточно для загрузки модулей ядра. К тому же GRUB ещё и жирнее, хотя и тупее:

haiku_loader.efi: 527.25 KiB
grubx64.efi: 2.38 MiB

GRUB не единственный загрузчик.

Это вообще болезнь Линукса – всё надо сделать в нескольких несовместимых с собой экземплярах.

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

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

Оно в UEFI/BIOS есть. Зачем оно ещё и в загрузчике?

Чтобы настроить параметры конкретно ядра Haiku, UEFI про ядро Haiku ничего не знает и настроить его не может.

Ага, автоматически узнаёт наверно, с какого хоста какую-нибудь рутовую NFS монтировать, да?

GRUB даже локально подключённые диски с Линуксом автоматически распознать и загрузить не может.

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

К тому же GRUB ещё и жирнее, хотя и тупее:

Вообще-то grub дофига чего умеет. В том числе и загрузку по сети. А это куча драйверов как минимум для самых распространённых сетевух и сетевой стек. Гайколоадер умеет ядро по сети грузить?

Чтобы настроить параметры конкретно ядра Haiku, UEFI про ядро Haiku ничего не знает и настроить его не может.

Странно, а вот для ядра линукса пофиг, знает UEFI про линукс или нет, всё равно ядро прекрасно настраивается в UEFI.

GRUB даже

Хватит уже этот GRUB за уши притягивать. Я вот вообще никогда им не пользовался, кроме как на попробовать, например. Сначала lilo было более чем достаточно, а с появлением UEFI смысл в каком-то отдельном специальном загрузчике вообще пропал.

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

Гайколоадер умеет ядро по сети грузить?

Умеет.

А это куча драйверов как минимум для самых распространённых сетевух и сетевой стек.

Зачем, если это UEFI умеет? BIOS вроде бы тоже умеет.

всё равно ядро прекрасно настраивается в UEFI.

Это как ядро Линукс настраивается из меню UEFI?

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

GRUB не единственный загрузчик.

Все забываю его удалить. С полгода наверное, как перешел на прямую загрузку из уефы.

Ехт4 - то немногое, что вкомпилено в ядро.

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

Умеет.

Нет, не умеет. Умеет PXE в прошивке сетевухи, а не сам загрузчик. А GRUB умеет без PXE. Через PXE линукс можно грузить без всяких GRUB’ов вообще.

Зачем, если это UEFI умеет?

Затем, что не везде есть UEFI и PXE.

Это как ядро Линукс настраивается из меню UEFI?

Через UEFI Boot arguments для нужного пункта загрузочного меню. Просто пишешь туда нужные аргументы ядра, а оно потом их оттуда читает.

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

Все забываю его удалить. С полгода наверное, как перешел на прямую загрузку из уефы.

Ну может и не стоит - в качестве manual failover можно оставить.

Я вообще на всякий случай часто lilo в MBR держу - если машина сдохнет, то с диска всегда можно загрузится воткнув его в первую попавшуюся железку, даже без UEFI и т.п.

А так - да, при наличии UEFI смысла в загрузчике нет.

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

Умеет PXE в прошивке сетевухи, а не сам загрузчик.

Ну и хорошо. Зачем делать велосипед, если железо уже умеет решать эту задачу?

Затем, что не везде есть UEFI и PXE.

Зачем страдать с таким железом? Это проявление мазохизма?

Просто пишешь туда нужные аргументы ядра

А в загрузчике Haiku ничего писать не надо в страшной чёрной консоли. Вместо этого есть дружелюбное меню. Пункты меню выбираются стрелками и Enter. Можно много чего делать в том числе отключить проблемные модули ядра из списка.

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

Я вообще на всякий случай часто lilo в MBR держу - если машина сдохнет, то с диска всегда можно загрузится воткнув его в первую попавшуюся железку

У меня на такой случай есть LiveUSB.

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

Зачем делать велосипед, если железо уже умеет решать эту задачу?

Вот и я о том же. Зачем нужен гайколоадер, если другие системы прекрасно UEFI обходятся?

Зачем страдать с таким железом? Это проявление мазохизма?

Затем, что линуксы не только на нотебучеках и десктопчиках работают. Какой-нибудь PC104 вообще обычно имеет только очень укушенный BIOS. А чудеса реализации UEFI брендовых серваков часто поражают воображение.

А в загрузчике Haiku ничего писать не надо в страшной чёрной консоли. Вместо этого есть дружелюбное меню.

Ну так в UEFI тоже никакой страшной для недоумков чёрной консоли - идёшь в настройки загрузки, выбираешь мышом пункт со своим линуксом, выбираешь мышом Edit Boot Options и в красивом графическом поле ввода пишешь нужное.

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

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

У меня на такой случай есть LiveUSB.

Которого в самый нужный момент, разумеется, под руками не окажется. :)

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

если другие системы прекрасно UEFI обходятся?

В Windows всё точно также работает. Есть список модулей ядра в реестре, которые загрузчик вместе с ядром и частью реестра загружает. Без специального загрузчика ядро NT не загружается. В UEFI тоже используется отдельный специальный загрузчик ядра.

В Mac OS вроде бы тоже загрузчик отдельный и он грузит модули ядра.

Затем, что линуксы не только на нотебучеках и десктопчиках работают.

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

выбираешь мышом Edit Boot Options и в красивом графическом поле ввода пишешь нужное.

Это сути не меняет. Надо точно помнить как пишутся параметры или смотреть с другого компьютера. В Haiku всё интуитивно понятно и никаких заклинаний запоминать не надо.

X512 ★★ ()
Последнее исправление: X512 (всего исправлений: 2)

Сделали бы ещё вариант ответа «не знаю». Это бы справедливо показывал например тех кто использует Линукс дома или даже на работе (например как я), но по роду их задач им не приходится сталкиваться с этой штукой, и они даже не знают что там под капотом - инитрд или инитрамфс, т.к. в дистрибутиве из коробки все достаточно не плохо, что не приходится туда лезть...

bonta ★★★★ ()
Последнее исправление: bonta (всего исправлений: 1)

Нет, это эталонное нинужно

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

На арме u-boot шикарно умеет и грузит без ненужнорд и ненужнорамфс. На компе x86 лило тоже без этого ненужно. Исключения всякие интелатомы, но, думаю, там можно u-boot сделать и нормально грузить.

burato ★★★★ ()

initrd и initramfs выглядят как архитектурные костыли и подпорки :(

В других UNIX-like операционных системах тоже имеются подобные штуки? Как загружается macOS? Solaris? AUX? Да и пусть тот же Windows. Там тоже есть подобное?

EXL ★★★★★ ()

Предустановленный, шифрование, ума не приложу откуда в 2021 люди с другими вариантами.

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

Ну может и не стоит - в качестве manual failover можно оставить.

Ну он там именно поэтому до сих пор.

Я вообще на всякий случай часто lilo в MBR держу

У меня гпт.

Если сдохнет ноут, пойду покупать новый. А для ремонта системы есть специальная флешка.

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

У меня гпт.

Разметка GPT не отменяет наличия псевдо-MBR загрузчика, находящегося в загрузочном секторе носителя и передающему управление по дальнейшей загрузке коду загрузчика в GPT-разделе.

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

Можно гпт+биос, а можно гпт+уефи. Это две большие разницы.

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

Процесс загрузки FreeBSD отличается от процесса загрузки Linux.

Здесь есть kenv (окружение ядра), потому без родного загрузчика FreeBSD не загрузится. Из этого следует что загрузчик настраивает ядро перед его загрузкой (R/O oid’ы sysctl, загрузка критичных модулей, их настройка).

Причём поддержка ZFS и GELI (шифрования) реализовано в самом загрузчике (потому ядро может быть на ZFS томе, который находится внутри GELI-контейнера).

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

Как загружается macOS? Solaris? AUX? Да и пусть тот же Windows. Там тоже есть подобное?

Windows, Haiku, Mac OS загружаются без initrd, там везде специальный загрузчик, который умеет грузить модули ядра. В FreeBSD вроде бы тоже, но пусть подтвердят кто им пользуется:

load [-t type] filename

Loads the kernel, kernel module, or file of the type given, with the specified filename. Any arguments after filename are passed to the file. If filename is not qualified, it will be searched under /boot/kernel and /boot/modules.

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

Надо точно помнить как пишутся параметры или смотреть с другого компьютера. В Haiku всё интуитивно понятно и никаких заклинаний запоминать не надо.

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

Stanson ★★★★★ ()

Во FreeBSD этой чуши нету, всегда считал это за плюс - более простую и прямую схему.

slovazap ★★★★★ ()

Не знаю, как настроено, так работает. Если сломается, скорей всего просто переустановлю. В крайнем случае загружусь с какого-нибудь Live CD.

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