ramdisk 文件系统的解压与还原

1.通过file ramdisk.gz命令目标文件是否为ramdisk文件系统查看如下:

~/workspace/s32v/uimg » file rootfs.uimg 
rootfs.uimg: u-boot legacy uImage, fsl-image-nfs-initramfs-s32v234e\037\213\010\010\273\330\302Z\002\003fsl-image-nfs-initramfs-s32v234evb-20180403012440.roo, Linux/ARM 64-bit, RAMDisk Image (gzip), 4113365 bytes, Tue Apr  3 01:28:28 2018, Load Address: 0x00000000, Entry Point: 0x00000000, Header CRC: 0x260809A7, Data CRC: 0x18615E72

或者通过dumpimage -l rootfs.uimg

~/workspace/s32v/uimg » dumpimage -l rootfs.uimg
Image Name:   fsl-image-nfs-initramfs-s32v234e
Created:      Tue Apr  3 09:28:28 2018
Image Type:   AArch64 Linux RAMDisk Image (gzip compressed)
Data Size:    4113365 Bytes = 4016.96 KiB = 3.92 MiB
Load Address: 00000000
Entry Point:  00000000
  1. 通过 dd if=rootfs.uimg of=rootfs.gz bs=64 skip=1 命令将头部64字节的数据给去除,可以还原到gzip的包头。
~/workspace/s32v/uimg » dd if=rootfs.uimg of=rootfs.gz bs=64 skip=1
64271+1 records in
64271+1 records out
4113365 bytes (4.1 MB, 3.9 MiB) copied, 0.163262 s, 25.2 MB/s

通过 file 命令查看是否还原正确,输出以下信息,可以看到文件已变成了gzip文件。

~/workspace/s32v/uimg » file rootfs.gz
rootfs.gz: gzip compressed data, was "fsl-image-nfs-initramfs-s32v234evb-20180403012440.rootfs.cpio", last modified: Tue Apr  3 01:28:27 2018, max compression, from Unix
----

可知ramdisk.gz实际为ramdisk.img,且增加了u-boot头,64Bytes大小


image.png
  1. 通过gunzip rootfs.gz 命令解压文件(这个时候没有任何输出),然后通过 file命令看文件已解压成CPIO文件。
~/workspace/s32v/uimg » file rootfs 
rootfs: ASCII cpio archive (SVR4 with no CRC)

  1. 通过cpio解压
 mkdir tmp
 cd tmp/
 sudo cpio -idv < ../rootfs
 ls
-----------------------------------------------------------------------
bin   dev  home  lib      media  proc  sbin  tmp  var
boot  etc  init  linuxrc  mnt    run   sys   usr

此时已将ramdisk.gz文件解压为目录形式,可进行相应修改。
为方便使用制作成简易执行脚本,保存以下内容为unimage.sh 然后chmod 755 unimage.sh 添加可执行权限。
运行方法 unimage.sh rootfs.uimg

#!/bin/bash
dd if=$1 of=rootfs.gz bs=64 skip=1
gunzip rootfs.gz
mkdir tmp
cd tmp
cpio -idv < ../rootfs
  1. 重新打包,步骤与解压相反。
cd tmp
find . | cpio -o --format=newc > ../rootfs.img
cd ..
gzip -c rootfs.img > rootfs.img.gz
mkimage -A arm64 -C none -O linux -T ramdisk -d rootfs.img.gz -a 0x84000000 \
    -e 0x84000000 rootfs.uimg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容