Wiki od rinitrd - wiki на

Цей документ описує, як створити і встановити initrd, який може знадобитися для використання ядра версій 4.х. Дивіться також «man mkinitrd».

Що таке Initrd?

initrd розшифровується як «initial ramdisk» (початковий віртуальний диск). Початковий віртуальний диск, це дуже маленька файлова система Linux, яка завантажується в оперативну пам'ять і монтується в якості завантажувача ядра, перед монтуванням основної кореневої файлової системи.

Навіщо мені потрібен initrd?

Звичайною причиною для використання initrd є те, що вам потрібно завантажити модулі ядра перед установкою кореневого розділу. Як правило, ці модулі, необхідні для підтримки файлової системи використовується кореневих розділом (ext3, ext4, btrfs, XFS), або контролера, жорсткого диска який підключений до (SCSI, RAID, і т.д.). По суті, є дуже багато різних опцій, доступних в сучасних Linux ядрах, але не практично намагатися завантажувати різні ядра для того, щоб задовольнити потреби кожного. Набагато більш гнучким рішенням буде завантаження стандартного ядра і набору модулів для нього.

Як я можу створити Initrd?

Найпростіший спосіб створити initrd це використовувати скрипт mkinitrd. включений в пакет Slackware, який так і називається «mkinitrd». Ми пройдемо через процес оновлення до generic 4.4.14 Linux ядра за допомогою пакетів які знаходиться в каталозі slackware / a /.

По-перше, переконайтеся, що ядро, модулі ядра, і пакет mkinitrd встановлені (поточний номер версії може бути трохи інший, так що це просто приклад):

Перейдіть в каталог / boot:

Тепер потрібно буде запустити «mkinitrd». Я використовую ext4 для кореневої файлової системи, і так як контролер диска не вимагає спеціальної підтримки, то мені, для завантаження, потрібен буде тільки один модуль ext4.

Ця команда зробить дві речі. Перш за все, створить каталог / boot / initrd-tree, що містить файлову систему initrd. А потім створить сам initrd (/boot/initrd.gz) з цього дерева. Якщо ви хочете, то можете зробити деякі додаткові зміни в / boot / initrd-tree /, а потім запустити mkinitrd знову без опцій, щоб перебудувати образ. Це необов'язково робити, хоча, тільки досвідченим користувачам потрібно буде думати про це.

Ось ще один приклад: Створення образу initrd за допомогою Linux 4.4.14 модуля ядра для системи з ext4 на кореневий розділ / dev / sdb3:

Тепер, коли я створив Initrd, як я можу його використовувати?

Тепер, коли ви отримали Initrd (/boot/initrd.gz), то захочете завантажити його разом з ядром під час завантаження. Якщо ви використовуєте завантажувач LILO, то вам потрібно відредагувати файл /etc/lilo.conf і додати рядок для завантаження Initrd. Ось приклад розділу lilo.conf, що показує, як це робиться:

Initrd завантажується в рядку «initrd = /boot/initrd.gz». Просто додайте цей рядок прямо під рядком використовуваного способу ядра. Збережіть файл, а потім запустити LILO знову (набравши «lilo» в командному рядку). Вам потрібно запускати «lilo» кожен раз, коли ви редагуєте lilo.conf або перебудувати Initrd.

Initrd завантажується в рядку «initrd = /boot/initrd.gz». Просто додайте цей рядок прямо під рядком використовуваного способу ядра. Збережіть файл, а потім запустити LILO знову (набравши «lilo» в командному рядку). Вам потрібно запускати «lilo» кожен раз, коли ви редагуєте lilo.conf або перебудувати initrd.

Інші завантажувачі, такі як SYSLINUX також підтримують використання initrd. Для подробиць, дивіться документацію за цими програмами про використання initrd з ними.

Схожі статті