diff --git a/initrd/bin/unpack_initramfs.sh b/initrd/bin/unpack_initramfs.sh index 12ce32b8..77213118 100755 --- a/initrd/bin/unpack_initramfs.sh +++ b/initrd/bin/unpack_initramfs.sh @@ -90,6 +90,10 @@ unpack_first_segment() { # walking all the compressed blocks. gunzip | unpack_cpio ;; + fd37*) # xz + DEBUG "archive segment $magic: xz" + unxz | unpack_cpio + ;; 28b5*) # zstd DEBUG "archive segment $magic: zstd" # Like gunzip, this will not stop when reaching the end of the @@ -99,6 +103,26 @@ unpack_first_segment() { ;; *) # unknown die "Can't decompress initramfs archive, unknown type: $magic" + # The following are magic values for other compression formats + # but not added because not tested. + # TODO: open an issue for unsupported magic number reported on die. + # + #425a*) # bzip2 + # DEBUG "archive segment $magic: bzip2" + # bunzip2 | unpack_cpio + #;; + #5d00*) # lzma + # DEBUG "archive segment $magic: lzma" + # unlzma | unpack_cpio + #;; + #894c*) # lzo + # DEBUG "archive segment $magic: lzo" + # lzop -d | unpack_cpio + #;; + #0221*) # lz4 + # DEBUG "archive segment $magic: lz4" + # lz4 -d | unpack_cpio + # ;; ;; esac ) <"$unpack_archive" >"$rest_archive"