LXF156:Dracut?
Olkol (обсуждение | вклад) (Новая страница: «Категория:Постоянные рубрики Категория:Вопрос, ответ =Dracut? Что за штука…= <span style="c…») |
Olkol (обсуждение | вклад) (→Dracut? Что за штука…) |
||
Строка 5: | Строка 5: | ||
<span style="color:red"><span style="font-size: 200%"> В </span></span> | <span style="color:red"><span style="font-size: 200%"> В </span></span> | ||
− | |||
И что же это такое? | И что же это такое? | ||
<span style="color:red"><span style="font-size: 200%"> О </span></span> | <span style="color:red"><span style="font-size: 200%"> О </span></span> | ||
− | |||
Dracut (http://dracut.wiki.kernel.org) – это инструмент для сборки initramfs, не зависящий от дистрибутива Linux. | Dracut (http://dracut.wiki.kernel.org) – это инструмент для сборки initramfs, не зависящий от дистрибутива Linux. | ||
<span style="color:red"><span style="font-size: 200%"> В </span></span> | <span style="color:red"><span style="font-size: 200%"> В </span></span> | ||
− | |||
Увы, после вашего ответа я понимаю еще меньше. Что вы имеете в виду? | Увы, после вашего ответа я понимаю еще меньше. Что вы имеете в виду? | ||
<span style="color:red"><span style="font-size: 200%"> О </span></span> | <span style="color:red"><span style="font-size: 200%"> О </span></span> | ||
− | |||
Что Dracut – это новый инструмент для создания специальных программ и файлов загрузки, совместимый со всеми дистрибутивами GNU/Linux. | Что Dracut – это новый инструмент для создания специальных программ и файлов загрузки, совместимый со всеми дистрибутивами GNU/Linux. | ||
<span style="color:red"><span style="font-size: 200%"> В </span></span> | <span style="color:red"><span style="font-size: 200%"> В </span></span> | ||
− | |||
Ага, по крайней мере стало ясно, о чем речь. А что это за initramfs? | Ага, по крайней мере стало ясно, о чем речь. А что это за initramfs? | ||
<span style="color:red"><span style="font-size: 200%"> О </span></span> | <span style="color:red"><span style="font-size: 200%"> О </span></span> | ||
− | |||
Позвольте мне уточнить кое-что, прежде чем отвечать. Вы ведь помните, что Linux – это только ядро, а функции ядра ограничены, да? | Позвольте мне уточнить кое-что, прежде чем отвечать. Вы ведь помните, что Linux – это только ядро, а функции ядра ограничены, да? | ||
<span style="color:red"><span style="font-size: 200%"> В </span></span> | <span style="color:red"><span style="font-size: 200%"> В </span></span> | ||
− | |||
Э-ээ... Ну да, конечно! Ядро Linux... | Э-ээ... Ну да, конечно! Ядро Linux... | ||
<span style="color:red"><span style="font-size: 200%"> О </span></span> | <span style="color:red"><span style="font-size: 200%"> О </span></span> | ||
− | |||
...это базовое ПО, отвечающее только за выполнение самых основных, низкоуровневых действий внутри компьютера, от запуска системных драйверов до диспетчеризации процессов. | ...это базовое ПО, отвечающее только за выполнение самых основных, низкоуровневых действий внутри компьютера, от запуска системных драйверов до диспетчеризации процессов. | ||
<span style="color:red"><span style="font-size: 200%"> В </span></span> | <span style="color:red"><span style="font-size: 200%"> В </span></span> | ||
− | |||
Вот, теперь понятно... Так как же он работает? | Вот, теперь понятно... Так как же он работает? | ||
<span style="color:red"><span style="font-size: 200%"> О </span></span> | <span style="color:red"><span style="font-size: 200%"> О </span></span> | ||
− | |||
Запуск ядра Linux начинается с нахождения и монтирования файловой системы, после чего определяется первая запускаемая программа. Для этого предусмотрена небольшая функция ‘init’, которая отвечает за порядок загрузки всех последующих функций; в ее обязанности входит также их нахождение (потому что программы, в принципе, могут быть разбросаны по разным дискам, или вообще располагаться на другом сервере). | Запуск ядра Linux начинается с нахождения и монтирования файловой системы, после чего определяется первая запускаемая программа. Для этого предусмотрена небольшая функция ‘init’, которая отвечает за порядок загрузки всех последующих функций; в ее обязанности входит также их нахождение (потому что программы, в принципе, могут быть разбросаны по разным дискам, или вообще располагаться на другом сервере). | ||
<span style="color:red"><span style="font-size: 200%"> В </span></span> | <span style="color:red"><span style="font-size: 200%"> В </span></span> | ||
− | |||
Но ведь это не такая уж сложная задача. Не может разве ядро выполнять ее самостоятельно? | Но ведь это не такая уж сложная задача. Не может разве ядро выполнять ее самостоятельно? | ||
<span style="color:red"><span style="font-size: 200%"> О </span></span> | <span style="color:red"><span style="font-size: 200%"> О </span></span> | ||
− | |||
В теории, может. Но на самом деле, задача-то не из простых (по крайней мере, для ядра), если брать в расчет все возможные варианты. Сегодня ведь Linux работает практически на всем – от стандартных ПК до мобильных телефонов и автомобильных мультимедиа-систем. Кроме микропроцессора, эта исходная файловая система может находиться на старых добрых жестких дисках, USB-брелках, сетевых драйверах, flash-чипах или RAID-массивах. Да даже на двух одинаковых машинах файловые системы могут иметь совершенно разную конфигурацию. | В теории, может. Но на самом деле, задача-то не из простых (по крайней мере, для ядра), если брать в расчет все возможные варианты. Сегодня ведь Linux работает практически на всем – от стандартных ПК до мобильных телефонов и автомобильных мультимедиа-систем. Кроме микропроцессора, эта исходная файловая система может находиться на старых добрых жестких дисках, USB-брелках, сетевых драйверах, flash-чипах или RAID-массивах. Да даже на двух одинаковых машинах файловые системы могут иметь совершенно разную конфигурацию. | ||
<span style="color:red"><span style="font-size: 200%"> В </span></span> | <span style="color:red"><span style="font-size: 200%"> В </span></span> | ||
− | |||
А что значит «совершенно» разные? Помимо типа, то есть ext3 или там ext4, чем еще они могут отличаться? | А что значит «совершенно» разные? Помимо типа, то есть ext3 или там ext4, чем еще они могут отличаться? | ||
<span style="color:red"><span style="font-size: 200%"> О </span></span> | <span style="color:red"><span style="font-size: 200%"> О </span></span> | ||
− | |||
Ну, для начала, они могут быть сжатыми или зашифрованными, если говорить о самых частых случаях. А значит, ядро должно включать не только необходимые программные инструменты доступа к ним, но, во втором случае, еще и пароль. Наконец, в нашу эру ноутбуков, Linux также должен уметь работать в спящем режиме – а именно, возвращаться в исходное состояние после блокировки. | Ну, для начала, они могут быть сжатыми или зашифрованными, если говорить о самых частых случаях. А значит, ядро должно включать не только необходимые программные инструменты доступа к ним, но, во втором случае, еще и пароль. Наконец, в нашу эру ноутбуков, Linux также должен уметь работать в спящем режиме – а именно, возвращаться в исходное состояние после блокировки. | ||
<span style="color:red"><span style="font-size: 200%"> В </span></span> | <span style="color:red"><span style="font-size: 200%"> В </span></span> | ||
− | |||
ОК, понятно: вариантов может быть много. | ОК, понятно: вариантов может быть много. | ||
<span style="color:red"><span style="font-size: 200%"> О </span></span> | <span style="color:red"><span style="font-size: 200%"> О </span></span> | ||
− | |||
Именно. По крайней мере – столько, что учесть их все исключительно в параметрах командной строки ядра будет очень трудно. Кроме того, ядро ведь такая хитрая штука, что его практически невозможно заставить выполнять все необходимые действия для нахождения корневого элемента. Именно это имеют в виду некоторые разработчики, говоря, что ядро создано, чтобы принимать команды и запросы, а не решения. | Именно. По крайней мере – столько, что учесть их все исключительно в параметрах командной строки ядра будет очень трудно. Кроме того, ядро ведь такая хитрая штука, что его практически невозможно заставить выполнять все необходимые действия для нахождения корневого элемента. Именно это имеют в виду некоторые разработчики, говоря, что ядро создано, чтобы принимать команды и запросы, а не решения. | ||
<span style="color:red"><span style="font-size: 200%"> В </span></span> | <span style="color:red"><span style="font-size: 200%"> В </span></span> | ||
− | |||
И как с этим справляется initramfs? То есть, ЧТО вообще такое initramfs? | И как с этим справляется initramfs? То есть, ЧТО вообще такое initramfs? | ||
<span style="color:red"><span style="font-size: 200%"> О </span></span> | <span style="color:red"><span style="font-size: 200%"> О </span></span> | ||
− | |||
Исходя из самого названия, это маленькая «стартовая файловая система», впервые появившаяся в версии ядра Linux 2.6, загружаемая в ОЗУ и там же запускающаяся. Задача initramfs – хранить, в правильной локализации и приемлемой для ядра конфигурации, нужную версию инициализирующей программы, а также драйвера и инструменты, необходимые для ее загрузки. | Исходя из самого названия, это маленькая «стартовая файловая система», впервые появившаяся в версии ядра Linux 2.6, загружаемая в ОЗУ и там же запускающаяся. Задача initramfs – хранить, в правильной локализации и приемлемой для ядра конфигурации, нужную версию инициализирующей программы, а также драйвера и инструменты, необходимые для ее загрузки. | ||
Строка 79: | Строка 61: | ||
<span style="color:red"><span style="font-size: 200%"> В </span></span> | <span style="color:red"><span style="font-size: 200%"> В </span></span> | ||
− | |||
Но разве файловая система – не неизменяемая структура данных? Как она может быть в ОЗУ? | Но разве файловая система – не неизменяемая структура данных? Как она может быть в ОЗУ? | ||
<span style="color:red"><span style="font-size: 200%"> О </span></span> | <span style="color:red"><span style="font-size: 200%"> О </span></span> | ||
− | |||
Ну, вообще-то, файловая система – это обычный набор байт, который можно скопировать куда угодно – она структурирована таким образом, чтобы хранить и обеспечивать быстрый доступ к папкам и файлам. | Ну, вообще-то, файловая система – это обычный набор байт, который можно скопировать куда угодно – она структурирована таким образом, чтобы хранить и обеспечивать быстрый доступ к папкам и файлам. | ||
Строка 89: | Строка 69: | ||
<span style="color:red"><span style="font-size: 200%"> В </span></span> | <span style="color:red"><span style="font-size: 200%"> В </span></span> | ||
− | |||
И вы упомянули, что initramfs использовалась и до появления Dracut, да? | И вы упомянули, что initramfs использовалась и до появления Dracut, да? | ||
<span style="color:red"><span style="font-size: 200%"> О </span></span> | <span style="color:red"><span style="font-size: 200%"> О </span></span> | ||
− | |||
Верно. Причем так активно, что за эти годы каждый дистрибутив GNU/Linux обзавелся собственным инструментарием для генерации таких файловых систем. | Верно. Причем так активно, что за эти годы каждый дистрибутив GNU/Linux обзавелся собственным инструментарием для генерации таких файловых систем. | ||
<span style="color:red"><span style="font-size: 200%"> В </span></span> | <span style="color:red"><span style="font-size: 200%"> В </span></span> | ||
− | |||
Вернемся к Dracut: что он добавил в общую картину? | Вернемся к Dracut: что он добавил в общую картину? | ||
<span style="color:red"><span style="font-size: 200%"> О </span></span> | <span style="color:red"><span style="font-size: 200%"> О </span></span> | ||
− | |||
Dracut – одновременно и инструментарий, и новый метод, основанный на событиях Udev, для создания initramfs общего назначения. Он был создан в 2009 году, дабы преодолеть ограничения старых систем, ориентированных на конкретный дистрибутив. | Dracut – одновременно и инструментарий, и новый метод, основанный на событиях Udev, для создания initramfs общего назначения. Он был создан в 2009 году, дабы преодолеть ограничения старых систем, ориентированных на конкретный дистрибутив. | ||
<span style="color:red"><span style="font-size: 200%"> В </span></span> | <span style="color:red"><span style="font-size: 200%"> В </span></span> | ||
− | |||
Стоп! Опять вы швыряетесь мудреными словами. В смысле, что это — Udev? | Стоп! Опять вы швыряетесь мудреными словами. В смысле, что это — Udev? | ||
<span style="color:red"><span style="font-size: 200%"> О </span></span> | <span style="color:red"><span style="font-size: 200%"> О </span></span> | ||
− | |||
Udev – это демон, который создает, именует и удаляет файлы устройств – то есть программный интерфейс к аппаратным элементам для всех систем GNU/Linux. | Udev – это демон, который создает, именует и удаляет файлы устройств – то есть программный интерфейс к аппаратным элементам для всех систем GNU/Linux. | ||
<span style="color:red"><span style="font-size: 200%"> В </span></span> | <span style="color:red"><span style="font-size: 200%"> В </span></span> | ||
− | |||
А зачем для этого демон? | А зачем для этого демон? | ||
<span style="color:red"><span style="font-size: 200%"> О </span></span> | <span style="color:red"><span style="font-size: 200%"> О </span></span> | ||
− | |||
Главным образом, для того, чтобы иметь универсальный способ получения сохраняемых имен устройств, даже для съемных дисков. Действия Udev сообщаются всем программам, которых это касается. | Главным образом, для того, чтобы иметь универсальный способ получения сохраняемых имен устройств, даже для съемных дисков. Действия Udev сообщаются всем программам, которых это касается. | ||
<span style="color:red"><span style="font-size: 200%"> В </span></span> | <span style="color:red"><span style="font-size: 200%"> В </span></span> | ||
− | |||
Спасибо. Так зачем был запущен Dracut? В чем его цель? | Спасибо. Так зачем был запущен Dracut? В чем его цель? | ||
<span style="color:red"><span style="font-size: 200%"> О </span></span> | <span style="color:red"><span style="font-size: 200%"> О </span></span> | ||
− | |||
Для конечных пользователей главным результатом внедрения Dracut будет сокращение времени загрузки. Он призван облегчить построение и использование действующих корневых файловых систем; а об initramfs, со всеми ее недостатками, как можно скорее забыть. | Для конечных пользователей главным результатом внедрения Dracut будет сокращение времени загрузки. Он призван облегчить построение и использование действующих корневых файловых систем; а об initramfs, со всеми ее недостатками, как можно скорее забыть. | ||
<span style="color:red"><span style="font-size: 200%"> В </span></span> | <span style="color:red"><span style="font-size: 200%"> В </span></span> | ||
− | |||
А разработчики и поддержка? Что выиграют они? | А разработчики и поддержка? Что выиграют они? | ||
<span style="color:red"><span style="font-size: 200%"> О </span></span> | <span style="color:red"><span style="font-size: 200%"> О </span></span> | ||
− | |||
Если в двух словах, будет меньше кода для запуска и отладки и больше эффективных способов этого достичь. Пока в каждрм дистрибутиве собственный инструментарий для создания initramfs, потенциальных рисков очень много. А в основу Dracut положена идея о том, чтобы вытеснить из дистрибутивов поколение initramfs, тем самым упростив работу тех, кто их обслуживает. | Если в двух словах, будет меньше кода для запуска и отладки и больше эффективных способов этого достичь. Пока в каждрм дистрибутиве собственный инструментарий для создания initramfs, потенциальных рисков очень много. А в основу Dracut положена идея о том, чтобы вытеснить из дистрибутивов поколение initramfs, тем самым упростив работу тех, кто их обслуживает. | ||
<span style="color:red"><span style="font-size: 200%"> В </span></span> | <span style="color:red"><span style="font-size: 200%"> В </span></span> | ||
− | |||
И как же Dracut это удастся? | И как же Dracut это удастся? | ||
<span style="color:red"><span style="font-size: 200%"> О </span></span> | <span style="color:red"><span style="font-size: 200%"> О </span></span> | ||
− | |||
За счет упрощенной универсальной инициализирующей программы, которая будет использовать единый udev-инструмент для всех методов установки и параметров загрузки, в составе более типичного и обобщенного initramfs. | За счет упрощенной универсальной инициализирующей программы, которая будет использовать единый udev-инструмент для всех методов установки и параметров загрузки, в составе более типичного и обобщенного initramfs. | ||
Строка 147: | Строка 113: | ||
<span style="color:red"><span style="font-size: 200%"> В </span></span> | <span style="color:red"><span style="font-size: 200%"> В </span></span> | ||
− | |||
Но как эта универсальная инициализирующая программа справится со всеми вариантами? | Но как эта универсальная инициализирующая программа справится со всеми вариантами? | ||
<span style="color:red"><span style="font-size: 200%"> О </span></span> | <span style="color:red"><span style="font-size: 200%"> О </span></span> | ||
− | |||
Благодаря доступности udev в новой initramfs, Dracut ухитряется перевернуть все прежние процедуры с ног на голову. Вместо того, чтобы пичкать initramfs в каждом дистрибутиве своими собственными премудростями для обнаружения оборудования, программа инициализации в Dracut заставляет udev создавать файлы устройств. | Благодаря доступности udev в новой initramfs, Dracut ухитряется перевернуть все прежние процедуры с ног на голову. Вместо того, чтобы пичкать initramfs в каждом дистрибутиве своими собственными премудростями для обнаружения оборудования, программа инициализации в Dracut заставляет udev создавать файлы устройств. | ||
<span style="color:red"><span style="font-size: 200%"> В </span></span> | <span style="color:red"><span style="font-size: 200%"> В </span></span> | ||
− | |||
Имеете в виду, что это происходит в процессе обычных действий, когда я вставляю флэшку в компьютер? | Имеете в виду, что это происходит в процессе обычных действий, когда я вставляю флэшку в компьютер? | ||
<span style="color:red"><span style="font-size: 200%"> О </span></span> | <span style="color:red"><span style="font-size: 200%"> О </span></span> | ||
− | |||
Именно так. | Именно так. | ||
<span style="color:red"><span style="font-size: 200%"> В </span></span> | <span style="color:red"><span style="font-size: 200%"> В </span></span> | ||
− | |||
А что потом? | А что потом? | ||
Строка 171: | Строка 132: | ||
<span style="color:red"><span style="font-size: 200%"> В </span></span> | <span style="color:red"><span style="font-size: 200%"> В </span></span> | ||
− | |||
А может Dracut создавать initramfs специально под мою систему? | А может Dracut создавать initramfs специально под мою систему? | ||
− | О | + | <span style="color:red"><span style="font-size: 200%"> О </span></span> |
− | + | ||
Может. Легко, например, уменьшить образ, добавив в скрипт Dracut параметр -H. Тогда на вашем жестком диске останется initramfs, которая не будет загружаться на другом компьютере, но часто ли это проблема? | Может. Легко, например, уменьшить образ, добавив в скрипт Dracut параметр -H. Тогда на вашем жестком диске останется initramfs, которая не будет загружаться на другом компьютере, но часто ли это проблема? | ||
<span style="color:red"><span style="font-size: 200%"> В </span></span> | <span style="color:red"><span style="font-size: 200%"> В </span></span> | ||
− | |||
А если я захочу вместо этого ускорить загрузку? | А если я захочу вместо этого ускорить загрузку? | ||
− | О | + | <span style="color:red"><span style="font-size: 200%"> О </span></span> |
− | + | ||
Тогда настройте соответствующие параметры командной строки в Dracut, определив параметры вашей системы и параметры загрузки. | Тогда настройте соответствующие параметры командной строки в Dracut, определив параметры вашей системы и параметры загрузки. | ||
Если вы это сделаете, Dracut подгонит под эту информацию соответствующие настройки ядра и другие индивидуальные параметры, чтобы создать initramfs, изначально знающую, где находится файловая система. | Если вы это сделаете, Dracut подгонит под эту информацию соответствующие настройки ядра и другие индивидуальные параметры, чтобы создать initramfs, изначально знающую, где находится файловая система. |
Текущая версия на 03:54, 10 июля 2018
|
|
|
[править] Dracut? Что за штука…
В И что же это такое?
О Dracut (http://dracut.wiki.kernel.org) – это инструмент для сборки initramfs, не зависящий от дистрибутива Linux.
В Увы, после вашего ответа я понимаю еще меньше. Что вы имеете в виду?
О Что Dracut – это новый инструмент для создания специальных программ и файлов загрузки, совместимый со всеми дистрибутивами GNU/Linux.
В Ага, по крайней мере стало ясно, о чем речь. А что это за initramfs?
О Позвольте мне уточнить кое-что, прежде чем отвечать. Вы ведь помните, что Linux – это только ядро, а функции ядра ограничены, да?
В Э-ээ... Ну да, конечно! Ядро Linux...
О ...это базовое ПО, отвечающее только за выполнение самых основных, низкоуровневых действий внутри компьютера, от запуска системных драйверов до диспетчеризации процессов.
В Вот, теперь понятно... Так как же он работает?
О Запуск ядра Linux начинается с нахождения и монтирования файловой системы, после чего определяется первая запускаемая программа. Для этого предусмотрена небольшая функция ‘init’, которая отвечает за порядок загрузки всех последующих функций; в ее обязанности входит также их нахождение (потому что программы, в принципе, могут быть разбросаны по разным дискам, или вообще располагаться на другом сервере).
В Но ведь это не такая уж сложная задача. Не может разве ядро выполнять ее самостоятельно?
О В теории, может. Но на самом деле, задача-то не из простых (по крайней мере, для ядра), если брать в расчет все возможные варианты. Сегодня ведь Linux работает практически на всем – от стандартных ПК до мобильных телефонов и автомобильных мультимедиа-систем. Кроме микропроцессора, эта исходная файловая система может находиться на старых добрых жестких дисках, USB-брелках, сетевых драйверах, flash-чипах или RAID-массивах. Да даже на двух одинаковых машинах файловые системы могут иметь совершенно разную конфигурацию.
В А что значит «совершенно» разные? Помимо типа, то есть ext3 или там ext4, чем еще они могут отличаться?
О Ну, для начала, они могут быть сжатыми или зашифрованными, если говорить о самых частых случаях. А значит, ядро должно включать не только необходимые программные инструменты доступа к ним, но, во втором случае, еще и пароль. Наконец, в нашу эру ноутбуков, Linux также должен уметь работать в спящем режиме – а именно, возвращаться в исходное состояние после блокировки.
В ОК, понятно: вариантов может быть много.
О Именно. По крайней мере – столько, что учесть их все исключительно в параметрах командной строки ядра будет очень трудно. Кроме того, ядро ведь такая хитрая штука, что его практически невозможно заставить выполнять все необходимые действия для нахождения корневого элемента. Именно это имеют в виду некоторые разработчики, говоря, что ядро создано, чтобы принимать команды и запросы, а не решения.
В И как с этим справляется initramfs? То есть, ЧТО вообще такое initramfs?
О Исходя из самого названия, это маленькая «стартовая файловая система», впервые появившаяся в версии ядра Linux 2.6, загружаемая в ОЗУ и там же запускающаяся. Задача initramfs – хранить, в правильной локализации и приемлемой для ядра конфигурации, нужную версию инициализирующей программы, а также драйвера и инструменты, необходимые для ее загрузки.
Как только нужное приложение найдено и запущено, никаких дополнительных действий ядро не производит. И именно эта инициализирующая программа, внутри initramfs, найдет и действительную файловую систему – ту, на которой расположен ваш дистрибутив GNU/Linux – и запустит ее.
В Но разве файловая система – не неизменяемая структура данных? Как она может быть в ОЗУ?
О Ну, вообще-то, файловая система – это обычный набор байт, который можно скопировать куда угодно – она структурирована таким образом, чтобы хранить и обеспечивать быстрый доступ к папкам и файлам.
Однако чтобы пользоваться ею даже из ОЗУ, initramfs можно построить как реальный диск, который – опустим технические подробности – просто не нуждается в драйвере.
В И вы упомянули, что initramfs использовалась и до появления Dracut, да?
О Верно. Причем так активно, что за эти годы каждый дистрибутив GNU/Linux обзавелся собственным инструментарием для генерации таких файловых систем.
В Вернемся к Dracut: что он добавил в общую картину?
О Dracut – одновременно и инструментарий, и новый метод, основанный на событиях Udev, для создания initramfs общего назначения. Он был создан в 2009 году, дабы преодолеть ограничения старых систем, ориентированных на конкретный дистрибутив.
В Стоп! Опять вы швыряетесь мудреными словами. В смысле, что это — Udev?
О Udev – это демон, который создает, именует и удаляет файлы устройств – то есть программный интерфейс к аппаратным элементам для всех систем GNU/Linux.
В А зачем для этого демон?
О Главным образом, для того, чтобы иметь универсальный способ получения сохраняемых имен устройств, даже для съемных дисков. Действия Udev сообщаются всем программам, которых это касается.
В Спасибо. Так зачем был запущен Dracut? В чем его цель?
О Для конечных пользователей главным результатом внедрения Dracut будет сокращение времени загрузки. Он призван облегчить построение и использование действующих корневых файловых систем; а об initramfs, со всеми ее недостатками, как можно скорее забыть.
В А разработчики и поддержка? Что выиграют они?
О Если в двух словах, будет меньше кода для запуска и отладки и больше эффективных способов этого достичь. Пока в каждрм дистрибутиве собственный инструментарий для создания initramfs, потенциальных рисков очень много. А в основу Dracut положена идея о том, чтобы вытеснить из дистрибутивов поколение initramfs, тем самым упростив работу тех, кто их обслуживает.
В И как же Dracut это удастся?
О За счет упрощенной универсальной инициализирующей программы, которая будет использовать единый udev-инструмент для всех методов установки и параметров загрузки, в составе более типичного и обобщенного initramfs.
Еще одна причина, по которой Dracut должен облегчить жизнь разработчиков, является наличие в нем диагностической оболочки. Он также включает и возможности для создания «ловушек [hooks]» – то есть способов запуска произвольных команд.
В Но как эта универсальная инициализирующая программа справится со всеми вариантами?
О Благодаря доступности udev в новой initramfs, Dracut ухитряется перевернуть все прежние процедуры с ног на голову. Вместо того, чтобы пичкать initramfs в каждом дистрибутиве своими собственными премудростями для обнаружения оборудования, программа инициализации в Dracut заставляет udev создавать файлы устройств.
В Имеете в виду, что это происходит в процессе обычных действий, когда я вставляю флэшку в компьютер?
О Именно так.
В А что потом?
О
Загрузка практически завершена. Как только файл устройства с действующей корневой файловой системой создан, ядро «перескакивает» на него, а initramfs запускает инициализирующую программу.
В А может Dracut создавать initramfs специально под мою систему?
О Может. Легко, например, уменьшить образ, добавив в скрипт Dracut параметр -H. Тогда на вашем жестком диске останется initramfs, которая не будет загружаться на другом компьютере, но часто ли это проблема?
В А если я захочу вместо этого ускорить загрузку?
О Тогда настройте соответствующие параметры командной строки в Dracut, определив параметры вашей системы и параметры загрузки.
Если вы это сделаете, Dracut подгонит под эту информацию соответствующие настройки ядра и другие индивидуальные параметры, чтобы создать initramfs, изначально знающую, где находится файловая система.