萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

如何判斷 Linux 映像檔類型:file 指令識別 gzip/cpio/ext2/data 格式

核心原則:Linux 檔案類型由內容決定,非副檔名

使用 file 指令準確識別映像檔真實格式:

常見映像檔類型識別範例

檔案類型file 輸出範例處理方式
gzip 壓縮initramfs.gz: gzip compressed data, from Unix, last modified: ...gunzip 或 zcat 解壓
cpio 封存 (ASCII)tinycore.cpio: ASCII cpio archive (SVR4 with no CRC)cpio -id < file 解壓
cpio 封存 (新格式)initramfs.cpio: ASCII cpio archive (SVR4 with no CRC)同左
ext2/ext3/ext4 檔案系統映像redhat-initrd: Linux rev 1.0 ext2 filesystem datamount -o loop 掛載
未知/原始資料rootfs.gz: data需進一步分析 (可能為壓縮後的 cpio/ext2)

initrd (傳統檔案系統映像) 檢視流程


# 1. 確認類型
file initrd.img
# 輸出: gzip compressed data -> 先解壓
# 輸出: Linux rev 1.0 ext2 filesystem data -> 直接掛載

# 2. 若為 gzip,解壓
gunzip -c initrd.img > initrd.img.dec
# 或
gzip -dc initrd.img > initrd.img.dec

# 3. 掛載檢視/修改
mkdir /mnt/initrd
mount -o loop initrd.img.dec /mnt/initrd
# 此時為唯讀掛載,若需修改需複製內容重建
cp -a /mnt/initrd /tmp/initrd-work
# 修改 /tmp/initrd-work 內容
# 重建參考「生成 initrd 映像」文檔

initramfs (cpio 封存) 檢視流程


# 1. 確認類型
file initramfs.img
# 輸出: gzip compressed data -> 先解壓
# 輸出: ASCII cpio archive -> 直接解包

# 2. 若為 gzip,先解壓
gunzip -c initramfs.img > initramfs.cpio

# 3. 解包 cpio 到當前目錄
cpio -id < initramfs.cpio
# -i: extract, -d: create directories
# 若壓縮時用相對路徑,解出結構保持相對

# 4. 圖形介面替代方案
# 桌面環境雙擊 .cpio 檔,檔案管理器可直接瀏覽 (如 GNOME Files、KDE Dolphin)

重建 initramfs 映像


# 在解包後的根目錄下
find . | cpio -o -H newc | gzip > ../new-initramfs.cpio.gz
# -H newc: 新式 cpio 格式 (核心支援最佳)

快速識別腳本


#!/bin/sh
# identify-img.sh
for f in "$@"; do
    echo "=== $f ==="
    file "$f"
    case "$(file -b "$f")" in
        "gzip compressed data"*)
            echo "-> gzip compressed, decompress first"
            ;;
        "ASCII cpio archive"*)
            echo "-> cpio archive, use 'cpio -id < $f'"
            ;;
        "Linux rev 1.0 ext"*)
            echo "-> ext2/3/4 filesystem image, use 'mount -o loop'"
            ;;
        "data"*)
            echo "-> raw data, try gzip then cpio"
            ;;
    esac
done

掌握 file、gzip/gunzip、cpio、mount -o loop 四大工具,即可應對所有 initrd/initramfs 映像檔檢視與修改需求。

copyright © 萬盛學電腦網 all rights reserved