嵌入式开发过程中的文件系统制作,往往是使用已经定制好的目录及文件进行制作,下面以实际的例子进行说明:
假设当前目录为rootdir,目录结构如下:
root@debian:~# tree -L 2 rootdir
rootdir
|-- dev
|-- drv
| |-- drv1
| `-- drv2
|-- etc
`-- proc
4 directories, 2 files
现在我们想把rootdir的内容制作成一个文件系统,但是又不是使用rootdir的全部内容,而只有drv内容,操作如下:
cd rootdir
find . \( -path "./dev" -o -path "./etc" \) -prune -o -print | cpio -o -O ../rootimg.cpio
可以看到生成了一个rootimg.cpio文件,现在我们创建一个文件系统:
#创建一块32MB大小的数据空间
dd if=/dev/zero of=root.img bs=1024 count=32000
#把数据空间制作成文件系统
mkfs.ext4 -F root.img >/dev/null
#创建临时目录
mkdir tmpdir
#挂载文件系统
mount -o loop root.img tmpdir
#把需要使用的文件和目录解压到目录
cd tmpdir
cpio -id -I ../root.cpio
可以看到tmpdir的目录结构如下: