针对块设备提出的,用来统管系统资源

disk

主分区(0 < x <= 4个) +

扩展分区( y >= 0 && y+x <= 4)()

扩展分区 = 逻辑分区之和(hda5+hda6+…)

root filessytem

根目录(概念是逻辑的无限严拓的)是根文件系统必须的,

必须在成功加载根文件系统后,才可以在其中挂载其他文件系统;

根文件系统需要被第三方加载(kernel);

根文件系统关联着一个设备如:root=/dev/hda8 or root=/dev/nfs

系统根目录是根目录概念的实现,它拥有必须的功能(本身自有大量内部命令)

一下几个目录是必须的: /bin /sbin /dev /etc /usr /proc /lib

VFS

  • 用来统管其他所有的文件系统(它直属于根文件系统) devFS
  • 设备文件系统是为了系统在启动时能够自动挂载 /dev,在内核配置时必须要选择 ISO9660
  • CD-ROM

cramfs

linus发明,ARM上用的最多的文件系统,只是在需要的时候才将需要的部分解压到内存中

sudo apt-get install mkcramfs,具体参见«嵌入式Linux.doc»P128

yaffs,jffs2,tmpfs

NFS

网络文件系统最早是由SUN公司开发的;

目标板要挂载NFS根文件系统必须先给目标板内核添加网卡的驱动

嵌入式开发中需要不停的改动kernel如果每次改动都是烧录到开发板则会影响开发板flash的寿命,故应该使用tftp来调试

sudo mount 127.0.0.1:/armnfs /mnt/nfs  # 挂载nfs文件系统,也可以用宿主机的实际IP来代替127.0.0.1

# 挂载以后/mnt/nfs目录下就有了/armnfs目录下的文件
showmount -a 127.0.0.1 # 查看挂载的目录(df命令也可以查看到当前挂载的NFS)
sudo umount /mnt/nfs   # 卸载NFS,不过在执行该命令前一定要退出/mnt目录
sudo apt-get install nfs-kernel-server  # 安装NFS服务器程序,会自动安装nfs-common,portmap

# NFS挂载目录及权限在/etc/exports文件中定义
/armnfs  210.43.111.212(rw,sync)  # IP为210.43.111.212的NFS客户端能够共享NFS服务器/armnfs目录,且有rw权限
/armnfs  *(rw,sync)  # 意思是任何IP的NFS客户端都能够共享NFS服务器上/armnfs目录内容, sync是默认参数,最好加上
/armnfs  ...(rw,sync,all_squash,anounid=0,anoungid=0)  # 强制每个client的操作都当做root,避免服务端上文件权限的变动(默认是no_root_squash)
sudo exportfs -r  # refresh