浅论Linux的文件系统

时间:2011-09-04

  引言

    每个人都有次接触某件事物,或者对其不够熟悉。就如你现在是Linux菜鸟,现在你急需把一些文件从Windows拷贝到Linux上。那怎么办呢?下面我们将说明Unix文件系统以及mount的工作过程,然后再比较详细地讨论mount的使用和有关选项。首先我们要学习下有关"mount"的含义,了解Unix文件系统是如何工作的。然后再进一步了解如何在2个不同系统间拷贝文件。

  什么是mount?

  在一些操作系统(如Windows)中,计算机通过设备名来识别设备,例如,大多数PC机系统都包括"A:drive"(软盘)、"C:drive"(硬盘)和?"D:drive"(一般是只读光盘)。

  出于各种各样的理由,Linux系统一般不采用这种方式指示存储设备。Linux系统采用单一的目录树(类似于Windows上用户的"C:drive"目录树?结构),通过mount到目录树的分支上来查找存储设备的内容。

  在这台特定的计算机上,总共有4个硬盘驱动器,它们全都被文件系统管理。例如,假设我们沿用Windows系统的方法,给这4个硬盘驱动器分别命名为C、D、E?和F,那么它们的Linux路径名和Windows的等价名如表1所示。

  磁盘号 Linux路径等价的Windows文件名

  1/C:\

  1 /var C:\VAR

  1 /var/adm C:\VAR\ADM

  1 /var/spool C:\VAR\SPOOL

  1 /home C:\HOME

  1 /home C:\HOMEJACKON

  2 /usr D:\

  2 /usr/lib D:\USR\LIB

  3 /usr/X11R6 E:\

  4 /home F:\

  通过维护系统中的设备列表,以及设备被mount的情况,Linux系统知道到哪里去寻找包含在每个路径表上的数据,而不管数据具体存放在哪个设备上。因为数据映射的操作是自动完成的,所以用户不需要记住数据在哪个硬盘驱动器上。

  例如,对匿名ftp用户,只需要记住/home/ftp是在"home"目录上,而不需要记住所有的ftp文件都在"F:\"或第4个硬盘驱动器上,这样显然直观多了。同样地,记住面向用户的库程序全在/usr/lib上,比必须记住面向用户的库程序全部在第2个硬盘驱动器的"LIB"目录上也直观得多。

  设备标识

  为了记住每个设备被mount到哪里,Linux系统需要有一种惟一的方法标识各个设备。对于人来讲,通过在/dev目录上找到设备名就完成了任务。但是,这个目录包含了大量的特殊文件,每个文件都指示不同类型的设备,或现有设备上的分区。例如,/dev/hda设备指示系统的个硬盘驱动器;

  /dev/hda1指示个硬盘驱动器的第1分区,而/dev/hda2是第2个硬盘驱动器的第2分区。表2展示了一些常用的设备文件和相应的设备。

  特殊文件 设备

  /dev/fdo 第1软盘驱动器

  /dev/fdl 第2软盘驱动器

  /dev/cdrom CD-ROM驱动器

  /dev/hda[1-16] 第1硬盘驱动器(IDE1,1)和分区1-16

  /dev/hdb[1-16] 第2硬盘驱动器(IDE2,2)和分区1-16

  /dev/sda[1-16] 第1硬盘驱动器(SCSI0)和分区1-16

  /dev/sdb[1-16] 第2硬盘驱动器(SCSI1)和分区1-16

  /dev/sdc[1-16] 第3硬盘驱动器(SCSI2)和分区1-16

  /dev/sdd[1-16] 第4硬盘驱动器(SCSI3)和分区1-16

  当然,有许多设备在表2中没能列出。要看到在您的系统中完整的特殊设备列表,可以采用如下命令:

  #/s/dev

  不用担心,许多设备您永远也用不上,一般也不需要研究和记住它们。

  文件格式

  在Linux系统除了要记住每个设备被mount到何处,还需要记住每个设备上存在什么类型的文件系统。对于Windows操作系统,大多数设备存储信息时,只采用目前流行的两种格式,即FAT16或FAT32中的一种。只有CD-ROM驱动器是一个明显的例外,它采用ISO-9660文件格式。对于Linux系统,大多数设备存储信息采用Extended-2(ext2)文件系统。同样地,显着的例外也是CD-ROM驱动器,它依然采用ISO- 9660文件格式,但是Linux也能识别和mount其他的文件系统。要看看您的Linux内核支持哪些文件系统,可以输入以下命令:

  #cat/proc/filesystems

  让我们假设对于一种给定的情况,上述命令的执行结果为:

  ext2

  vfat

  noelevproc

  iso9660

  对于这个特定的系统,Linux内核支持ext2、vfat、proc和iso9660文件系统。表3给出了Linux所支持的大部分文件系统类型。

  文件系统 操作系统或类型

  ext2 LinuxExtended-2

  minix Minix文件系统

  msdos 初的FAT文件系统(短文件名)

  vfat 其他FAT文件系统(长文件名)

  ntfs WindowsNT文件系统(长文件名)

  hpft OS/2高性能文件系统

  hfs AppleMacintosh文件系统

  nfs 网络文件系统

  ncpfs NovellNetWare文件系统

  affs Amiga快速文件系统

  Linux还支持其他一些文件系统。为了让Linux支持更多的文件系统,需要或者重新编译Linux的内核,或者有关的模块。

  /etc/fstab文件幸运的是,在使用Linux维护目录树时,用户不必经常直接和设备名或文件系统打交道。我们已经提到过,Linux在mount 文件系统时,会自动进行维护,它还知道每次是从什么地方开始mount文件系统,这主要是它利用了/etc/fstab文件。对于上面提到过的4个设备的目录,从/etc/fstab文件中可以摘出有关的内容:

  /dev/sda1 / ext2 defaults 1 1

  /dev/sdc1 /usr ext2 ext2 defaults 1 2

  /dev/sdc1 /usr/X11R6 ext2 defaults 1 2

  /dev/sdc2 /home/ftp vfat defaults 1 2

  对上述给定的/etc/fstab信息,Linux每次开始mount时将按下列步骤进行:

  ●mount第1个SCSI硬盘驱动器的第1个分区(/dev/sda1),把它作为的(根)文件系统,这是一个Linux的ext2格式的磁盘;

  ●在/usr的目录树上,mount第2个SCSI硬盘驱动器的第1个分区(/dev/sdb1),这是一个Linux的ext2格式的磁盘;

  ●在/home/ftp的目录树上,Mount第3个SCSI硬盘驱动器的第2个分区(/dev/sdc2),这是一个Windows95的vfat格式的硬盘?。

  通过适当地配置/etc/fstab文件,用户可以构造一个目录树,该目录树可以容纳许多不同的设备,而且支持许多不同的操作系统文件格式。每次在Linux的?根部将自动构造这种目录树。

  关于Linux

  准确的说,是指Linux的kernel(系统的程序),其内核版权属于Linus Torvalds,在GPL(GNU General Public License)版权协议下发行, 任何人都可以自由的复制(copy), 修改(change), 套装分发(distribute),销售,但是不可以在分发时加入任何限制, 而且所有原码必须是公开的,所以任何人都可以无偿取得所有执行文件和原代码。

  对于Linux用户和系统管理员来说,Linux是指包含Linux kernel、utilities (系统工具程序)以及application (应用软件)的一个完整的操作系统。Linux的应用软件是由自由软件基金会(FSF)开发的,全世界许多热心的程序员为Linux开发或移植了很多应用程序,包括X-Windows、Emacs、TCP/IP网络(包括SLIP/PPP/ISDN)等等,现在Linux(包括内核和大量的应用程序)光是执行程序就已经达到200M,完全安装后的规模将更大(大约500M左右)。

  从本质上讲,Linux是Unix的”克隆”或Unix风格的操作系统,在原代码级上兼容绝大部分的Unix标准(如IEEE POSIX,System V,BSD),它遵从 POSIX规范,例如对于System V来说,把其上程序源代码拿到 Linux下重新编译后就可以运行,而对于BSD Unix来说,它的可执行文件可以直接在Linux环境下运行。

  Linux的标志是可爱的企鹅,至于为什么选用企鹅,Linus是这样说的:别的都被他人用了,企鹅,不是也非常可爱吗?!由Linux作者发布的仅仅是一个内核而己,有一些公司或组织把内核、原代码及相关的应用程序组织在一起发行, 于是就产生了不同的Linux发行(distributor)版本, 比较着名的发行版本有RedHat、SlackWare 、S.u.S.e、Debian 等。



  
上一篇:览表关于Linux 系统下常用软件
下一篇:Linux启动过程中硬件模块是如何加载的?

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料