解压并更新 ramdisk.img 或 initrd.img
ramdisk.img
或者 initrd.img
是类似的,都是一个小型的文件系统。在系统启动过程中起到引导的作用,内核通过它来启动真正的根文件系统。
有时候需要修改并更新这个文件,下面以ramdisk.img
为例进行说明。
解压 ramdisk.img
ramdisk.img
其实是一个gz
格式的压缩包,可以通过 gzip -d
或者 gunzip
解压,不过需要注意的是 gzip
, gunzip
会检查文件名后缀,所以需要先将后缀更新为 .gz
. 下面将其解压至新建的 root
目录。
$ cp ramdisk.img ramdisk.gz
$ gzip -d ramdisk.gz
$ mkdir root
$ mv ramdisk root
$ cd root
$ cpio -i -F ramdisk
$ rm ramdisk
$ ls -F
bin/ conf/ etc/ init* lib/ run/ sbin/ scripts/ usr/ var/
之后只需要在 root 目录更新即可,增添、删除、修改均可。
更新 ramdisk.img
修改完成后需要重新生成 ramdisk.img
,步骤如下。
find . |cpio -o -H newc -O ../ramdisk
cd ..
gzip -v9 ramdisk
mv ramdisk.gz ramdisk.img
这样就完成了。
说明
嵌入式系统下的 ramdisk
有其特定的文件格式,比如 arm
平台,还分 armhf
和 aarch64
两个版本,需要添加相同架构的文件才能正确执行。
版权声明:本博客所有文章除特殊声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明出处 litreily的博客!