Linux 根文件系统

简介: 虚拟文件系统(VFS) 为了对各类文件系统进行统一管理,Linux引入了虚拟文件系统——VFS(Virtual File System),为各类文件系统提供统一的操作界面和应用编程接口

一:什么是文件系统

文件系统作用:管理磁盘上的文件


nfs文件系统: 在不同机器、不同操作系统之间通过网络共享文件的技术


应用: 在嵌入式Linux系统的开发调试阶段,可利用该技术在主机上建立基于nfs的根文件系统,挂载到嵌入式设备,可以很方便地修改根文件系统的内容


虚拟文件系统(VFS) 为了对各类文件系统进行统一管理,Linux引入了虚拟文件系统——VFS(Virtual File System),为各类文件系统提供统一的操作界面和应用编程接口


VFS只存在于内存中,不存在于任何外存空间


VFS在系统启动时建立,在系统关闭时消亡


二:根文件系统

【1】根文件系统特点:

Linux系统启动后,首先由内核挂载的文件系统称为根文件系统,其中包括系统启动所必需的文件


在根文件系统的最顶层目录中,每个目录都有其具体的目的和用途


根文件系统的类型没有限制,可以是Linux系统所支持的任意稳定可靠的文件系统类型


在Linux下所有磁盘被挂载后才能使用,这个挂载的目录被称为挂载点或安装点,然后通过此目录来访问这个分区上的文件或其它目录


  Windows操作系统:分区和目录的关系 --->>> 目录属于分区
  linux操作系统:分区和目录的关系 --->>> 分区属于目录


【2】linux操作系统目录结构


20200310201732744.png


20200310201747858.png


【3】总结


制作根文件系统的过程,其实就是构造以上目录及系统启动所必需文件的过程 构建嵌入式根文件系统的工作,也就从构建这几个文件夹开始


三:根文件系统制作


【1】根文件系统构建介绍


挂载根文件系统时,传递给内核的参数:

bootargs = root=/dev/mmcblk0p8 rw rootfstype=ext4 init=/linuxrc lcd=wy070ml tp=gslx680 各参数含义: root:指定根文件系统在磁盘分区中的位置 init:指定Linux内核启动完毕后调用的第一个用户态程序 console:指定内核启动后首选的控制台设备(非必须)


/etc/inittab决定了接下来将要启动的脚本、shell和应用程序

/etc/inittab配置文件结构

每一行都指定一个子进程,并确定了进程运行方式

用冒号来分隔各字段的属性。


具体格式: : : :

id:表示这个子进程使用的控制台,如果省略,则使用与linuxrc进程一样的控制台

runlevels: 该字段主要用于PC机,对于嵌入式系统暂时没有处理,可以省略

action: 表示linuxrc进程将如何控制这个子进程,具体取值见后面的表格

process: 表示要启动的可执行程序或脚本,如果process字段前面有“-”字符,说明这个应用支持“交互”


【2】构建根文件系统工具——busybox

获取busybox:http://www.busybox.net


1.创建根目录结构——符合文件层次结构标准


20200310205106631.png


2.使用busybox构建/bin、/sbin的命令和init进程linuxrc


配置:make defconfig特殊选项配置:make menuconfig


20200310205151123.png


3.进入到交叉编译工具中,将相关动态库拷贝到rootfs/lib目录中。


4.完成etc目录下配置文件的编写:


inittab:用来作为 linuxrc 的配置脚本


init.d/rcS: inittab 启动的第一个脚本一般用来挂载系统必需的文件系统、必要的设备连接、设置 IP 地址、启动其他脚本等默认仅有


mount –afstab: 执行 mount –a 时,按照此文件挂载文件系统


profile:登陆完 shell 后自动执行此脚本,一般用来配置用户的登录环境


20200310205424742.png


5.用户管理相关配置文件编写


20200310205500686.png

相关文章
|
3天前
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
32 15
|
8天前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
75 7
|
8天前
|
存储 运维 监控
Linux--深入理与解linux文件系统与日志文件分析
深入理解 Linux 文件系统和日志文件分析,对于系统管理员和运维工程师来说至关重要。文件系统管理涉及到文件的组织、存储和检索,而日志文件则记录了系统和应用的运行状态,是排查故障和维护系统的重要依据。通过掌握文件系统和日志文件的管理和分析技能,可以有效提升系统的稳定性和安全性。
26 7
|
30天前
|
安全 Linux 数据安全/隐私保护
深入Linux操作系统:文件系统和权限管理
在数字世界的海洋中,操作系统是连接用户与硬件的桥梁,而Linux作为其中的佼佼者,其文件系统和权限管理则是这座桥梁上不可或缺的结构。本文将带你探索Linux的文件系统结构,理解文件权限的重要性,并通过实际案例揭示如何有效地管理和控制这些权限。我们将一起航行在Linux的命令行海洋中,解锁文件系统的奥秘,并学习如何保护你的数据免受不必要的访问。
|
2月前
|
存储 运维 监控
深入Linux基础:文件系统与进程管理详解
深入Linux基础:文件系统与进程管理详解
90 8
|
2月前
|
存储 Linux 文件存储
Linux文件系统
Linux文件系统 一切皆文件 在Linux中,“一切皆文件”的概念意味着系统中的所有资源,包括硬件设备、目录及进程等,均被视为文件。这种设计简化了操作和管理,具体包括: 普通文件:存储数据的常规文件。 目录文件:包含其他文件和子目录的文件。 进程文件:在/proc目录下代表系统中运行的进程。 设备文件:位于/dev目录,代表硬件设备。 网络字节流套接字文件:用于网络通信的数据流。 链接文件:指向另一个文件的符号链接或硬链接。 管道文件:用于进程间通信的文件。
57 7
|
5月前
|
编解码 Linux 程序员
深度探索Linux操作系统 —— 构建根文件系统2
深度探索Linux操作系统 —— 构建根文件系统
57 12
|
4月前
|
存储 Linux 索引
Linux 下最主流的文件系统格式——ext
【9月更文挑战第8天】硬盘被划分为若干相同大小的块(Block),默认大小为4K,便于灵活管理文件数据。文件数据分散存放于这些块中,提高了数据添加、删除和插入的便利性。
|
5月前
|
Linux Shell 网络安全
深度探索Linux操作系统 —— 构建根文件系统1
深度探索Linux操作系统 —— 构建根文件系统
65 6
|
5月前
|
存储 人工智能 数据管理
深入理解Linux操作系统之文件系统管理探索人工智能:从理论到实践的旅程
【8月更文挑战第30天】在探索Linux的无限可能时,我们不可避免地会遇到文件系统管理这一核心话题。本文将深入浅出地介绍Linux文件系统的基础知识、操作命令及高级技巧,帮助你更有效地管理和维护你的系统。从基础概念到实践应用,我们将一步步揭开Linux文件系统的神秘面纱。