Linux文件系统详解

    首先,需要澄清读者对于文件系统的一些错误理解,经常有这样的说法,“我的硬盘是FAT32格式的”,“C盘是NTFS格式”等,它们的错误在于,NTFS或是FAT32并不是格式,而是管理文件的系统,其次刚买回来的硬盘并没有文件系统,必须使用FDISK或Windows 2000/XP的分区工具等对其进行分区并格式化后才会有管理文件的系统,因此文件系统是对应分区的,而不是硬盘,不管是将硬盘分成一个分区,还是几个分区。
    举个通俗的比喻,一块硬盘就像一个块空地,文件就像不同的材料,我们首先得在空地上建起仓库(分区),并且指定好(格式化)仓库对材料的管理规范(文件系统),这样才能将材料运进仓库保管。
    文件不会受所在分区的文件系统影响,就像同样是汽车轮胎在A仓库可能直接堆在地上,而B仓库则会挂在墙上,仅仅是放置和管理方法不同而已,因此,在NTFS分区和FAT32分区的文件可以随意在分区间移动,内容不会因此产生任何不同。

---------------下面进入正文 Linux文件系统详解(转自:linux之家 作者:崔航)

  ---- 在Linux的系统管理与使用过程中,文件系统是管理员打交道最多,也是最基本的管理对象。对于Linux的普通使用者,文件系统同样是深入了解Linux的重要概念。在Linux系统中,所有内容被表示为文件,组织文件的各种方法便称为不同的文件系统。Linux支持多种文件系统,使之能够与不同的操作环境实现资源共享,这也是Linux作为网络操作系统的明显优势。 

---- 一、Linux中的文件系统及配置 

---- Linux支持的文件系统不仅包括Unix世界广泛采用的各种类型,还特别加入了对MS Windows9x/NT文件系统的支持,并可以方便的在CD-ROM、软盘等介质上建立相应的文件系统。为了确定你的Linux支持的文件系统类型,可以查阅/proc/filesystems中的内容。如果所需类型不在其中,那就只能去找升级内核并重新编译了。Linux中常见的文件系统主要有: 

---- ext2——这是Linux中使用最多的文件系统,因为它是专门为Linux设计,拥有最快的速度和最小的CPU占用率。ext2既可以用于标准的块设备(如硬盘),也被应用在软盘等移动存储设备上。 

---- msdos——DOS、Windows和OS/2使用该文件系统,它使用标准的DOS文件名格式,不支持长文件名。 

---- vfat——扩展的DOS文件系统,支持长文件名,被MS Windows9x/NT所采用。 

---- umsdos——Linux所使用的扩展DOS文件系统,不仅支持长文件名,还保持了对UID/GID、POSIX权限和特殊文件(如设备、管道等)的兼容。 

---- iso9660——CD-ROM的标准文件系统。 

---- Minix——这是Linux的前身Minix采用的文件系统,但其有一个致命的弱点:分区不大于64MB,因此一般只用于软盘或RAM Disk。 

---- sysV——这是Unix世界里广泛应用的SystemV的文件系统。 

---- nfs——网络文件系统,在文章后部会有详细介绍。 

---- hpfs——OS/2使用的高性能文件系统,但在Linux中只能作为只读文件系统使用。 

---- smb——支持SMB协议的网络文件系统,可用于Linux与Windows for Workgroups、Windows NT或LAN Manager之间的文件共享,需要特殊的加载程序。 

---- Ncpfs——Novell Netware使用的支持NCP协议的网络文件系统,但需要特殊程序支持。 

---- swap——用于Linux磁盘交换分区的特殊文件系统。在内核引导过程时,它首先从LILO指定的设备上安装根文件系统,随后将加载/etc/fstab文件中列出的文件系统。/etc/fstab指定了该系统中的文件系统的类型、安装位置及可选参数。fstab是一个文本文件,可以用任何编辑软件进行修改,但请在修改前作好备份,因为破坏或删除其中的任何一行将导致下次系统引导时该文件系统不能被加载。以下是一个/etc/fstab的示例: 

#/etc/fstab
/dev/hda1/ext2defaults11
/dev/hda2noneswapsw
/dev/hda5/homeext2defaults12
/dev/cdrom/mnt/cdrom iso9660 noauto,ro0 0

---- 从上面可以看出,每一个文件系统占一行,参数间由< TAB >隔开。其中,第一列表示将被加载的块设备或网络上的文件系统;第二列表示该文件系统的安装点(mount point),对于交换分区/dev/hda2不存在安装位置;第三列是该文件系统的类型,即上文提及的各种文件系统中的一种;第四列的内容是该文件系统加载参数,常用的有defaults(缺省)、sw(交换分区用)、rw(读/写)和ro(只读),而noauto(不自动加载)参数一般用于CD-ROM、软盘等可移动存储设备,防止系统引导时安装该文件系统;第五、六列分别是两个数字,左边的数字供备份程序确定该文件系统上次备份距现在的天数,以通知管理员进行备份,右边的数字代表fsck(文件系统检查命令)在系统引导时检测文件系统的顺序,根文件系统一般最先被检查,随后检查其他设备上的文件系统,而该列为0的文件系统根本不做检查(如CD-ROM或软驱)。 
---- 要把一个文件系统安装,即使其工作,可以使用mount命令。Mount命令的格式为: 

