快捷搜索:   nginx

深入理解 高效管理Linux的文件系统

  一、概述
  Linux支持数量众多的本地文件系统类型和几种通过网络访问远程磁盘的文件系统,分析/proc/filesystems文件的内容即可找出当前Linux内核提供了对哪些文件系统的支持。

  要在内核中增加对任意此类文件系统的支持都是相当简单的,只需在构造新的内核时选中相应的配置选项即可。例如,对于makexconfig来说,只需在它的Filesystems下面选中想要的文件系统类型。如果你是为了从其他环境将磁盘移入Linux系统才需要增加文件系统类型,而且该磁盘原先的系统环境使用与Linux不同的分区表格式,则应当记住还必须启用相应的分区类型支持(通过Partition Types设置)。

  当前,ext2文件系统(即second extended filesystem)是Linux默认直接支持的文件系统。ext2文件系统和其他现代Unix使用的文件系统非常相似,但更接近于BSD系统所用的Berkeley Fast Filesystem。ext2文件系统的最大容量是4 TB,但目前它的最大文件大小被Linux内核限制为2 GB。

  ext2的核心是两个内部数据结构,即superblock和inode。superblock是一个包含文件系统重要信息的表格,比如标签、大小、inode的数量等,它是对文件系统结构的基础性的、全局性的描述。因此,没有了superblock的文件系统将不再可用。由于这个原因,文件系统中不同位置存放着superblock的多个副本。

  inode是基本的文件级数据结构,文件系统中的每一个文件都可以在其中一个inode中找到其描述。inode描述的文件信息包括:文件的创建和修改时间,文件大小,实际存放文件数据的块列表,等等。对于较大的文件,块列表可能包含附加数据块列表的磁盘位置(称为间接块),甚至有可能出现二重或三重的间接块列表。文件名字通过目录项(Directory Entry)关联到inode,目录项由“文件名字-inode”对构成。

  Linux提供了大量用于创建和管理文件系统的工具。接下来我们将以新增磁盘(或分区)为线索,介绍各种要用到的工具。尽管完成这一任务的过程并不复杂,但这些操作还得在Linux命令行进行,这是因为大多数图形界面的工具在这方面的支持非常有限。

把磁盘/分区加入到Linux系统

  在Linux文件系统中增加新的磁盘或者分区是相当简单的,其步骤如下:


把磁盘接入计算机
如有必要,对磁盘进行分区(fdisk或者cfdisk)
确定和新磁盘/分区关联的设备文件(MAKEDEV)
在分区上创建文件系统(mkfs)
检查文件系统是否存在一致性错误(fsck)
装配新文件系统(mount)
在文件系统配置文件(/etc/fstab)中设定文件系统的启动时行为和其他选项
在日常使用中,必要时修改文件系统的特征和选项(tune2fs)


  二、确定设备文件以及创建分区

1、确定设备文件

  为新加入的物理磁盘(或磁盘分区)创建文件系统之前,首先必须知道该磁盘具体的设备名字。我们可以用好几种方法来找出它的设备名字。例如,可以通过dmesg命令分析启动日志(通过管道传送给grep,并搜索[hs]d[a-z]);如果已经用syslog截取,则可以查看日志文件。另外,大多数Linux发行版都默认启用/proc文件系统,如果你也使用了它,则可以分析/proc/partitions文件,查看系统认可的所有磁盘分区的清单。

  有时我们需要手工为磁盘创建设备文件,但这种情况极其罕见。设备文件可以用/dev目录下面的MAKEDEV脚本创建。例如,下面的命令将为第六个SCSI磁盘创建设备文件:


# cd /dev; MAKEDEV sdf

 [2] [3] 下一页

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论