configurations/manuals/initrd.md

48 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# initrd (Initial RAM Disk)
`initrd` - временная файловая система, [используемая ядром Linux](https://www.kernel.org/doc/Documentation/early-userspace/buffer-format.txt) при начальной загрузке.
## Распаковка
С помощью команды `file` определить тип сжатого файла с помощью ключа `-z`, просмотрев его внутренности:
```sh
file -z initrd.img
initrd.img: ASCII cpio archive (SVR4 with no CRC) (gzip compressed data, max compression, from Unix)
```
Файл архивирован с помощью `cpio` и сжат с помощью `gzip`. **Для распаковки необходимо переключиться на `root` пользователя.** От имени `root` пользователя выполнять следующий алгоритм по распаковки:
Сменить формат с `img` на `gz`:
```sh
mv initrd.img initrd.gz
```
Выполнить декомпрессию (`-d`) файла:
```sh
gzip -d initrd.gz
```
На выходе будет получен файл `initrd`, который является архивом `cpio`. Следующим шагом необходимо выполнить распаковку (`-i`) архива, в процессе которой будут созданы при необходимости начальные каталоги (`-d`):
```sh
cpio -id < initrd
```
## Создание образа
Находясь в дирктории, файлы и каталоги которой необходимо поместить в образ `initrd`, выполнить команду:
```sh
find . | cpio -o -H newc | gzip -9 > ../initrd.img
```
где
- `find .` - находит ввсе файлы и каталоги в указанной директории (`.`)
- `cpio -o -H newc` - создание архива в режиме *copy-out* (`-o`) указанного [формата буфера](https://www.kernel.org/doc/Documentation/early-userspace/buffer-format.txt) (`-H newc`)
- `gzip -9 > ../initrd.img` - максимальное сжатие (`gzip -9`) и сохранение данных в файле уровнем выше (`../initrd.img`)