---- #mount –t [type] –o[option] device_name mount_point 

---- 其中type指文件系统的类型,option为选项,如remount选项可使该文件系统重新加载,以实现某些参数的改变。device_name处填写设备名称,如/dev/hda1, mount_point处为安装位置。将文件系统/home安装的命令为: 

---- #mount –t ext2 /dev/hda5 /home 

---- 如果文件系统已在/etc/fstab中出现,则加载时只需指出安装位置或设备名称,如: 

---- #mount /home 

---- 与此相对应,卸载一个文件系统的命令为umount, 将文件系统/home卸载: 

---- #umount /home 

---- 在Linux系统安装过程中,系统会自动建立并加载一些文件系统,如果需要为用户建立各自的文件系统,就要用到mkfs命令,其格式为: 

---- #mkfs –t [type] device_name 

---- 它可以在任何指定的块设备上建立不同类型的文件系统,在软盘上建立一个ext2文件系统: 

---- #mkfs –t ext2 /dev/fd0 

---- 这时,软盘上已建立好ext2文件系统,可以对其进行加载或读写操作,并在必要时写入/etc/fstab文件中,以便在引导时安装。 

---- 另外,Linux系统还带有一套DOS文件工具Mtools,它可以使Unix系统读写或传送DOS文件(一般在软盘上),其命令包括Mcd、Mcopy、Mmove等,都是模拟DOS下相应的命令。使用Mtools工具,在读写DOS的文件软盘时,就不必加载、卸载其文件系统了。 

---- 二、磁盘空间配额管理 

---- 公共机房的管理员都有这样的烦恼:用户总把一些很大的文件下载到主机,或在服务器上安装占用大量磁盘空间的应用软件,硬盘很快就撑得满满当当。其实,在Linux下,可以通过对用户的磁盘空间进行配额管理,用户占用的空间不会超过所规定的上限。下面就一个示例说明配额管理的方法。 

---- 假设有一名用户Fred,规定其在文件系统/home上最大的磁盘占有量为1000 blocks。 

---- 1.首先,建立相应的系统使用文件quota.user和quota.group,前者是用户磁盘配额文件,后者则是针对组用户的。 

# touch /quota.user
# touch /quota.group
# chmod 600 /quota.user

---- 2.对该系统的/etc/fstab文件中的文件系统/home所在行进行修改,在参数列上加入usrquota,表明该文件系统将实施配额管理。 
/dev/hda5ext2/homedefaults, usrquota12

---- 3.重新加载该文件系统,使上述改动生效。 
# mount –o remount,defaults, usrquota /home

---- 4.下面,可以确定该用户配额的具体上限。用命令edquota Fred打开配额文件,其内容为: 
/dev/hda5:
blocks in use: 0, limits(soft = 1200, hard = 1000)
inodes in use: 0, limits(soft = 0, hard = 0)

---- 在这里,只需改动limits后面的数值。Hard项代表该用户在此文件系统拥有的磁盘最大使用量,Soft项表示用户可以临时超过其配额,达到该容量,但期限一过,用户只能按其配额数量使用磁盘。一般只改变blocks的使用限制,而对inodes不做限制(使其limits项均为0),由系统自动分配inode数量。改变完毕,可存盘退出。 
---- 5.最后,打开该用户磁盘配额控制。 

# quotaon –uv Fred

---- 此时,用户Fred在文件系统/home中仅拥有1000 blocks的空间,一旦该上限被突破,便会得到警告信息,无法继续增加磁盘使用量。用户可通过quota命令查看自己的磁盘配额,而root用户可以用repquota检查所有用户的配额情况。 
---- 三、NFS的配置与使用 

---- NFS,也即网络文件系统,是Unix系统间实现磁盘文件共享的一种方法,它由Sun Microsystems公司发展起来,逐渐成为主机间共享资源的一个标准。 

---- NFS使用远程过程调用(RPC)方法,由后台的驻留服务和配置文件控制。要启动NFS进程,需要以root身份登录并执行:# /etc/rc.d/init.d/nfs start 

---- NFS的主要配置文件为/etc/exports和/etc/fstab。首先要把准备共享的文件目录(注意:这里是文件目录,而非文件系统)和有关选项填入/etc/exports,格式为: 

---- Dir_to_export host1(permission) host2(permission) 

---- 其中hostn为允许共享该目录的其他主机,permission是它们使用该目录时的权限,分为rw(读写)、ro(只读)和no_root_squash(承认客户机的root用户权限)。 

---- 配置好/etc/exports后,利用exportfs命令向后台驻留服务发出信号,要NFS相关进程重新读此文件并做更新。如: 

---- # exportfs -a 

---- 此时,即可在客户端安装该目录,如果主机名为server1, 共享目录为/home/exports, 则在客户机上使用mount命令安装此输出文件系统: 

---- # mount server1:/home/exports /home/share 

---- 如果需要客户机在引导时即加载该输出文件系统,则在/etc/fstab中加入此目录名。不同的是,在设备名一列使用server1:/home/exports, 并将其类型设为nfs


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值