首页 > 代码库 > 根文件系统移植(2)——根文件系统的两种格式

根文件系统移植(2)——根文件系统的两种格式

一:镜像格式的根文件系统

    (1)镜像文件的根文件系统的主要作用是用来以后烧录到块设备上面的,块设备上的内核启动后去挂载它。

    (2)镜像形式的根文件系统是由文件夹格式的根文件系统通过特定的工具(mke2fs)制作得到的

    (3)镜像文件系统具有一定的格式,格式是内化的,跟文件名后缀是无关,而是在制作时决定的。


二:文件夹格式的根文件系统

    (1)简单来说,文件夹格式的根文件系统其实就是我们开发主机下的一个文件夹而已,不同之处在于这个文件夹里面包含了我们根文件系统所需的内容(包括etc目录下的运行时配置文件、/bin等目录下的可执行程序、/lib目录下的库文件等···

    (2)文件夹格式的根文件系统是没有格式的,它是通过我们的nfs来实现挂载的


三:制作ext2格式的根文件系统

    (1)先mkdir创建一个空的文件夹rootfs,然后通过下面的命令来实现ext2格式的根文件系统的制作

dd if=/dev/zero of=rootfs.ext2 bs=1024 count=2048 
//这里就是创建了一个空的ext2格式的镜像创建的根文件系统的blocksize是1024,大小是2M
losetup  /dev/loop1 rootfs.ext2
//loop 设备是一种伪设备(pseudo-device),或者也可以说是仿真设备。
//它能使我们像块设备一样访问一个文件。
mke2fs -m 0 /dev/loop1 2048
mount -t ext2 /dev/loop1 ./rootfs/
//将我们创建的空的ext2格式的镜像挂载到rootfs这个文件夹中,
//当我们进入到rootfs这个文件夹时就相当于是进到了rootfs.ext2这个镜像中,
//这样就可以往rootfs.ext2这个文件里面放东西了。

(2)当我们将需要的文件放到镜像里面之后,然后执行下面的命令卸载,这个镜像就制作完成了。

umount /dev/loop1
losetup -d /dev/loop1

(3)将我们制作的ext2格式的镜像复制到windows下面,然后使用fastboot将镜像烧录到SD卡中就可以了。


四:挂载文件夹格式的根文件系统

    (1)安装并配置nfs服务器,具体过程百度,需要注意的是,当我们重新设置/etc/export下面的导出目录之后,要更新nfs服务器

    (2)mkdir创建一个空文件rootfs,并touch我们需要的linuxre文件

    (3)内核配置支持nfs启动

//配置网络部分,主要是使能CONFIG_IP_PNP以在2中能够看到Root file system on NFS选项
Networking support
	Networking options
		TCP/IP networking
				IP: kernel level autoconfiguration
					[*] IP: DHCP support
					[*] IP: BOOTP support
					
//配置开启nfs服务
File systems  --->	
	Network File Systems  --->
		<*> NFS client support
		[*] NFS client support for NFS version 3
		[*] NFS client support for NFS version 4 (EXPERIMENTAL)
		[*] NFS client support for NFSv4.1 (DEVELOPER ONLY)
		[*] Root file system on NFS

    (4)修改bootargs

setenv bootargs root=/dev/nfs nfsroot=192.168.1.141:/x210_kernel/rootfs/rootfs 
ip=192.168.1.10:192.168.1.141:192.168.1.1:255.255.255.0::eth0:off  
init=/linuxrc console=ttySAC2,115200
//注意空格

    (5)重新启动uboot,下载并启动内核,就可以看到我们已经挂载了根文件系统。

本文出自 “11664570” 博客,请务必保留此出处http://11674570.blog.51cto.com/11664570/1932506

根文件系统移植(2)——根文件系统的两种格式