ramdisk.img 格式【解压/压缩】
1、查看ramdisk.img 格式
[root@localhost ramdisk]# file ramdisk.img ramdisk.img: u-boot legacy uImage, ramdisk, Linux/ RAMDisk Image (gzip), 24477522 bytes, Wed Apr 19 18:10:25 2023, Load Address: 0x10000000, Entry Point: 0x10000000, Header CRC: 0xEDB56EAE, Data CRC: 0x2B30F69D
2、去掉ramdisk 的头
[root@localhost ramdisk]# dd if=ramdisk.img of=ramdisk bs=64 skip=1 382461+1 records in 382461+1 records out 24477522 bytes (24 MB) copied, 0.96834 s, 25.3 MB/s
3、查看去头后的ramdisk 格式
[root@localhost ramdisk]# file ramdisk ramdisk: gzip compressed data, was "ramdisk", from Unix, last modified: Wed Apr 19 18:10:12 2023, max compression
4、解压ramdisk
[root@localhost ramdisk]# mv ramdisk ramdisk.gz [root@localhost ramdisk]# gunzip -v ramdisk.gz ramdisk.gz: 90.9% -- replaced with ramdisk
5、查看解压后的ramdisk 格式
[root@localhost ramdisk]# file ramdisk ramdisk: Linux rev 1.0 ext4 filesystem data, UUID=a05e3c7e-a748-4ee7-accb-da2a0de89e15 (extents) (64bit) (large files) (huge files)
6、挂载ext4文件系统
[root@localhost ramdisk]# mount -o loop ramdisk /root/ramdisk_rootfs
7、查看/操作 ramdisk 文件系统里面的文件
[root@localhost ]# ls /ramdisk_rootfs/ bin dev lib linuxrc media opt root sbin tmp var configs etc lib64 lost+found mnt proc run sys usr
8、解除操作
[root@localhost ]# umount ramdisk_rootfs/
9、从新压缩ramdisk
[root@localhost ]# gzip -c ramdisk > ramdisk.gz
10、从新打包ramdisk.img
[root@localhost ]# mkimage -n "ramdisk" -A arm64 -O linux -T ramdisk -a "地址1" -e "地址2" -C gzip -d ramdisk.gz ramdisk.img
注意:
-a
(加载地址):通常必需,指定镜像的加载位置。-e
(入口点地址):通常必需,指定镜像的执行起始地址。- mkimage 在 centos 上需要安装 yum install uboot-tools (其他环境类似)
11、参考
https://blog.csdn.net/hanglinux/article/details/51438597