文件系统

文件系统指文件存在的物理空间,Linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。Linux会将这些分属不同分区的、单独的 文件系统按一定的方式形成一个系统的,总的目录层次结构。一个操作系统的运行离不开对文件的操作,因此必然要拥有并维护自己的文件系统。

  Linux文件系统使用索引节点来记录文件信息,作用像Windows的文件分配表。

  索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、许可权、所属关系、磁盘中的位置等信息。一个文件系统维护了一个索引节点的阵 列,每个文件或目录都与索引节点阵列中的惟一一个元素对应。系统给每个索引节点分配了一个号码,也就是该节点在阵列中的索引号,称为索引节点号。

  Linux文件系统将文件索引节点号和文件名同时保存在目录中。所以,目录只是将文件的名称和它的索引节点号结合在一起的一张表,目录中每一对文件名称和索引节点号称为一个连接。

  对于一个文件来说,有惟一的索引节点号与之对应,而对于一个索引节点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件可以通过不同的路径去访问它。

  可以用ln命令对一个已经存在的文件再创建一个新的连接,而不复制文件的内容。

  连接有软连接和硬连接之分,软连接又叫符号连接。它们各自的特点如下。

  硬连接:

  (1)原文件名和链接文件名都指向相同的物理位址。

  (2)目录不能有硬连接;硬连接不能跨越文件系统(不能跨越不同的分区)。

  (3)文件在磁盘中只有一个复制,以节省硬盘空间。

  (4)由于删除文件要在同一个索引节点属于惟一的连接时才能成功,因此可以防止不必要的误删除。

  符号连接:

  (1)用ln -s命令创建文件的符号连接;

  (2)符号连接是Linux特殊文件的一种,作为一个文件,它的资料是它所连接的文件的路径名。类似于Windows下的快捷方式。

  (3)可以删除原有的文件而保存链接文件,没有防止误删除功能。

  装载文件系统

  由上一节知道,Linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。Linux会将这些分属不同分区的、单独的文件系统按一定的方式形成一个系统的总的目录层次结构。这里所说的“按一定方式”就是指的装载。

  将一个文件系统的顶层目录挂到另一个文件系统的子目录上,使它们成为一个整体,称为装载。把该子目录称为挂接点。

  注意:挂接点必须是一个目录。

  一个分区装载在一个已存在的目录上,这个目录可以不为空,但装载后这个目录下以前的内容将不可用。

  对于其他操作系统创建的文件系统的装载也是这样。但是需要理解的是,光盘、软盘、其他操作系统使用的文件系统的格式与Linux使用的文件系统 格式是不一样的。光盘是ISO9660;软盘是FAT16或ext2;Windows NT是FAT16, NTFS, Windows 98是FAT16, FAT32;Windows 2000和Windows XP是FAT16, FAT32, NTFS。装载前要了解Linux是否支持所要装载的文件系统格式。

  装载时使用mount命令。格式:mount [-参数] [设备名称] [挂接点]

  其中常用的参数有:

  -t<文件系统类型> 指定设备的文件系统类型,常见的有:

  minix Linux 最早使用的文件系统;

  ext2 Linux 目前常用的文件系统;

  msdos MS-DOS的FAT,就是FAT16;

  vfat Windows 98常用的FAT32;

  nfs 网络文件系统;

  iso9660 CD-ROM光盘标准文件系统;

  ntfs Windows NT/2000的文件系统;

  hpfs OS/2文件系统;

  auto 自动检测文件系统。

  -o<选项> 指定装载文件系统时的选项,有些也可用在/etc/fstab中。常用的有:

  codepage=XXX 内码表;

  iocharset=XXX 字符集;

  ro 以只读方式装载;

  rw 以读写方式装载;

  nouser 使一般用户无法装载;

  user 可以让一般用户装载设备。

  提醒一下,mount命令没有创建挂接点的功能,因此您应该确保执行mount命令时,挂接点已经存在。(即你要把文件系统装载到哪,首先要先建立这个目录。)

  例:Windows 98装在hda1分区,同时电脑上还有软盘和光盘需要装载。

  # mk /mnt/winc

  # mk /mnt/floppy

  # mk /mnt/cdrom

  # mount -t vfat /dev/hda1 /mnt/winc

  # mount -t msdos /dev/fd0 /mnt/floppy

  # mount -t iso9660 /dev/cdrom /mnt/cdrom

  现在就可以进入/mnt/winc等目录读写这些文件系统了。

  要保证最后两行的命令不出错,就要确保软驱和光驱里有盘。

  如果你的Windows 98目录里有中文文件名,使用上面的命令装载后,显示的是一堆乱码。这就要用到 -o 参数里的codepage iocharset选项。codepage指定文件系统的内码表,简体中文代码是936;iocharset指定字符集,简体中文一般用cp936或 gb2312。

  当装载的文件系统Linux不支持时,mount一定会报错,如Windows 2000的NTFS文件系统。可以重新编译Linux内核以获得对该文件系统的支持。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值