48 lines
2.3 KiB
Markdown
48 lines
2.3 KiB
Markdown
# 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`)
|