Linux文件系统掌握指南

虽然内核是Linux的核心,但是文件是用户与操作系统交互的主要工具,对于Linux来说尤其如此,因为在UNIX传统中,它使用文件I/O机制来管理硬件设备和数据文件。



不幸的是,新手往往会混淆的术语,介绍了Linux文件系统的概念,术语的文件系统可以在Linux文件制备交替使用,它是指几个不同但相关的概念。除了磁盘分区的具体实例,文件系统也指的是数据结构和分区中的文件管理方法。



新手更迷惑的术语也用来指的是系统中的文件的组织形式:目录树。另外,这个词也可以指目录树中的每个子目录,如在/home文件系统。有些人认为这些目录和子目录可以不能称之为真正的文件系统,除非他们都居住在各自的磁盘分区。然而,其他人把它称为一个文件系统,这无疑增加了混乱。



Linux老手可以理解上下文中这些术语的含义,新手很难在130中识别出这样的上下文。



本文的主要目标是提供足够的背景知识,帮助您识别术语的上下文。在澄清文件系统术语的细微差别时,您还将学习如何从理论应用程序向实际应用程序添加一些有用的工具。



本文主要介绍了Linux内核2.4版中Linux磁盘分区和文件管理系统的特点,并介绍了Linux内核2.6版中的新特性。



磁盘分区概述



Linux和UNIX中的基本文件存储单元是磁盘分区,它们逻辑上分为一个或多个硬盘。操作系统将每个逻辑分区视为一个独立的磁盘。文件和文件管理系统在磁盘分区中生存。Linux将这些磁盘分区作为设备处理,然后通过文件中的特殊文件来使用文件I/O机制。



有两种类型的设备文件:块和字符 /原。两者之间的重要区别是,块设备和字符设备的缓冲,缓冲是不是因为没有文件管理系统。对Oracle集群文件系统(OCFS)出台之前,利用原有的设备是提高Oracle数据文件分区的性能的一种常用方法。(在这篇文章中,我们会在后续章节详细介绍原始设备)



分区表被存储在磁盘的最早的位置提供了这个磁盘映射的分区,你可以使用fdisk命令查看系统的分区表。



# fdisk -l



盘/ dev / HDA:240头,63个部门,1940缸



单位=15120×512字节的圆柱体



设备启动启动结束块id系统



/ dev / HDA 1286 2162128 + C Win95 FAT32(LBA)



/ dev / hda2×2881940124966805扩展



/dev/hda5 288289 15088+ 83 Linux



/ dev / HDA6 290844 4195768 + 83 Linux



/ dev /计划845983 1050808 + 82的Linux交换



/ dev / hda8 9841816 6297448 + 83 Linux



/ dev / hda9 18171940 937408 + 83 Linux



名称 / dev /在/ dev /硬盘分区表中的1到4代表IDE驱动,在HDA是司机1,司机2,建屋局表示,等等。在驱动器分区的数表示,所以 / dev / hda5位于第一个IDE驱动第五个分区。对于SCSI驱动器,类似的命名方式是: / dev / SDA / dev / SDD。



第四分区第一是保留给主分区,和第五和随后的分区用于逻辑分区。因此,在分区表驱动HDA如上所示。它包含一个主分区hda1,扩展分区和逻辑分区hda2五 / dev / hda5 / dev / hda9.the文件系统的名称shmfs上市是一个共享内存文件系统被安装为一个基于Linux 2.4 POSIX标准的专用文件系统。



你可能已经注意到,在分区列表,LBA是封闭在parentheses.lba代表逻辑块地址,将缸,块,和硬盘的扇区数成线性块模式。



在Linux,分区分主分区、扩展分区和逻辑分区,主分区是一个术语,四分区限制在以前的x86系统的遗产。不像DOS和Windows,Linux可以从小学开始或逻辑分区。主分区作为一个逻辑分区占位符称为扩展分区。扩展分区本身有一个分区表指向一个或多个逻辑分区(他们只是主分区的子分区),在上面的分区列表,hda2是扩展分区。



档案管理系统综述



为了使分区磁盘可用,你必须建立在它的文件系统。在这种情况下,文件系统通常被称为分区类型、基于磁盘的文件系统,文件系统类型和事实上,这些文件系统可以看作是文件管理系统这是他们的功能:他们保持对系统文件的状态保持元数据文件。



一个Linux项目的特点是,它的实现需要多种款式和每一个可用的效用偏好的兼容性,这种兼容性是最明显的可用文件管理系统的选择,这种选择是通过虚拟文件系统(VFS)实现在Linux kernel.vfs使用一组基本的数据结构,可以被其他文件管理系统使用的数据结构。这些超级块、inode、dentry(或目录文件),和数据块。



每个分区包含一个超级块,用于维护分区文件系统的信息,包括一组在每个超级块只有屈指可数的inode,inode和inode,闲置的总数、空闲数据块数据块数量和状态的文件系统的文件系统。有两种状态:清洁(当文件在不变状态)、脏(当有一个文件系统没有被写入到磁盘),超级块的一个节点对应一个文件。



除了文件名、inode包含所有的文件的信息,包括:



地址







大小



业主



引用文件数据块



文件最后一次修改和访问的时间戳。



你可以使用下面的命令来查看文件的inode:



美元-我



如前所述,只有在超级块的inode编号,只有一个超级块在每个分区,这就是为什么硬链接不能跨越多个分区。



文件名称是由dentry对象链接到一个inode号(用户看到的目录文件),数据块保存实际的文件数据。



Linux支持任何文件管理系统一套与VFS定义的基本功能,文件管理系统如vfat,Linux项目提供自己的设备驱动程序。



从下面的输出中可以看到,不同的文件管理系统可以存在于同一系统的不同分区上。



# DF T



文件系统类型的1K的块用可使用安装在



/ dev / HDA6 ReiserFS 218061249% / 41956322015020



/ dev / hda5 ext2 146073778100758% /引导



/ dev / hda9 ReiserFS 937372202368735004 22% /家



/ dev / hda8 ReiserFS 62972483882504 241474462% /选择



shmfs SHM 25622002562200% / dev / SHM



/ dev / HDA1 VFAT 21599921854192 30580086% /窗/ C



目前,最常用的文件管理系统,Oracle用户ext2或ext3,ReiserFS(由Oracle不支持)和OCFS。以下是一个非主要特征概述Oracle分区。



特征ext2ext3reiserfs3.6(由Oracle不支持)



分区的最大容量4tb4tb16tb



Maximum file size 2GB-4GB2GB-4GB8TB



块的大小1kb-4kb1kb-4kb是只有4KB



没有日志功能



撞车后,慢慢地、快速地重新启动。



用于恢复清理文件的工具如下



在崩溃之后,数据的状态是好的和好的。



ACL支持是否存在



稳定性好