diff --git a/README.md b/README.md index ae57d8c..286da14 100644 --- a/README.md +++ b/README.md @@ -3,31 +3,7 @@ **Информация систематизируется и постоянно дополняется!** ## [Linux](linux) - -- [Установка софта в Linux](linux/soft.md) -- [Права доступа](linux/chmod.md) -- [Настройка сети](linux/network.md) -- [Настройка SSH](linux/ssh.md) - - [Копирование файлов на удалённый сервер через SSH](linux/scp.md) -- [Анализ трафика (tcpdump)](linux/tcpdump.md) -- [Мониторинга и анализа трафика (ngrep)](linux/ngrep.md) - -## [Базы данных](databases) - -- [PostgreSQL](databases/postgresql.md) - ## [Программирование](programming) - -- [Работа с библиотеками](programming/libs.md) - -### [Язык программирования C](programming/c) - -- [Компиляция C](programming/c/c_compilation.md) - -### [Язык программирования D](programming/d) - -- [Проект dub.json](programming/d/dub.md) - ## [Программы](program) - -- [Asterisk](program/asterisk.md) +## [Базы данных](databases) +## [Мануалы](manuals) diff --git a/manuals/README.md b/manuals/README.md new file mode 100644 index 0000000..33c965f --- /dev/null +++ b/manuals/README.md @@ -0,0 +1,3 @@ +# Мануалы + +## [initrd (Initial RAM Disk)](initrd.md) \ No newline at end of file diff --git a/manuals/initrd.md b/manuals/initrd.md new file mode 100644 index 0000000..07b8302 --- /dev/null +++ b/manuals/initrd.md @@ -0,0 +1,47 @@ +# 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`)