|
深入理解和管理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、创建分区
确定磁盘的设备文件之后,接下来就要用fdisk之类的工具将磁盘分区。下面我们使用的是cfdisk,这是一个大多数Linux发行版都提供的仿图形界面工具。输入cfdisk命令并在参数中指定目标磁盘即可启动该工具:
# cfdisk /dev/sdf
磁盘分区工具cfdisk
cfdisk的主窗口显示的是一个描述当前磁盘分区布局的表格,表格的各列依次表示:分区名字,分区的标记,分区的类型,分区的标签(如存在的话),以及以兆计的分区大小。用上、下箭头键可以在表格内移动表示选中的横条。
适用于当前选中项目的命令显示在屏幕的下方,这些命令既可以用左、右箭头键访问,也可以用命令名字的首字母访问。例如,在上图中,cfdisk命令作用于磁盘的第一个分区,用于设定分区类型的Type命令是当前处于激活状态的命令(当然,该命令还没有执行)。
对于包含未分区空间的磁盘,分区列表最后一项的FS Type将显示为Free Space。如果选中了该项,cfdisk将显示一个New命令。New命令用于创建新的分区。
执行New命令时cfdisk会要求输入其他一些参数,比如分区大小。创建新的分区之后,我们可以用其他cfdisk命令来定义该分区的附属特征。
用cfdisk修改好分区定义之后,可以用Write命令保存更新后的分区表,用Quit命令直接退出cfdisk则表示忽略所有已经作出的改动。只要对磁盘分区表作了任何实质性的改动(即,不仅仅指定分区标签或改变分区类型),则在继续处理之前应当重新启动系统。
共2页: 上一页 1 [2] 下一页 |
上一篇: 在Linux下使用DOS/Windows磁盘 下一篇: 深入理解硬盘的 Linux 分区
![](/images/xg.gif) |
相关文档 |
|
![](/images/xg.gif) |
发表评论 |
|
|
|
|