
文件系统
文章平均质量分 84
文件系统相关知识
巭犇
做一件事,感动自己...
展开
-
btrfs概述
Btrfs(B-tree 文件系统)是一个现代化的 Linux 文件系统,旨在解决传统文件系统(如 ext4)的一些局限性。它由 Oracle 于 2007 年开始开发,设计目标是提供更强大的数据管理功能、更高的可靠性和可扩展性。原创 2024-12-08 08:30:00 · 546 阅读 · 0 评论 -
文件格式由什么信息标记的
Magic Number 是文件格式的重要标识符,位于文件头部,通过一组固定的字节序列快速标识文件类型。它是操作系统和工具在处理文件时的关键信息之一,应用广泛且高效,但需要与其他判断机制结合使用以提高可靠性。原创 2024-12-01 08:30:00 · 905 阅读 · 0 评论 -
ext2_new_inode()函数详解
是ext2文件系统中用于分配新的 inode 的函数。定义在中,它完成了从 inode 位图中查找空闲 inode、初始化相关结构并将其返回的操作。指向目标目录的 inode,表示新 inode 将被分配到的目录。指定新 inode 的模式(文件类型和权限)。与目录条目相关的名字字符串,用于安全性初始化等。当前文件系统的超级块指针。指向 inode 位图的缓冲区头,用于跟踪 inode 分配。表示块组描述符,用于获取块组相关的元数据。扩展超级块信息,包含了文件系统的全局信息。原创 2024-11-28 16:04:59 · 419 阅读 · 0 评论 -
创建EXT2下inode的函数
这个函数体现了 EXT2 文件系统的核心设计,包括 inode 分配的高效性、错误恢复能力,以及针对目录和文件的不同策略。它结合了并发控制、位图操作和元数据管理等技术,是学习文件系统设计的重要范例。原创 2024-11-27 09:46:48 · 602 阅读 · 0 评论 -
通过Linux源码,解读文件创建的详细过程
touch命令通过系统调用触发了VFS与ext2文件系统的交互,最终通过和分配并初始化了一个结构体。整个过程涉及用户态与内核态的协作、VFS的抽象接口以及ext2特定实现逻辑。原创 2024-11-26 17:40:52 · 692 阅读 · 0 评论 -
lost+found目录实现文件找回的原理
lost+found目录是EXT系列文件系统提供的一种机制,用于存储在文件系统检查中找到的孤立文件。通过fsck工具的扫描和修复功能,孤立的inode被移动到lost+found,管理员可以手动检查和恢复这些文件。原创 2024-11-04 19:04:25 · 900 阅读 · 0 评论 -
Linux中的软硬链接文件详解
在Linux文件系统中,软连接(Symbolic Link)和硬连接(Hard Link)是两种重要的文件链接方式。它们都可以创建指向相同文件内容的多个“链接”,但在实现方式和特性上有所不同。特性软连接硬连接是否共享inode否是跨文件系统支持不支持指向类型文件或目录文件失效情况目标文件删除则失效目标或链接删除不影响其他软连接适合用于快捷访问不同位置的文件或目录,硬连接则更适合需要在同一文件系统中保留文件副本的场景。原创 2024-11-04 17:52:09 · 1837 阅读 · 5 评论 -
NFS概述
NFS(Network File System,网络文件系统)是一种允许通过网络共享文件系统的协议。NFS最早由Sun Microsystems在1984年开发,旨在使计算机系统之间可以透明地共享文件,使多个客户端能够通过网络访问远程服务器上的文件,仿佛这些文件是存储在本地系统上一样。Remote Procedure Call(RPC,远程过程调用)是一种通过网络使计算机程序能够在远程服务器上执行程序或服务的技术,类似于在本地系统上调用函数。原创 2024-10-24 11:42:03 · 621 阅读 · 0 评论 -
网络文件系统搭建
使用以下命令将NFS服务器上的共享目录挂载到本地挂载点,假设NFS服务器IP为。这就完成了在CentOS上搭建NFS服务器并让客户端进行挂载的操作流程。如果需要在客户端机器开机时自动挂载NFS共享目录,可以编辑。文件,添加共享目录的配置。假设允许客户端IP范围。: 假设要共享的目录为。原创 2024-10-24 11:29:23 · 518 阅读 · 0 评论 -
Linux中文件的读写过程
用户发起系统调用(如openread内核通过VFS解析路径并检查缓存读取或缓存文件的inode和数据块文件系统将数据从磁盘传递回用户程序这个过程的优化,如Page Cache的使用,极大提升了文件读取的效率。用户程序通过write()发起写入操作内核通过VFS和文件系统检查权限并解析路径数据被写入到Page Cache,标记为脏页数据块分配用于保存新增数据内核异步将脏页写回磁盘,或在fsync()等调用下同步写入文件元数据(如大小、修改时间)更新关闭文件描述符,释放资源。原创 2024-10-18 10:28:31 · 879 阅读 · 0 评论 -
不同的文件系统文件读写速度差异
小文件随机读写大文件顺序读写闪存设备高需求的备份/快照系统具体的文件读写速度不仅依赖于文件系统,还受到硬件(如 SSD、HDD)的影响,以及具体的工作负载(随机读写、顺序读写、大文件、小文件等)。原创 2024-10-18 10:21:35 · 952 阅读 · 0 评论 -
浅谈EXT2文件系统----inode bitmap
Inode bitmap是文件系统中的一种位图结构,用于管理的分配状态。它的主要功能是记录文件系统中哪些是空闲的,哪些已经被分配。原创 2024-10-08 17:17:48 · 534 阅读 · 0 评论 -
ext2文件系统中超级块源码解读
结构体,这是 ext2 文件系统中超级块(superblock)的数据结构。超级块保存了文件系统的重要元数据信息,用于管理磁盘空间、文件、以及其他文件系统特性。这个结构体定义了 ext2 文件系统的关键元数据,特别是文件系统布局、性能优化和特性支持等方面。动态超级块字段(仅适用于动态修订版 EXT2_DYNAMIC_REV 的超级块)原创 2024-09-23 16:39:41 · 856 阅读 · 0 评论 -
浅谈EXT2文件系统----inode table
在 EXT2 文件系统中,inode 表(Inode Table)是一个非常重要的结构,用于存储文件和目录的元数据。每个文件和目录都由一个 inode(索引节点)来表示,inode 中包含了关于该文件或目录的关键信息,如文件的大小、权限、所属用户、时间戳以及指向数据块的指针等。EXT2 文件系统将所有 inode 结构集中存储在 inode 表中。ext2_inode结构体详细描述了在ext2文件系统中如何存储文件的元数据信息,包括文件的权限、大小、时间戳、数据块指针以及针对不同操作系统的定制字段。原创 2024-09-23 15:56:56 · 1072 阅读 · 0 评论 -
深入理解chattr
chattr是 Linux 系统中的一个命令,用于更改文件或目录的属性。这些属性通常与文件的写入、删除、备份等操作有关。通过chattr,你可以为文件或目录设置一些特殊的标志(例如不可修改、只能追加等),以提高文件系统的安全性或控制特定的行为。chattr是一个强大的工具,用于控制文件的行为,尤其适用于需要提高安全性和防止误操作的场景。使用或符号来添加、移除或设置文件属性。标志ext2ext4描述SECRM_FL✔✔安全删除标志UNRM_FL✔✔可恢复删除标志SYNC_FL✔✔。原创 2024-09-23 11:16:35 · 1647 阅读 · 0 评论 -
浅谈Linux中文件与目录的ACL
setfacl是 Linux 系统中用于设置文件和目录的 ACL(访问控制列表)的命令。它允许为特定的用户或用户组指定访问权限,提供比传统的文件权限机制更灵活的权限控制。下面是setfacl的常用选项及用法。setfacl。原创 2024-09-22 23:02:52 · 1322 阅读 · 0 评论 -
浅谈EXT2文件系统----超级块
在 EXT2 文件系统中,超级块(superblock)是一个非常重要的数据结构,包含了文件系统的全局信息。每个文件系统都有一个超级块,位于文件系统的第一个块之后,通常在块组的起始处。超级块还存储了文件系统的创建时间和 UUID,用于唯一标识文件系统。原创 2024-09-14 15:54:17 · 1545 阅读 · 0 评论 -
dumpe2fs指令使用方法
dumpe2fs是一个 Linux 系统中的命令行工具,专门用于显示和检查 ext2、ext3 和 ext4 文件系统的详细信息。通过dumpe2fs,可以查看文件系统的超级块和块组信息,这对于了解文件系统的布局、调试文件系统问题,以及优化性能非常有用。原创 2024-09-13 11:05:38 · 770 阅读 · 0 评论 -
浅谈/sys/目录
sys/在 Linux 中,/sys/目录是 Linux 内核的 sysfs 文件系统的挂载点,用于呈现内核与设备驱动程序、硬件设备、内核模块之间的接口信息。该目录提供了一种统一的方式,让用户和系统管理员能够直接与系统硬件和内核交互。它是内核空间与用户空间之间的桥梁。/sys/原创 2024-09-11 10:48:29 · 594 阅读 · 0 评论 -
在 EXT 文件系统下,分区开头的Boot Sector与操作系统启动之间的爱恨情仇
如下图所示,在的分区中,每个分区开头都有1-2个扇区,称作分区开头的实际上与操作系统的启动流程没有直接的关系。这是因为操作系统启动过程中更多依赖于(如 GRUB 或其他引导程序)以及系统所在的文件系统,并不是依赖 ext 文件系统的特定设计。原创 2024-09-13 10:17:56 · 933 阅读 · 0 评论 -
浅谈内存文件系统
虚拟文件系统是一种抽象层,主要用于访问和管理内核、系统资源以及提供一种统一的文件系统接口,而不存储实际的数据;而真实的文件系统则直接负责管理和存储用户和系统的数据,并与物理存储设备直接交互。原创 2024-09-11 10:52:23 · 1323 阅读 · 0 评论 -
Linux创建虚拟磁盘并分区格式化
losetup是 Linux 中用于管理环回设备(loop devices)的命令。环回设备是一个虚拟设备,它将文件当作块设备来使用,从而可以像操作硬盘一样操作一个普通的文件。losetup指令主要用于将文件与环回设备进行绑定或解除绑定,以及查看现有环回设备的状态。原创 2024-09-12 09:18:43 · 1652 阅读 · 0 评论 -
浅谈Linux中的环回设备
环回设备(loop device)是 Linux 系统中一种特殊的虚拟设备,它允许你将一个普通的文件当作块设备来操作。这意味着,借助环回设备,文件可以模拟为一个磁盘或分区,供系统读写。这种机制非常有用,尤其是在需要操作磁盘镜像、光盘镜像文件(如 ISO 文件)或进行调试、开发等场景中。环回设备是 Linux 中一种将普通文件视作块设备的机制,广泛应用于虚拟磁盘操作、光盘镜像挂载、文件系统调试等场景。它提供了高效且灵活的方式,帮助用户在没有实际硬件的情况下执行与块设备相关的操作。原创 2024-09-12 09:36:29 · 1266 阅读 · 0 评论 -
浅谈proc目录
proc是 Linux 操作系统中一个重要的虚拟文件系统,主要用于内核与用户空间的交互。它为系统提供了一种实时监控系统资源和进程状态的方法,而不需要直接访问内核内部数据结构。以下是关于/proc。原创 2024-09-11 10:29:07 · 1015 阅读 · 0 评论 -
文件系统简介
*ext4(第四代扩展文件系统)**是Linux操作系统中最常用的文件系统之一,也是ext系列文件系统的最新稳定版本。它在ext3的基础上做了许多改进,提升了性能、容量和可靠性,适用于从桌面系统到服务器的大部分应用场景。ext4是一款成熟且稳定的文件系统,适合大多数Linux用户使用。它通过优化性能和增强功能解决了许多ext3的局限性,特别是在大文件和大容量存储需求日益增长的环境中。虽然有新型文件系统在特定场景中可能更具优势,但ext4仍然是大多数Linux系统的默认选择,具备极强的兼容性和可靠性。原创 2024-09-11 10:46:05 · 1333 阅读 · 0 评论 -
浅谈EXT2文件系统(1)
EXT2(Second Extended Filesystem)文件系统是Linux操作系统的早期文件系统之一,它于 1993 年推出,是第一个旨在克服 Ext 文件系统限制的商业文件系统。Ext2 没有日志功能,Ext2 支持的单个文件大小为 2TB,根据块大小,可以从 4TB 到 32 TB。其架构较为简单,但具有良好的性能和灵活性。原创 2024-09-14 10:52:33 · 1105 阅读 · 0 评论