ARM实验之根文件系统rootfs介绍及镜像制作

简介:

根文件系统就是文件目录和文件,根文件系统可由任何一个空文件夹添加必要文件构成而成,在kernel启动后挂载。

镜像文件形式的根文件系统主要目的是用来烧录到块设备上,镜像使用专用的工具制作。

制作文件系统用到的工具:

mke2fs:相当于一个压缩软件,Ubuntu默认安装了,是用来制作镜像格式的根文件系统的。在终端输入mke2fs可输出以下结果,表示有mke2fs软件。

root@ubuntu:/home/adil/rootfs_test# mke2fs
Usage: mke2fs [-c|-l filename] [-b block-size] [-C cluster-size]
	[-i bytes-per-inode] [-I inode-size] [-J journal-options]
	[-G flex-group-size] [-N number-of-inodes]
	[-m reserved-blocks-percentage] [-o creator-os]
	[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]
	[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]
	[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-count]

dd:dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。用到的参数有

  • if =输入文件(或设备名称)。
  • of =输出文件(或设备名称)。
  • bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs)。
  • count=blocks 只拷贝输入的blocks块。
  • 其他用法自己查

示例:创建一个空文件大小1024*2048: dd if=/dev/zero of=rootfs.ext2 bs=1024 count=2048

losetup:losetup命令用于设置循环设备。循环设备可把文件虚拟成区块设备,籍以模拟整个文件系统,让用户得以将其视为硬盘驱动器,光驱或软驱等设备,并挂入当作目录来使用。

参数:-d 卸除设备。

示例:使用 losetup将磁盘文件虚拟成快设备:losetup  /dev/loop1 rootfs.ext2

mount:mount 命令用来挂载文件系统。其基本命令格式为:

  • mount -t type [-o options] device dir
  • type:指定挂载的文件系统类型,一般不用指定,mount 命令能够自行判断。
  • options:指定挂载参数,比如 ro 表示以只读方式挂载文件系统。
  • device:指定要挂载的设备,比如磁盘、光驱等。
  • dir:指定把文件系统挂载到哪个目录。

示例:mount -t ext2 /dev/loop1 ./rootfs/

制作文件系统:

第一步、挂载文件

mkdir rootfs (后面文件系统就挂载在这里)

dd if=/dev/zero of=rootfs.ext2 bs=1M count=128(制作128MB大小的根文件系统)

losetup  /dev/loop1 rootfs.ext2 (如果loop1已被使用,可以使用loop2等。)

mke2fs -m 0 /dev/loop1 128

mount -t ext2 /dev/loop1 ./rootfs/

目前为止,向rootfs文件夹写入文件就等同于向rootfs.ext2文件里写文件。

第二步、写入必要的文件

写入启动时必要的文件,包括可以执行的linuxrc程序,然后还要添加别的/lib目录下的库文件,/etc目录下的配置文件等,内容较多另写一篇文章。

第三步、卸载文件

umount /dev/loop1

losetup -d /dev/loop1

制作完成

将完成的根文件提取出来,烧录到存储器中。

 

实验现象:

如果我们只烧录了内核,而没有烧录文件系统,那么启动信息如下,没有挂载文件系统,最终尝试重启

ARM实验之根文件系统rootfs介绍及镜像制作_第1张图片

下一步fastboot烧录我们制作好的根文件系统(缺少必要文件的根文件系统)

启动信息如下,这次VFS虚拟文件系统挂载成功,但是运行linuxrc文件失败,因为制作rootfs时没有添加linuxrc和一些必要文件,这部分内容写在下一篇文章

ARM实验之根文件系统rootfs介绍及镜像制作_第2张图片

 

你可能感兴趣的:(Uboot,and,Kernel)