====== Перепаковка initrd ====== [[wpru>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 компрессия) *zstd -dc (zstd компрессия) Для [[http://manpages.ubuntu.com/manpages/bionic/man8/unmkinitramfs.8.html|свежих 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 компрессия) *zstd -f -18 (zstd компрессия)