Это старая версия документа.
Перепаковка initrd
Определение типа компрессии
file initrd.img initrd.img: XZ compressed data
Вместо xz может быть gz, lzma
Распаковка
mkdir /tmp/initramfs cd /tmp/initramfs xz -dc ../initrd.img | cpio -i -d -H newc --no-absolute-filenames
При других типах компрессии вместо xz -dc :
- zcat (gz компрессия)
- lzma -dc -S .img (lzma компрессия)
Для свежих initrd ubuntu или
#!/bin/bash #https://unix.stackexchange.com/questions/163346/why-is-it-that-my-initrd-only-has-one-directory-namely-kernel target=$1 offset=$(binwalk -y gzip $1 | awk '$3 ~ /gzip/ { print $1; exit }') shift dd if=$target bs=$offset skip=1 | zcat | cpio -id --no-absolute-filenames $@
Упаковка
В ранее созданном каталоге
cd /tmp/initramfs find . |cpio -o -H newc |xz --check=crc32 --x86 --lzma2 > initrd-new.img
При других типах компрессии вместо xz –check=crc32 –x86 –lzma2 :
- gzip -9 (gz компрессия)
- lzma -7 (lzma компрессия)