ramdisk.image.gz根文件系统其格式与uboot不同,启动时uboot会提示ramdisk格式错误,若要让uboot能够识别ramdisk.image.gz根文件系统,需要利用mkimage给ramdisk.image.gz添加一些头部信息,生成uramdisk.image.gz,方法如下:
1、将编译uboot时生成的tools目录下的mkimage拷贝到交叉编译器的bin目录中(相当于添加到环境变量中)
若忘记交叉编译器的安装目录,可用“which is 交叉编译器名” 的方法找出,如:
然后将mkimage拷贝到此目录的bin下即可。
2、使用如下命令生成uramdisk.image.gz:mkimage -n 'uboot ext2 ramdisk' -A arm -O Linux -T ramdisk -C gzip -d ramdisk.img.gz
uramdisk.image.gz
经过测试由以上方法生成的uramdisk.image.gz完全可以正常使用。
由uramdisk.image.gz生成ramdisk.image.gz的方法:
假如我手上有一个uramdisk.image.gz的文件系统,我想获取其内部的内容,这个时候步骤应该是解压--->挂载。但是由于mkimage工具是在ramdisk.img.gz的头部添加了64字节的uboot信息来生成uramdisk.image.gz(破坏了压缩格式),所以此时无法直接解压。可以直接使用Uedit32编辑器(或使用某些命令如dd)删除掉uramdisk.image.gz头部的64字节,然后重命名为ramdisk.img.gz。此时就可以使用gunzip解压为ramdisk.img,再进行挂载就可以了。
此方法笔者没有验证,不知道是不是可行。