第7章 Linux文件系统.doc_第1页
第7章 Linux文件系统.doc_第2页
第7章 Linux文件系统.doc_第3页
第7章 Linux文件系统.doc_第4页
第7章 Linux文件系统.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

145 第7章 Linux文件系统第7章 Linux文件系统本章的学习目标: 理解什么是文件系统 理解Linux文件系统的结构 掌握Linux文件的类型和访问权限 掌握如何安装和卸载文件系统 掌握如何创建文件系统 如何进行ext3与ext2文件系统之间的转换 理解和掌握交换分区和交换文件7.1 Linux文件系统文件系统是操作系统用以表明磁盘或分区上的文件的一种方法以及数据结构,也即磁盘上文件组织的方法。这个词也用于指一个用于存储文件的分区或磁盘,或者是指给定文件系统的类型。因此,某人可以说“我有两个文件系统”意思是说他有两个存储文件的分区,或者某人说“扩展文件系统”,意思是说文件系统的类型。7.1.1 Linux与DOS文件系统的区别Linux文件系统是一个目录树的结构,它的根是根目录“/”,往下连接各个分支,例如,/bin、/usr、/sbin等,如图7-1所示。图7-1 Linux文件系统DOS也采用目录树的结构,但是与Linux的略有不同,如图7-2所示。图7-2 DOS文件系统DOS以每个分区为树根,由于有多个分区,所以形成了多个树并列的情形。7.1.2 Linux文件系统结构Linux将文件存放到逐层继承排列的子目录中,这种结构的形状很像是一棵树,所以称为“树状结构”(tree structure)。这个树状结构是倒挂的,它的根被置于最顶部,从根向下延伸的是枝,每个枝向上只有一个连接,但向下可以再有更多个枝。从这个角度看,也可以说有个“父子”结构,即每个子目录都是另一个子目录的下级子目录。一个子目录可以有多个下级子目录,但它自身只能是一个父目录的子目录,如图7-3所示。1. 用户的系统子目录Linux的文件结构从一个根目录(即“/”目录)开始向下分成多个子目录。根目录中的几个系统级子目录里容纳着形成Linux操作系统各种功能的文件和程序。标准的、原始的文件系统包括/、/home、/usr、/var、/bin、/sbin、/etc、/dev、/lib。Linux系统是以文件的目的为依据对文件进行分组的,即相同目的的命令都放在同一子目录中。系统子目录中的文件的作用是保证系统的正常运行。它们中的许多还有自己的下级子目录,并容纳完成Linux操作系统的特定功能的程序。图7-3 从根目录开始的Linux文件结构2. 用户的登录子目录根目录里有一个名为home的子目录,它容纳系统上全体用户的登录子目录(home directory),也叫做主目录、家目录等。3. 路径名用户在创建子目录或者文件时分配的名字并不是它的全名。一个子目录的全名是它的路径名(pathname)。子目录间继承性的嵌套关系构成了路径,而这些路径用来惟一地确定和引用一个子目录或者一个文件。在图7-3中,从根目录“/”到home子目录再到robert子目录是一个路径,路径名写成/home/robert。系统标识某个子目录时实际用的名字总是从根目录开始,并由堆叠在该子目录上面的各级子目录组成。路径名可以是绝对的也可以是相对的。7.2 Linux的文件7.2.1 文件名DOS文件的名字是文件名+扩展名的8+3字符的结构:文件名的长度必须不大于8个字符;扩展名最多可以有3个字符。在文件名和扩展名之间用句点隔开。后来个人操作系统由DOS发展到Windows 95,在Windows 95及以后的版本中开始支持长文件名格式,文件名长度最多可达128个字符。DOS使用扩展名作为文件类型的标志,即使发展到了Windows 95仍然是如此。7.2.2 文件类型Linux中各种文件都有相同的物理格式即字节流(byte stream)。“字节流”就是一个字节序列。这使Linux操作系统能够把文件的概念应用到系统中的每个数据元。子目录也被归入文件类,设备也是一样。将各种事情都作为文件使Linux操作系统能够更容易地组织和交换数据。文件中的数据可以直接发送给显示器等设备,因为设备与操作系统之间与普通文件一样使用的都是同一种字节流文件格式。这个同样的文件格式也被用在这个操作系统的其他成分里。显示器和键盘这类设备的接口被设计为一个文件;子目录等其他成分就是字节流文件,只不过它们有一个特殊的内部结构罢了。子目录文件保存着关于子目录的信息,按照特殊的子目录格式组织起来。因为这些不同的组成都被视为文件,所以说它们构成了不同的文件类型。根据用户具体实现的Linux操作系统的不同,文件数量也会发生变化。但最常见的文件类型有4种:普通文件、目录文件、连接和设备文件。而DOS下常见的文件类型有两种:普通文件和目录文件。7.2.3 文件权限由于Linux是一个多用户的系统,它的文件当然不可避免地要根据用户来划分,并对文件进行保护。用户分组名指出组权限分配给哪一个用户分组。如图7-4所示,mydata文件的类型为普通文件;只有一个链接,表明该文件没有其他名字和其他链接;属主名为chris,与用户的登录名相同;用户分组名为weather,这个weather组里可能还会有其他用户;文件的长度为207字节;上次的修改日期是6月20日上午11点55分;文件名为mydata。图7-4 使用带-l参数的ls命令列出的文件信息如图7-4所示,左面第一组字符是文件mydata的访问权限清单。空白权限使用短划线字符“-”来表示的;读权限用字母“r”代表;写权限用字母“w”代表,而执行权限则用字母“x”代表。总共有10个位置,第一个字符指出文件的类型。由于子目录也可以被看成是一种文件类型,如果第一个字符是一个短划线字符“-”,就表示列出的是一个文件;如果是一个字母“d”,则表示显示的是关于某个子目录的信息。随后的9个字符是根据不同的用户分类来排列的。第一组3个字符是文件属主对该文件的权限集;第二组3个字符是用户所在分组对该文件的权限集;最后一组3个字符是其他用户对该文件的权限集。在图7-4中,文件mydata的属主类用户被分配给读写权限rw-;同组成员类用户被分配给读权限r-;其他用户类用户也只被分配给读权限r-。这意味着虽然同组成员和系统上的其他用户能够读取这个文件的内容,但只有文件的属主才能修改它。7.3 ext3文件系统从Red Hat Linux 7.2发布版本开始,默认的文件系统已从ext2格式转换成登记式ext3文件系统。7.3.1 文件系统的类型Linux下所有的设备都表示成文件,硬件设备分成字符设备和块设备两种。文件系统的意义就是文件的组织。由于文件是保存在物理设备(如硬盘、光盘或软盘)上的,每一种设备上的全体文件都被组织为一种文件系统。Linux支持多种的文件系统,如表7-2所示,所以在Linux中可以安装多种类型的文件系统,它们可以协同工作。例如,Windows 98的FAT32系统与Linux的ext2系统共存。表7-2 文件系统的类型类 型说 明MinuxMinux文件系统(文件名的长度被限制在30个字符以内)extLinux文件系统的早期版本,现已不再使用ext2(ext3)标准Linux文件系统,支持长文件名和大文件尺寸xiafXiaf文件系统msdos对应于MS-DOS分区的文件系统(16位)vfat对应于Windows分区的文件系统(32位)(续表) 类 型说 明proc由操作系统使用,对应于进程nfs对应于来自远程系统挂装分区的NFS(Network File System)文件系统swapLinux的swap数据交换分区或者swap文件iso9660挂装光盘的文件系统7.3.2 ext3文件系统一言以蔽之,ext3 文件系统是 ext2 文件系统的增进版本。这些增进功能提供了以下优越性。1. 可用性 2. 数据完好性 3. 速度 4. 简易转换 7.4 安装和卸载文件系统7.4.1 使用mount命令挂装文件系统可以在shell命令行中使用mount命令挂装任何文件系统。在窗口管理器或者桌面上,用户可以打开一个终端窗口并在那里输入命令。在第2章关于磁盘分区和文件系统中已经讲到用mount命令来安装文件系统。mount的语法如下:mount afnrsvm-t vfstype或者mount -fnrsvw-o options.device dir或者mount-fnrsvw-t vfstype-o optionsdevice dir其中option指选项,vfstype指设备的类型,device指设备,dir是安装的目录(挂装点)。在使用mount命令时需要指定包含安装文件的设备,文件系统的类型以及安装点。表7-3列出了mount命令的各个参数选项。表7-3 mount命令参 数说 明-f模拟一个文件系统的挂装过程,用它可以检查一个文件系统是否可以正确挂装-n挂装一个文件系统,但不在fstab文件中生成与之对应的设置项-s忽略文件系统不支持的安装类型,而不导致安装失败-v命令进展注释状态。给出mount命令每个操作步骤的注释-w以可读写权限挂装一个文件系统-r以只读权限挂装一个文件系统-t type定义准备挂装的文件系统的类型(有效的类型参见表7-2)-a把/etc/fstab文件中列出的所有文件系统挂装好-o option根据各参数选项挂装文件系统。参数选项跟在-o后面,用逗号彼此隔开7.4.2 使用umount命令卸载文件系统如果想使用另外一个文件系统代替已挂装的那个,首先需要明确地卸载下那个已挂装的文件系统。假如挂装了一张软盘,现在想取出它并换上另外一张,则在放入新软盘并挂装它之前必须先卸载下那张软盘。与安装相比较,卸载文件系统的操作就显得简单多了。卸载文件系统的命令是umount,注意,不要写成unmount。umount命令的语法如下:umount device or dir其中device为设备名,dir为挂装点。7.4.3 手工编辑/etc/fstab文件/etc/fstab是一个文本文件(file system table),能够被机器识别又方便阅读。用户可以通过把挂装信息放在/etc/fstab配置文件中,在文件的适当地方加上适当的设置项,而不需要使用mount命令就可以让某些特定的文件系统在系统加电引导时自动挂装。而对那些没有被自动挂装的文件系统,则可以在该文件中设定一些诸如挂装点和访问权限之类的配置信息,这样可以在挂装该文件系统时自动使用这些信息,而不必把这些信息作为mount命令的参数选项输入到命令行中。为了进入Linux系统后能方便对本机上Windows系统中的文件进行存取,用户经常希望在开机启动时,能自动将Windows系统的某个磁盘分区自动挂装,而在关机的时候自动卸载它,这样就不必在每次开机和关机的时候都要进行挂装和卸载操作,此时通过/etc/fstab文件进行编辑就显得很简单了。因为要让Linux自动挂装此硬盘上的磁盘分区,只需把它的名字添加到fstab文件中。7.5 创建一个ext3文件系统安装后,有时会有必要创建一个新的ext3文件下。例如,给 Red Hat Linux系统添加了一个新的磁盘驱动器,可能想把这个磁盘驱动器分区,并使用ext3文件系统。创建ext3文件系统的步骤如下:(1) 使用parted 或fdisk来创建分区。(2) 使用mkfs 来把分区格式化为ext3文件系统。(3) 使用e2label给分区标签。(4) 创建挂载点。(5) 把分区添加到/etc/fstab文件中。7.5.1 使用parted创建磁盘分区必须安装了parted软件包才能使用parted工具。要启动parted,在 shell 提示下以根用户身份输入命令parted /dev/hdb,这里的/dev/hdb是想配置的设备名称。会看到一个 (parted) 提示。输入help可以查看可用命令的列表。如果驱动器不包含任何正在被使用的分区,可以使用umount命令来卸载分区,使用swapoff 命令来关闭硬盘驱动器上的交换空间。 表7-6包含最常用的parted命令。 表7-6 parted命令命 令描 述check minor-num执行文件系统的简单检查cp from to把文件系统从一个分区复制到另一个分区;from 和 to 是分区的次要号码help显示可用的命令列表mklabel label为分区表创建磁盘标签标识mkfs minor-num file-system-type创建类型为 file-system-type 的文件系统mkpart part-type fs-type start-mb end-mb不创建新文件系统而制作分区mkpartfs part-type fs-type start-mb end-mb制作分区并创建指定的文件系统move minor-num start-mb end-mb移动分区print显示分区表quit放弃分区(quit parted)resize minor-num start-mb end-mb重新划分分区大小,从 start-mb 到 end-mbrm minor-num删除分区select device选择另一个设备来配置set minor-num flag state在分区上设置标志;state 要么是 on,要么是 off1. 查看分区表2. 创建分区3. 制作分区4. 格式化分区5. 给分区注明标签6. 创建挂载点7. 添加到/etc/fstab7.5.2 使用mkfs格式化分区分区建立好之后,就需要对它进行格式化。这是通过使用mkfs命令和该硬盘分区的名字实现的。表7-7列举了mkfs命令参数。表7-7 mkfs命令命 令说 明Blocks文件系统使用的存储块数目。一张1.44 MB软盘有1 400个存储块-t file-system-type指定格式化操作时使用的文件系统类型fs -options指定的文件系统类型的参数-V命令进展注释状态-v通知文件系统建立程序mkfs-c执行时要显示它采取的每个动作-l filename在对分区进行格式化操作之前先检查其上的块数一个硬盘分区就是/dev子目录里的一个设备名与分区名相同的设备。使用mkfs命令的时候必须给出它完整的路径名。例如,挂装第一块硬盘上的第四个分区。mkfs -t ext3 /dev/hda4如果想格式化一张软盘,则会在该软盘上建立一个Linux文件系统,格式化操作完成之后,则可以挂装该文件系统。mkfs命令需要把设备名和硬盘上的存储块数作为参数。每个存储块约为1 000个字节,一张1.44 MB的软盘对应1 400个存储块。进行格式化操作时不必挂装这张空盘,只需将它插到软驱中再输入mkfs命令和它的参数就可以了,例如:mkfs -t ext3 /dev/fd0 14007.5.3 删除分区警告:不要试图删除正在被使用的设备上的分区。在删除分区前,引导入救援模式(或卸载设备上的所有分区,关闭设备上的交换空间)。 启动parted,这里的/dev/hda是要在其中删除分区的设备,语句如下:parted /dev/hda查看当前的分区表来判定要删除的分区的次要号码,输入语句如下: print使用rm来删除分区。例如,要删除次要号码为3的分区表示如下: rm 3只有按Enter键,改变就会发生,因此在执行前一定检查一下命令。 删除了分区后,使用print命令来确认分区在分区表中已被删除。还应该查看以下命令的输出来确定内核,知道分区已被删除。cat /proc/partitions最后一步是把分区从/etc/fstab文件中删除。找到和已被删除的分区相应的行,然后从文件中删除分区。7.5.4 重新划分分区大小在重新划分分区大小前,引导入救援模式(或卸载设备上的所有分区并关闭设备上的交换空间)。警告: 不要试图重新划分正在被使用的设备上的分区的大小。启动parted,/dev/hda 是要在其中重新划分分区大小的设备。parted /dev/hda查看当前的分区表来判定要重划大小的分区的次要号码以及它的起止点。print警告: 要重划大小的分区上已用的空间必须大于新建的大小。要重新划分分区大小,使用resize命令,然后跟随分区的次要号码,以MB为单位的起始点和终止点。例如: resize 3 1024 2048分区被重新划分了大小后,使用print命令来确认分区已被正确地重新划分了大小,并且具备正确的分区类型和文件系统类型。 在正常模式下重新引导了系统后,使用df命令来确定分区已被挂载,并且它们的新大小也已被识别。 7.6 转换到ext3文件系统tune2fs 程序能够不改变分区上的已存数据来给现存的 ext2 文件系统添加一个登记报表。如果文件系统在改换期间已被挂载,该登记报表就会被显示为文件系统的根目录中的 .journal 文件。如果文件系统没有被挂载,登记报表就会被隐藏,根本就不会出现在文件系统中。 要把 ext2 文件系统转换成 ext3,登录为根用户后输入以下命令。 /sbin/tune2fs -j /dev/hdbX在以上命令中,把 /dev/hdb 替换成设备名,把X替换成分区号码。 以上命令执行完毕后,再确定把/etc/fstab文件中的ext2文件系统转换成ext3文件系统。 如果在转换根文件系统时,将需要使用一个initrd映像(或RAM磁盘)来引导。要创建它,运行mkinitrd程序。关于使用mkinitrd命令的信息,可输入man mkinitrd。还要确定用户的GRUB或LILO配置会载入initrd。 如果转换没有成功,系统仍旧能够引导,只不过文件系统将会被挂载为ext2 而不是 ext3。 7.7 还原到ext3文件系统因为ext3相对来说比较新,某些磁盘工具可能还不支持它。例如,可能需要使用 resize2fs 来缩小某分区,该命令不支持ext3。在这种情况下,可能会有必要把文件系统暂时还原成ext2。 要还原分区,必须首先卸载分区。方法是登录为根用户,然后输入以下命令。umount /dev/hdbX在以上命令中,把 /dev/hdb 替换成设备名称,把X替换成分区号码。本节以后的示例命令将会使用hdb1来代表设备和分区。 下一步,把文件系统类型还原回ext2,以根用户身份输入以下命令。/sbin/tune2fs -0 has_journal /dev/hdb1 以根用户身份输入以下命令检查分区的错误。/sbin/e2fsck -y /dev/hdb1然后通过输入以下命令把分区重新挂载为 ext2 文件系统。mount -t ext2 /dev/hdb1 /mount/point在以上命令中,把/mount/point替换成分区的挂载点。 下一步,删除根目录下的.journal文件。方法是转换到分区的挂载目录中,然后输入以下命令。rm -f .journal 现在就有一个ext2分区了。 如果永久的把分区转换成ext2,记住更

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论