Při přidávání nového hardwaru do systému nebo po změně konfiguračních souborů, které mohou být použity dříve v procesu zavádění, nebo při změně možností na modulu jádra může být nutné znovu sestavit původní ramdisk (známý také jako initrd nebo initramfs) zahrnout správné moduly jádra, soubory a konfigurační direktivy. V níže uvedených příkladech uvidíte použití $(uname -r), což je způsob, jak předat aktuální verzi jádra do příkazu, aniž byste ji museli vypisovat.
Postup
1. Nejprve umožněte zálohovat původní počáteční Ramdisk:
# cp /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img.bak
2. Vytvoření nového počátečního ramdisku (po přidání nových modulů do /etc/modprobe.conf nebo /etc/modules.conf pro jádro 2.4):
# mkinitrd -f /boot/initrd-`uname -r`-new.img `uname -r`
Můžete vidět nový počáteční soubor ramdisku initrd-[verze-kernelu]-new.img byl vytvořen v adresáři /boot. parametry mkinitrd (pro více podrobností viz man mkinitrd):
# mkinitrd --help usage: mkinitrd [--version] [--help] [-v] [-f] [--preload [module]] [--force-ide-probe] [--force-scsi-probe | --omit-scsi-modules] [--image-version] [--force-raid-probe | --omit-raid-modules] [--with=[module]] [--force-lvm-probe | --omit-lvm-modules] [--builtin=module] [--omit-dmraid] [--net-dev=interface] [--fstab=fstab] [--nocompress] [initrd-image] [kernel-version]
Nejpoužívanější parametry jsou:
-f Umožňuje mkinitrd přepsat existující soubor obrázku.–preload=module – Načtěte modul modulu do úvodního obrazu ramdisku. Modul se načte před všemi moduly SCSI, které jsou specifikovány v /etc/modprobe.conf. Tuto možnost lze použít tolikrát, kolikrát je potřeba.
–with=module – Načtěte modul modulů do úvodního obrazu ramdisku. Modul se načte po všech modulech SCSI, které jsou specifikovány v /etc/modprobe.conf. Tuto možnost lze použít tolikrát, kolikrát je potřeba.
Pokud jste pro svůj počáteční soubor Ramdisk zvolili nový název, musíte přidat nový záznam do /etc/grub.conf abyste jej mohli používat:
title Red Hat Enterprise Linux 5 (2.6.32-200.13.1.el5) root (hd0,0) kernel /vmlinuz-2.6.32-200.13.1.el5 ro root=LABEL=/ initrd /initrd-2.6.32-200.13.1.el5.img
Poté budete moci při spouštění zvolit položku „New initrd“ v nabídce Grub.
Práce se zálohami
Jak již bylo zmíněno dříve, doporučuje se vytvořit zálohu předchozího initrd pro případ, že by se s novým něco pokazilo. V případě potřeby je možné vytvořit samostatnou položku v /boot/grub/grub.conf pro počáteční bitovou kopii ramdisku zálohy, abyste mohli pohodlně vybrat starou verzi při spouštění bez nutnosti obnovovat zálohu. Tato ukázková konfigurace umožňuje výběr nového nebo starého počátečního obrazu ramdisku z nabídky grub :
title Red Hat Enterprise Linux 5 (2.6.32-200.13.1.el5) root (hd0,0) kernel /vmlinuz-2.6.32-200.13.1.el5 ro root=LABEL=/ initrd /initrd-2.6.32-200.13.1.el5.img title Red Hat Enterprise Linux 5 w/ old initrd (2.6.32-200.13.1.el5) root (hd0,0) kernel /vmlinuz-2.6.32-200.13.1.el5 ro root=LABEL=/ initrd /initrd-2.6.32-200.13.1.el5.img.bak
Alternativně můžete v grub vstoupit do edit-mode, pokud potřebujete vybrat starý initrd a neudělali jste samostatný záznam v grub.conf před restartem. Postup:
Pokud je grub zabezpečen heslem, stiskněte p a zadejte heslo
Pomocí kláves se šipkami zvýrazněte položku pro jádro, které chcete zavést
Stiskněte e pro úpravy
Zvýrazněte řádek initrd a znovu stiskněte e
Změňte cestu pro initrd k záložní kopii, kterou jste vytvořili (jako /initrd-2.6.32-200.13.1.el5.img.bak)
Stiskněte Enter pro dočasné uložení změn jste provedli
Stiskněte b pro spuštění