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. Предустановленный в дистрибутиве 219 (61%)

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

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

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

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

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

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

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

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

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

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

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

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

    **********

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

    **

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

★★★★★

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

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

Это как раз потому что Линукс.

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

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

А почему бы не включить модуль фс в состав ядра?

Может быть я хочу перенести ОС на другую ФС, а в ядре модуля под неё нет. Пересобирать ядро по каждому поводу – убогая практика.

Или вам известны случаи, когда модули ФС обновляются без обновления всего ядра?

В ОС кроме Линукса это стандартная практика. Например в Windows драйверы обновляются также как и весь остальной софт.

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

я хочу перенести ОС на другую ФС, а в ядре модуля под неё нет.

Ну да, макось или винда вам прям так сразу и позволила… Или андроид на смартфоне. И только странный линукс со своим странным initrd, содержащим все эти самые модули всех 20+ ФС может такое позволить. Или у вас даже есть выбор - можно заранее собрать ядро с нужной фс уже внутри, это кстати один из простейших вариантов сборки ядра и осваивается в течении суток.

в Windows драйверы обновляются также как и весь остальной софт.

Ага, и именно поэтому МС не нашли другого варианта кроме как принудительный ребут для установки обновлений независимо от мнения пользователя.

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

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

И вопрос в догонку. Вот допустим после выхода железки появился новый крутой форк какой нибудь узкоспециальной ФС и вы хотите использовать его в качестве корня. А /boot и загрузчика у вас нет, initrd это не правильно и вкомпилировать драйвер в ядро вы не собираетесь. Как в этом случае вообще запускаться?

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

Ну да, макось или винда вам прям так сразу и позволила…

Да, можно Windows на BtrFS скопировать, положить драйвер, прописать загрузку и всё будет работать.

А вы точно уверены, что это загрузчик втыкает модули в ядро, или может оно само этим занимается?

Да, уверен (список загружаемых модулей лежит в реестре). Оно ещё и часть реестра втыкает.

We will first go down the path of WINLOAD.EXE. WINLOAD.EXE implements what was previously a function of NTLDR. The WINLOAD.EXE does the following:
a. Loads boot-class drivers, these are drivers needed at startup time. If these drivers are not loaded at this time errors like : “Inaccessible boot device”, “Setup could not determine your machine type” or “Setup could not find any hard drives in your computer” could be faced.
b. Loads dependencies for the kernel.
c. Loads HAL.DLL (discussed below)
d. The kernel of the Microsoft Windows namely, NTOSKERNEL.EXE
e. Loads the SYSTEM registry hive.
f. Loads ‘boot’ class device drivers and kernel-mode dll’s imported by hal.dll

Отсюда.

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

А /boot и загрузчика у вас нет

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

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

FreeDOS загруженный вместо системы тоже полностью заменяет шифрование.

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

Что значит неотемлимая часть системы? Загрузчик винды может быть выкинут и заменён чем нибудь другим, вот тут его заменили каким то приложением эфи и наверняка сть способы когда другой загрузчик запускает ядро со всеми модулями без его участия. А ещё у винды есть boot-раздел, и винда категорично настаивает что он должен быть отдельно от системы (я знаю что это не обязательно, но она хочет так).

Конкретные детали различаются, но принципиально есть всё тот же boot-раздел, всё тот же загрузчик и всё те же модули для запуска ядра ОС в виде файлов на диске. Ну и конфиг, где они описаны.

Тот факт, что некоторые (очевидно не все) драйвера подгружаются с диска до передачи управления ядру в случае винды не даёт вообще никаких преимуществ. В данном случае оказывается даже что избавиться от загрузчика не удалось. Просто некоторые материнки могут грузить этот загрузчик, а некоторые грузят другой загрузчик, который будет грузить этот загрузчик.

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

Загрузчик винды может быть выкинут и заменён чем нибудь другим

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

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

Такой цели никто не ставил.

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

winload вообще то дублирует функционал ntldr, который до сих пор используется. Один для одних материнок, другой для других. Почему на одних не воспользоваться каким нибудь режимом совместимости с другими? Или если завтра выпустят загрузчик вин11, который будет грузить десятку вместо winload?

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

winload вообще то дублирует функционал ntldr, который до сих пор используется.

winload – это новая версия ntldr, ntldr нет начиная с Windows Vista. Это и есть собственно загрузчик ядра. Есть ещё менеджер загрузки bootmgfw, который запускает winload или winresume (восстановление из гибернации, там грузится не ядро, а сохранённый образ памяти).

Один для одних материнок, другой для других.

Это вы про BIOS/UEFI? Да, для них нужны разные сборки загрузчиков, ничего не поделаешь. В Haiku тоже есть haiku_loader.bios_ia32 и haiku_loader.efi, они собираются в основном из того же самого кода.

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

У Windows 11 будет свой winload, не факт что совместимый с Windows 10. На уровне bootmgfw я так понимаю оно совместимо.

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

