Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Rozbalení a zabalení initrd.lz  (Přečteno 3347 krát)

Ventero

  • Závislák
  • ***
  • Příspěvků: 3538
Rozbalení a zabalení initrd.lz
« kdy: 04 Prosince 2017, 16:26:15 »
Pro ty, kteří by si chtěli modifikovat initrd a řešili by stejný problém jsem setavil stručný návod a snad bude nápomocen ...

Během svých pokusů jsem se setkal s tím, že klasickým jednorázovým způsobem zabalením modifikovaného initrd.lz
Kód: [Vybrat]
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ~/xub1464rd.lz proběhlo s chybovým hlášením, např.
Kód: [Vybrat]
cpio: ./etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf: Cannot stat: Adresář nebo soubor neexistuje
cpio: ./etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf: Cannot stat: Adresář nebo soubor neexistuje
a znovu zabalený initrd nebyl funkční.

Hodně mě to natrápilo a hledal jsem různé varianty a různé komprimační a dekomprimační moduly. Vždy to skončilo nefunkčním initrd. Nakonec mě napadlo - ani nevím přesně proč a jak - že zabalení rozdělím do dvou fází a vynechám parametry. Pak už zabalení proběhlo bez jakékoliv chyby a výsledný modifikovaný initrd.lz fungoval správně:

1. vytvořit složku pro rozbalení initrd.lz, např. ~/Linux/initrd-tmp
 2. kopírovat ze složky casper inst. média soubor initrd.lz např.
    do složky ~/Linux a přejmenovat např. na initrd.old
 3. cd ~/Linux/initrd-tmp
 4. lzma -dc -S .lz ~/Linux/initrd.old | cpio -id
 5. provést chtěnou modifikaci, např. scriptu casper
 6. cd ~/Linux/initrd-tmp
 7. find | cpio -o -H newc > /home/ng/Linux/initrd_new
    - vytvoří se soubor initrd_new typu cpio
 8. cd /home/ng/Linux
 9. lzma -7 initrd_new
    - soubor initrd_new je nahrazen initrd_new.lzma
10. soubor initrd_new.lzma přejmenovat na initrd.lz
11. původní initrd.lz nahradit nově vytvořeným initrd.lz
« Poslední změna: 10 Prosince 2017, 03:42:55 od Ventero »
Zvuky jsou mantrami a myšlenky moudrostí, prostě proto, že se mohou objevovat ...

 

Provoz zaštiťuje spolek OpenAlt.