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

相关文章
|
2月前
|
存储 Linux 数据处理
探索Linux操作系统的内核与文件系统
本文深入探讨了Linux操作系统的核心组件,包括其独特的内核结构和灵活的文件系统。文章首先概述了Linux内核的主要功能和架构,接着详细分析了文件系统的工作原理以及它如何支持数据存储和检索。通过比较不同的文件系统类型,本文旨在为读者提供一个关于如何根据特定需求选择合适文件系统的参考框架。
|
1月前
|
存储 缓存 算法
【linux】认识“文件”的本质,理解“文件系统”的设计逻辑,体会linux优雅的设计理念
【linux】认识“文件”的本质,理解“文件系统”的设计逻辑,体会linux优雅的设计理念
|
6天前
|
存储 Linux 文件存储
Linux 存储管理 (二)创建文件系统
【8月更文挑战第13天】使用`fdisk`创建分区后,通过`mkfs`命令创建文件系统,支持多种类型如ext4、XFS等。创建前确认分区无重要数据,示例命令为`mkfs.ext4 /dev/sdc1`。之后使用`mount`命令将分区挂载至指定目录,如`mount /dev/sdc1 /w`。为实现开机自动挂载,可在`/etc/fstab`文件中添加相应条目。这些步骤有助于高效管理和利用存储空间。
17 2
|
16天前
|
存储 数据管理 物联网
探索Linux文件系统的奥秘
【8月更文挑战第3天】在数字时代的海洋中,Linux 文件系统犹如一座灯塔,指引着数据存储和访问的航向。本文将带你深入Linux的文件系统结构,从基础概念到操作实践,通过代码示例揭示文件系统背后的逻辑与美学。准备好跟随我们的脚步,开启一场关于数据组织和管理的知识之旅。
|
1月前
|
存储 运维 安全
Linux命令stat:深入了解文件与文件系统状态
`stat`命令在Linux中用于显示文件和文件系统的详细状态,包括权限、大小、时间戳等。它通过读取inode获取信息,特点是显示全面、易用且支持多种参数,如`-c`自定义格式,`-f`查看文件系统状态,`-L`处理符号链接。例如,`stat example.txt`显示文件详情,`stat -c "%n 的大小是 %s 字节" example.txt`输出文件大小。理解`stat`有助于系统管理和故障排查。
|
1月前
|
存储 Linux Windows
【Linux】文件系统软硬链接的那些事儿
本文介绍了Linux文件系统的磁盘结构、逻辑结构以及文件和inode的关系,重点讲解了软链接和硬链接的区别,强调了它们在文件管理中的作用。
41 7
|
1月前
|
存储 缓存 固态存储
Linux操作系统之文件系统详解
Linux操作系统之文件系统详解
|
2月前
|
存储 Unix 数据管理
深入探讨Linux文件系统:从传统到现代
深入探讨Linux文件系统:从传统到现代
26 0
|
3月前
|
运维 安全 Linux
深入理解 Linux 文件系统的权限管理
【5月更文挑战第30天】 在 Linux 操作系统中,文件系统权限管理是维护系统安全与数据完整性的基石。本文旨在深入探讨 Linux 权限模型的核心概念、实现机制及其对系统安全性的影响。通过对用户身份、文件权限和访问控制列表(ACL)等关键元素的剖析,揭示权限管理在实际操作中的应用细节。文章还将讨论如何有效配置权限来优化系统性能和提升安全性,以及解决常见的权限问题的策略。
|
3月前
|
Linux PHP 数据安全/隐私保护
深入理解PHP7的返回值类型声明深入理解 Linux 文件系统的权限管理
【5月更文挑战第30天】在PHP7中,引入了返回值类型声明的特性。这一特性使得开发者可以在函数定义时指定函数应返回的值的类型。本文将详细解析返回值类型声明的用法,以及它在实际开发中的应用,帮助读者更好地理解和使用这一特性。