unixforum.org
Обнаружил, что Мандрива и Дебиан в раздел /boot «кинули» свои ядра а так же странные файлы initrd.img. Соответственно в /boot/grub/menu.lst в разделах для Мандривы и Дебиана есть строки с указанием на эти файлы.
Зенвок такой файл почему-то не создал.
По FAQ`ам GRUB часто не упоминается об этих файлах.
Так что же это такое: нужен он или нет?
P-IV 2.66 GHz; 768Mb RAM; Nvidia GeForce FX-5200; hda: IDE 160Gb; hdb: IDE 250Gb; Monitor: Acer AL1916WAs.
Linux user number: 460542
Как монтировать initrd.img ?
Обычно это cpio-архив. Соответственно, распаковывать при помощи cpio.
Deleted
( 24.03.19 01:30:19 MSK )
Ответ на: комментарий от Deleted 24.03.19 01:30:19 MSK
$ file initrd.img-4.18.0-16-generic initrd.img-4.18.0-16-generic: ASCII cpio archive (SVR4 with no CRC)
superuser ★★★★
( 24.03.19 01:33:42 MSK ) автор топика
Ответ на: комментарий от Deleted 24.03.19 01:30:19 MSK
Обычно это cpio-архив. Соответственно, распаковывать при помощи cpio.
вот тут Параметр ядра «recovery» пытался при помощи cpio и никак
superuser ★★★★
( 24.03.19 01:35:38 MSK ) автор топика
Ответ на: комментарий от superuser 24.03.19 01:35:38 MSK
Возможно там не один архив, а два или больше. Ядро такое позволяет, при загрузке просто распаковывая их по очереди.
Если после незапакованного cpio идёт cpio.gz (как у меня на федоре), то однострочник для распаковки будет примерно таким:
(cpio -ivd && gunzip | cpio -ivd)
Если у тебя что-то другое, то скрипт надо будет подправить.
Deleted
( 24.03.19 01:48:26 MSK )
Последнее исправление: Deleted 24.03.19 01:49:02 MSK (всего исправлений: 1)
Ответ на: комментарий от Deleted 24.03.19 01:48:26 MSK
$ (cpio -ivd && gunzip | cpio -ivd) < initrd.img-4.18.0-16-generic . kernel kernel/x86 kernel/x86/microcode kernel/x86/microcode/AuthenticAMD.bin 56 блоков gzip: stdin: not in gzip format cpio: преждевременный конец архива
superuser ★★★★
( 24.03.19 01:52:38 MSK ) автор топика
Ответ на: комментарий от superuser 24.03.19 01:52:38 MSK
(cpio -ivd && cat >/tmp/second.img)
Deleted
( 24.03.19 01:53:42 MSK )
Ответ на: комментарий от Deleted 24.03.19 01:53:42 MSK
$ (cpio -ivd && cat >/tmp/second.img)
superuser ★★★★
( 24.03.19 01:55:45 MSK ) автор топика
Ответ на: комментарий от superuser 24.03.19 01:55:45 MSK
(cpio -ivd && cpio -ivd && cat >/tmp/third.img)
Если после двух несжатых cpio есть что-то ещё, то оно окажется в /tmp/third.img.
Deleted
( 24.03.19 01:57:28 MSK )
Ответ на: комментарий от superuser 24.03.19 01:55:45 MSK
у меня немного по другому 🙂
~/pfg/test/kernell$ (cpio -ivd && cat >./second.img) < /boot/initrd.img-4.18.0-16-generic kernel kernel/x86 kernel/x86/microcode kernel/x86/microcode/.enuineIntel.align.0123456789abc kernel/x86/microcode/GenuineIntel.bin 32 блока ~/pfg/test/kernell$ file ./second.img ./second.img: gzip compressed data, last modified: Fri Mar 22 23:37:12 2019, from Unix, original size 17290240
но тоже есть вопросы.
pfg ★★★★★
( 24.03.19 02:03:27 MSK )
Ответ на: комментарий от Deleted 24.03.19 01:57:28 MSK
file /tmp/third.img /tmp/third.img: gzip compressed data, last modified: Thu Mar 21 21:17:46 2019, from Unix
(cpio -ivd && cpio -ivd && gunzip | cpio -ivd) < initrd.img-4.18.0-16-generic
жжжжж!
а Универсального скрипта не бывает? и в Ubuntu там какой-то страшный скрипт распаковывает
superuser ★★★★
( 24.03.19 02:03:56 MSK ) автор топика
Последнее исправление: superuser 24.03.19 02:04:30 MSK (всего исправлений: 1)
Ответ на: комментарий от superuser 24.03.19 02:03:56 MSK
а Универсального скрипта не бывает?
Можно написать. Но зачем?
Deleted
( 24.03.19 02:05:21 MSK )
Ответ на: комментарий от Deleted 24.03.19 02:05:21 MSK
superuser ★★★★
( 24.03.19 02:06:53 MSK ) автор топика
Ответ на: комментарий от superuser 24.03.19 02:03:56 MSK
а Универсального скрипта не бывает?
gzip -dc initrd.img-3.2.0-4-686-pae | cpio -iv
Deleted
( 24.03.19 02:07:11 MSK )
Ответ на: комментарий от Deleted 24.03.19 02:07:11 MSK
$ gzip -dc initrd.img-4.18.0-16-generic | cpio -iv gzip: initrd.img-4.18.0-16-generic: not in gzip format cpio: преждевременный конец архива $
mc показывает только дир. kernel
superuser ★★★★
( 24.03.19 02:10:15 MSK ) автор топика
Ответ на: комментарий от Deleted 24.03.19 02:05:21 MSK
а всё-таки как монтировать? ядро то как-то просто должно это делать
superuser ★★★★
( 24.03.19 02:12:43 MSK ) автор топика
Ответ на: комментарий от superuser 24.03.19 02:10:15 MSK
initrd не представляет собой gzip архив 🙂 заголовок не тот
pfg ★★★★★
( 24.03.19 02:13:24 MSK )
Ответ на: комментарий от superuser 24.03.19 02:12:43 MSK
груб его распаковывает в подмонтированную tmpfs
в момент запуска ядра в нем нет ни одного подмонтированного раздела. так что монтировать не из чего.
pfg ★★★★★
( 24.03.19 02:15:01 MSK )
Последнее исправление: pfg 24.03.19 02:16:50 MSK (всего исправлений: 1)
Ответ на: комментарий от superuser 24.03.19 02:10:15 MSK
А если не gzip -dc , а zcat ?
Deleted
( 24.03.19 02:16:22 MSK )
Ответ на: комментарий от Deleted 24.03.19 02:16:22 MSK
superuser ★★★★
( 24.03.19 02:17:44 MSK ) автор топика
Ответ на: комментарий от pfg 24.03.19 02:15:01 MSK
а как это всё тогда ядро находит/понимает?
superuser ★★★★
( 24.03.19 02:22:01 MSK ) автор топика
Ответ на: комментарий от Deleted 24.03.19 02:16:22 MSK
в начале инит нет заголовка gzip вот и не может распаковать
инитрам грузит груб и передает его ядру, как хз. тонкие материи едреной магии 🙂
pfg ★★★★★
( 24.03.19 02:24:59 MSK )
Последнее исправление: pfg 24.03.19 02:26:14 MSK (всего исправлений: 1)
Ответ на: комментарий от pfg 24.03.19 02:24:59 MSK
в начале инит нет заголовка gzip
Так в чем проблема?:
echo "TEST" > test.txt gzip test.txt cat test.txt.gz initrd.img-3.2.0-4-686-pae > initrd.img-3.2.0-4-686-pae.gz gzip -dc initrd.img-3.2.0-4-686-pae.gz | cpio -iv
Deleted
( 24.03.19 02:31:48 MSK )
Ответ на: комментарий от superuser 24.03.19 02:03:56 MSK
а Универсального скрипта не бывает?
#!/bin/sh unpack() < local comp_alg decomp_cmd comp_alg=$( file --brief --mime-type "$" ) case "$" in "application/x-gzip") decomp_cmd="gunzip" ;; "application/octet-stream") decomp_cmd="" ;; *) echo "Unknown compression: $" >&2 exit 1 ;; esac ( rm --force "$" set -xeu if [ -n "$" ]; then $decomp_cmd | cpio -ivd else cpio -ivd fi cat >"$" ) <"$" > set -xeu TMPDIR="" trap '[ -n "$" ] && rm --force --recursive "$"' EXIT TMPDIR=$( mktemp --directory --tmpdir="/tmp" --suffix=".unpackinitcpio" ) TMPNEXT="$/next" next="$" while [ -s "$" ]; do unpack "$" next="$" done
Запускать с одним аргументом: путём до файла.
Deleted
( 24.03.19 02:41:21 MSK )
Ответ на: комментарий от Deleted 24.03.19 02:41:21 MSK
$ ./_uinitrd initrd.img-5.0.2-pc + TMPDIR= + trap [ -n "$" ] && rm --force --recursive "$" EXIT + mktemp --directory --tmpdir=/tmp --suffix=.unpackinitcpio + TMPDIR=/tmp/tmp.UJKYFGUx5y.unpackinitcpio + TMPNEXT=/tmp/tmp.UJKYFGUx5y.unpackinitcpio/next + next=initrd.img-5.0.2-pc + [ -s initrd.img-5.0.2-pc ] + unpack initrd.img-5.0.2-pc + local comp_alg decomp_cmd + file --brief --mime-type initrd.img-5.0.2-pc + comp_alg=application/octet-stream + decomp_cmd= + rm --force /tmp/tmp.UJKYFGUx5y.unpackinitcpio/next + set -xeu + [ -n ] + cpio -ivd . kernel kernel/x86 kernel/x86/microcode kernel/x86/microcode/AuthenticAMD.bin 56 блоков + cat + next=/tmp/tmp.UJKYFGUx5y.unpackinitcpio/next + [ -s /tmp/tmp.UJKYFGUx5y.unpackinitcpio/next ] + unpack /tmp/tmp.UJKYFGUx5y.unpackinitcpio/next + local comp_alg decomp_cmd + file --brief --mime-type /tmp/tmp.UJKYFGUx5y.unpackinitcpio/next + comp_alg=application/octet-stream + decomp_cmd= + rm --force /tmp/tmp.UJKYFGUx5y.unpackinitcpio/next + set -xeu + [ -n ] + cpio -ivd kernel kernel/x86 kernel/x86/microcode kernel/x86/microcode/.enuineIntel.align.0123456789abc kernel/x86/microcode/GenuineIntel.bin 3080 блоков + cat + next=/tmp/tmp.UJKYFGUx5y.unpackinitcpio/next + [ -s /tmp/tmp.UJKYFGUx5y.unpackinitcpio/next ] + unpack /tmp/tmp.UJKYFGUx5y.unpackinitcpio/next + local comp_alg decomp_cmd + file --brief --mime-type /tmp/tmp.UJKYFGUx5y.unpackinitcpio/next + comp_alg=application/gzip + echo Unknown compression: application/gzip Unknown compression: application/gzip + exit 1 + [ -n /tmp/tmp.UJKYFGUx5y.unpackinitcpio ] + rm --force --recursive /tmp/tmp.UJKYFGUx5y.unpackinitcpio $
Исследуем процесс загрузки Linux
Как было сказано в предыдущем разделе, в процессе начальной загрузки вначале монтируется временный виртуальный диск, содержащий корневую файловую систему (очевидно, тоже временную), с помощью которой осуществляется запуск на выполнение ядра операционной системы. Образ этой корневой системы хранится на загрузочном устройстве в каталоге /boot и обычно носит имя initrd-2.x.yy-zzzz (точное наименование файла смотрите в вашей системе, далее он будет именоваться просто initrd). Загрузчик переносит образ корневой файловой системы из файла initrd в оперативную пямять одновременно с образом ядра, ядро преобразует initrd в "нормальный" RAM диск, монтирует временную корневую файловую систему, извлекает из нее нужные драйверы и другие служебные файлы, с помощью которых инициализирует все необходимые устройства. После этого происходит перемонтирование корневой файловой системы, временная ФС заменяется на постоянную, размещающуюся уже на долговременном носителе и процесс загрузки системы продолжается.
После того, как будет смонтирована корневая файловая система с жесткого диска, файл initrd уже никак не используется и место, занимаемое им в памяти, тоже освобождается. А теперь давайте подробнее рассмотрим как устроен этот файл. При этом надо сразу сказать, что внутреннее устройство initrd и его применение в ядрах версий 2.6 было изменено по сравнению с ядрами версий 2.4, так что придется рассмотреть эти случаи по отдельности.
3.2.1. Внутреннее устройство initrd
Как сказано в статье [10] в дистрибутиве Fedora Core 3 (и его предшественниках) файл initrd создавался с использованием виртуального loop-устройства. В этом случае сделать содержимое файла initrd доступным для просмотра можно с помощью следующих команд (напомню, что имя вашего образа initrd может отличаться):
# mkdir temp ; cd temp # cp /boot/initrd.img.gz . # gunzip initrd.img.gz # mount -t ext -o loop initrd.img /mnt/initrd # ls -la /mnt/initrd
Заметьте что даже если имя вашего образа initrd не заканчивается на ".gz", это все равно сжатый файл и добавив к концу имени суффикс ".gz", вы сможете воспользоваться командой gunzip, чтобы его распаковать.
В таких дистрибутивах, как Fedora Core 4, SUSE 10, . файл initrd представляет собой cpio-архив, сжатый упаковщиком gzip. Чтобы просмотреть его содержимое, надо выполнить команды, приведенные в листинге 3
mkdir ~/tmp cd ~/tmp cp /boot/initrd-2.6.16.13-4-default initrd-2.6.16.13-4-default.gz gzip -d .gz mv initrd-2.6.16.13-4-default initrd-2.6.16.13-4-default.cpio cpio -i < initrd-2.6.16.13-4-default
Познакомившись с внутренним содержанием файла initrd можно вернуться к рассмотрению его роли в процессе загрузки.
3.2.2. Загрузка системы в случае использования initrd (ядра версий 2.4.х)
Приводимое ниже описание последовательности операций на этапе загрузки я позаимствовал из [11,12].
1. Загрузчик загружает ядро и содержимое initrd в память (очевидно, по вполне определенным адресам . ), после чего передает управление ядру.
2. Ядро содержит в себе небольшую несжатую часть, которая вначале разархивирует само ядро. Видимо как раз на этом этапе на экране монитора отображается сообщение "Uncompressing Linux. Ok, booting the kernel."
3. Ядро инициализирует устройства, создает файловую систему устройств /dev, разархивирует initrd и копирует его содержимое на устройство /dev/ram0, а затем освобождает память, занятую initrd.
4. Ядро монтирует устройство /dev/ram0 для чтения и записи в качестве начальной корневой файловой системы.
5. Если в начальной корневой файловой системе находится исполняемый файл /linuxrc, он исполняется с uid 0. Этот файл должен иметь разрешения на исполнение, он может быть как обычным исполняемым файлом, так и просто скриптом оболочки, но в последнем случае должен быть и интерпретатор скриптов.
6. Cкрипт /linuxrc монтирует нормальную корневую файловую систему.
7. Корневая файловая система помещается в корневую директорию. Смена корневого устройства выполняется системным вызовом pivot_root, который также доступен через утилиту pivot_root (см. pivot_root(8); pivot_root распространяется в составе util-linux версии не ниже 2.10h ). Смена корневой директории не включает её демонтирование. Следовательно, при выполнении данной процедуры можно сохранить процессы, запущенные с файловой системы initrd.
8. Если нормальная корневая файловая система имеет каталог /initrd, то устройство /dev/ram0 перемещается из / в /initrd. Иначе, если каталог /initrd не существует, устройство /dev/ram0 размонтируется.
9. На нормальной корневой файловой системе следует обычная процедура загрузки (например, вызов /sbin/init).
10. Теперь можно демонтировать /dev/ram0 и освободить память, занятую RAM диском.
3.2.3. Initramfs - новая модель инициализации (ядра версий 2.6.х)
Все сказанное выше относительно процедур загрузки и использования файла initrd справедливо для ядер версии 2.4.xx и более ранних. В ядрах версии 2.6 (а точнее, начиная с экспериментального ядра версии 2.5.46) разработчики решили реализовать иной механизм. Причиной послужили несколько недостатков ранее использовавшегося варианта реализации временной корневой файловой системы.
Во-первых, виртуальный диск, как и все блочные устройства, требует драйвер файловой системы для интерпретации данных во время выполнения. Этот драйвер приходилось включать в ядро.
Во-вторых, неэфективно используется оперативная память, так как размер виртуального диска фиксирован и не может изменяться во время работы без его переформатирования (даже если диск не заполнен, невозможно отдать эту память под другие нужды).
В третьих, в Linux осуществляется кэширование всех файлов и записей каталогов, прочитанных или записанных на блочное устройство. Виртуальный диск тоже кешируется, как и обычные диски, то есть часть данных будет храниться не только на RAM диске, но и в страничном кэше "page cache" (для файловых данных) и в кэше для записей каталогов "dentry cache", что еще больше снижает эффективность использования памяти.
- Система, использующая initramfs в качестве корневой файловой системы, более не нуждается в соответствующем драйвере файловой системы, встроенном в ядро, так как нет блочных устройств для интерпретации файловых систем.
- Размер этой файловой системы автоматически изменяется в соответствии с обьёмом данных, которые она содержит. При добавлении новых файлов (как и при расширении существующих) автоматически выделяется память, при удалении или уменьшении файла происходит высвобождение памяти.
- Достоинством initramfs является также то, что это не новый код, а новое применение уже существующего кода кэширования ядра Линукс, что практически не влечёт увеличение размера ядра, выполнение будет очень простым и основано на чрезвычайно хорошо протестированной инфраструктуре.
- Исчезают некоторые проблемы загрузки с SATA-дисков.
- Initramfs загружается немного быстрее, чем initrd.
/bin /dev /etc /lib /loopfs /proc /sbin -> bin /sys /sysroot
#!/bin/nash mount -t proc /proc /proc setquiet echo Mounted /proc filesystem echo Mounting sysfs mount -t sysfs /sys /sys echo Creating /dev mount -o mode=0755 -t tmpfs /dev /dev mknod /dev/console c 5 1 mknod /dev/null c 1 3 mknod /dev/zero c 1 5 mkdir /dev/pts mkdir /dev/shm echo Starting udev /sbin/udevstart echo -n "/sbin/hotplug" > /proc/sys/kernel/hotplug echo "Loading jbd.ko module" insmod /lib/jbd.ko echo "Loading ext3.ko module" insmod /lib/ext3.ko /sbin/udevstart echo Creating root device mkrootdev /dev/root echo Mounting root filesystem mount -o defaults,errors=remount-ro --ro -t ext3 /dev/root /sysroot echo Switching to new root switchroot --movedev /sysroot
initrd
initrd ( INITial RamDisk ) и initramfs ( INITial RAM filesystem ) - это два типа образов файловой системы, которые позволяют использовать механизмы для создания минимального временного корневого каталога, загружаемого в RAM при загрузке ядра Linux . Эти механизмы используются для подготовки операционной системы перед установкой реальной корневой файловой системы, содержащей остальную часть операционной системы, с использованием точки монтирования .
Во встроенных вычислениях обычно вся операционная система находится в этом минимальном корневом каталоге по причинам производительности и времени загрузки. Этот образ, загруженный в память, затем содержит всю операционную систему. В этом случае любые изменения, внесенные в системный корень, будут потеряны после перезапуска.
Резюме
- 1 Справочная информация
- 2 Использование
- 2.1 initrd
- 2.2 initramfs
Контекст
Многие дистрибутивы Linux основаны на одном общем ядре, которое разработчики дистрибутива установили таким образом, чтобы они могли работать в самых разных системах. Это ядро содержит минимальное количество периферийных драйверов, чтобы иметь возможность правильно запускаться, ограничивая его окончательный размер.
Другие драйверы устройств (диски, SCSI , сети и т. Д.) Затем принимают форму модулей ядра, которые можно вставлять в горячем режиме, потому что включение всех возможных и мыслимых драйверов в само ядро приведет к созданию ядра большого размера, даже слишком большого. для использования на машинах с ограниченным объемом оперативной памяти. Тогда возникает вопрос, какие из этих модулей необходимы на самом раннем этапе запуска системы, например, модули для монтирования основной файловой системы, которая содержит остальную часть дистрибутива.
Чтобы избежать необходимости перекомпилировать ядро для интеграции конкретного модуля непосредственно в него, используется промежуточный этап загрузки, называемый ранним пользовательским пространством, с использованием временной корневой файловой системы, такой как initramfs или initrd. Эта временная корневая файловая система может содержать служебные программы пользовательского пространства для обнаружения оборудования во время загрузки, необходимых модулей ядра и других средств автоматического обнаружения, чтобы можно было настроить настоящую корневую файловую систему.
использовать
Образ этой начальной корневой файловой системы (а также образ ядра Linux) должен быть размещен в месте, доступном для используемого загрузчика Linux (например, GRUB или U-Boot ) или загрузочной прошивки (см. UEFI ). Это место часто принимает форму небольшого выделенного раздела на локальном диске с именем /boot и форматированием, как правило, ext2 (или FAT32 в контексте системы UEFI). Это также может быть удаленное место, доступное по TFTP для загрузчиков, которые могут запускаться через канал Ethernet (см. Бездисковую систему (in) ).
Образ часто имеет форму файла с именем initrd.img- , даже если это фактически initramfs.
Затем загрузчик загрузит ядро и временную корневую файловую систему в оперативную память системы и передаст системный адрес ядру. В конце этой последовательности ядро затем пытается определить формат временной корневой файловой системы, переданной в качестве параметра, просматривая свои первые блоки данных, которые позволяют узнать, имеем ли мы дело с initrd или initramfs.
initrd
В случае initrd образ представляет файловую систему (возможно, сжатую), которая доступна на специальном блочном устройстве /dev/ram0 . Затем он монтируется как начальная корневая файловая система. Драйвер устройства для его монтирования должен обязательно присутствовать в самом ядре (например, cramfs или более поздняя SquashFS ).
Многие дистрибутивы изначально использовали для этой цели сжатую файловую систему ext2. Другие (например, Debian 3.1) предпочитали файловую систему cramfs только для чтения, чтобы обеспечить загрузку систем с небольшим объемом оперативной памяти. Действительно, образ cramfs может быть непосредственно смонтирован в горячем режиме без необходимости резервировать место для декомпрессии. С тех пор SquashFS заменил cramfs почти во всех случаях использования.
После того, как начальная корневая файловая система смонтирована, ядро запускается /linuxrc как первый процесс. Его роль - настроить настоящую корневую файловую систему. Когда этот сценарий завершается, ядро проверяет, правильно ли он смонтирован, и /sbin/init запускает запуск пользовательской части. Если не удалось смонтировать корневую файловую систему, может возникнуть ошибка паники ядра .
initrd использовался Debian до ядра 2.4 до использования initramfs из ядра 2.6. Этот механизм также использовался в ArchLinux , Mandriva и Ubuntu .
initramfs
В случае initramfs (доступного с Linux 2.6) образ находится в форме архива cpio (возможно, сжатого). Архив распаковывается ядром в специальный экземпляр tmpfs, который затем становится начальной корневой файловой системой.
После того, как последний смонтирован, ядро запускается /init как первый процесс, управляющий пользовательской частью.
По сравнению с initrd, этот метод имеет то преимущество, что не требует промежуточной файловой системы и, следовательно, интеграции драйверов устройств, которые идут с ним, в ядро.
Некоторые системы используют dracut для создания этого образа initramfs.
В зависимости от алгоритмов сжатия, встроенных в компиляции ядра, ядро может распаковывать образ initramfs, изначально сжатый в форматах gzip , bzip2 , LZMA , XZ , LZO и LZ4 .
Внешние ссылки
- (ru) initrd (4) справочная страница
- (in) ramfs, rootfs и initramfs
Примечания и ссылки
- ↑ (in) Джин Салли, « Обзор встроенных файловых систем Linux для» на elinux.org , Timesys (по состоянию на 28 апреля 2020 г. ) , стр. 18
- ↑ (в) Роб Ландли, « Вынося initramfs, новая модель для исходных дисков RAM » на linuxdevices.com , LinuxDevices , 15 марта 2006 г. (по состоянию на 28 апреля 2020 г. ) : « Одна особенно интересная особенность для разработчиков встраиваемого Linux заключается в том, что относительно простые глубоко встраиваемые системы могут использовать initramfs в качестве единственной файловой системы. "
- ↑ (in) Вернер Альмесбергер , « Загрузка Linux: история и будущее » [«Запуск Linux: история и будущее»] [ архив 24 июля 2008 г. ] , на сайте www.linuxsymposium.org , Proceedings of the Ottawa Linux Symposium , 2000 г.
- ↑ (in) Роб Лэндли, « Представляем initramfs, новую модель для начальных RAM-дисков » [«Введение в initramfs, новую модель для initrd»]
- ↑ (in) " linux / do_mounts_initrd.c # 74 at 4f671fe2f9523a1ea206f63fe60a7c7b3a56d5c7 " на git.kernel.org (по состоянию на 28 апреля 2020 г. ) : " info = call_usermodehelper_setup("/linuxrc", argv, envp_init, GFP_KERNEL, init_linuxrc, NULL, NULL); '
- ↑" initrd " , на wiki.debian.org , Wiki Debian(по состоянию на 28 апреля 2020 г. )
- ↑ a и b (in) Роб Лэндли , « ramfs, rootfs и initramfs » в дереве исходных текстов ядра Linux на kernel.org , 17 октября 2005 г. (по состоянию на 28 апреля 2020 г. )
- ↑ (in) Ричард Лиланд Петерсен, Fedora 13: Администрирование, Сеть, Безопасность , Surfing Turtle Press ( ISBN978-1-936280-02-5 , читать онлайн ) , стр. 76 :
" Dracut использует параметры ядра, перечисленные в командной строке ядра GRUB, для настройки файловой системы RAM initramfs на лету, обеспечивая большую гибкость и дополнительно сокращая код файловой системы RAM. "