Стоит так, как сделали за меня мейнтейнеры дистрибутива. Честно признаться, даже не знаю, зачем этот initramfs нужен.

snake266 ★★
()

что дистр использует, то и ладно

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

Ладно, winload.exe дублирует функционал winload. Да, версии для биос/эфи. По сути различные программы, делающие одно и то же.

bootmgfw, winload

Т.е. двухуровневый загрузчик и только потом ядро? И ни один из них не умеет мультисистемы, это надо вынести на какую нибудь другую стадию. Да и мультизагрузка так себе реализована, примерно как в grub 0.98, только хуже.

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

Когда научился?

Давно уже. Наверное ещё Windows Vista умела.

Да, и это напрямую, или через промежуточный загрузчик?

Можно запускать любую EFI программу из меню. Меню настраивается через BCD, есть консольные и GUI утилиты для редактирования. Оно по идее должно даже без установленного Windows работать.

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

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

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

Семёрка точно не умела, а в восьмёрке вроде никаких изменений не вносилось.

EFI версии тоже?

X512 ★★★★★
()

Лет пять назад собирал на генте чтобы красивые картинки показывать при загрузке. Больше практического смысла для себя не вижу, разве что / шифровать, а не только /home.

Для восстановления - single. Сломано настолько что даже так не грузится - SystemRescueCD.

У VPS провайдера есть свои средства для восстановления.

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

Не слышал чтобы. Если бы могла, при муьтизагрузке граб проще было бы вообще не ставить. Собственно граб2 под эфи проще было бы вообще не писать.

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

Вроде бы есть установщик Ubuntu под Windows, который автоматически прописывает Ubuntu в загрузочное меню Windows.

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

Когда-то давно была такая штука wubi. Делала несколько файлов-образов на NTFS, с которых можно было Ubuntu грузить и использовать как обычную систему.

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

uefi - это тяжкое последствие близкородственного скрещивания венды и анального зонда т.н. «доверительного вычисления» («trusted computing») когда ключи от твоей квартиры - у «добрых» дядюшек из АНБ и Редмонда

бесполезно спорить с тем, кто тебя слышать не хочет. кстати, этому апологету как круто сделано в венде надо напомнить в каких случаях вылазит «NTLDR is missing» и это вот всё. и почему в пингвине - это не является проблемой - вообще! именно благодаря разнесению функций загрузчика и всяких там initrd.

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

Это вообще какой-то лютый зверь был. Ядро внутри обычного процесса, образ ФС, tun для сети, xming для графики. У меня оно работало сильно через раз.

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

модули можно собрать в ядро наверное он не смог ))))

mumpster ★★★★★
()

спуф - странный опрос.
В целом он ничего не показывает.

shleemypants
()

Угадал автора по тексту.
Не использую, вроде

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

ума не приложу откуда в 2021 люди с другими вариантами

Ну ты посмотри внимательно в адресную строку, всё должно стать на свои места.

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

Я понял: 15% пишет с винды, еще один процент с тостера; 3% когда-то собрали что-то сами, двое спуфинги, остальные знают, как называется предустановленный.

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

Без статически слинкованных в ядро драйверов ФС. FreeBSD, Haiku, Windows, Mac OS умеют.

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

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

Это тяжело. Надо глаза 👀 при апдейтах ещё закрывать, а то увидишь эти слова.

fornlr ★★★★★
()

Удобная проверка и исправление корневой ФС, если вдруг что то не так

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

Было время, когда без initrd было единственным use case. Да и сейчас есть дистры, которые по умолчанию без этого, например LFS и, кажется, Slackware.

Infra_HDC ★★★★★
()

Использую собственный, где есть минимальный busybox, f2fsck и resume из suspend.

Bircoph
()

Использую initramfs от genkernel. Не уверен, это «предустановленный» или «другое», проголосовал за «другое», но для меня это скорее дефолтное решение.

Выручать… было дело пару раз, но сейчас проще же с live-системы загрузчик поправить

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

А почему initrd - костыль? Чем чтение загрузчиком /boot/initrd.img принципиально отличается от чтения %systemroot%/system32/drivers/*.sys кроме того, что в первом случае у нас один файл, а во втором - много?

Я когда-то пытался сделать Linux 2.6.16 multiboot-совместимым, чтобы модули можно было грузить из GRUB через module, но забросил, так как смог выдумать только одну (на мой взгляд, достаточно надуманную) причину, зачем этого может хотеть пользователь - чтобы запрещать загрузку модулей из работающей системы. Но с этим прекрасно справляется grsec_lock.

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

А почему initrd - костыль? Чем чтение загрузчиком /boot/initrd.img принципиально отличается от чтения %systemroot%/system32/drivers/*.sys кроме того, что в первом случае у нас один файл, а во втором - много?

Чтение обычных модулей ядра гарантирует консистентность. В initrd хранятся дубликаты драйверов, он может устареть и он требует специальных инструментов для обновления. Если загрузчик умеет грузить драйвера, то драйвера проще поменять/обновить, в том числе из другой ОС без chroot.

X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.