《Linux操作系统第6章文件系统管理.pptx》由会员分享,可在线阅读,更多相关《Linux操作系统第6章文件系统管理.pptx(99页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、LinuxLinux操作系统操作系统 第第6章章 文件系统管理文件系统管理 6.1 文件系统基础文件系统基础 6.2 创建文件系统创建文件系统 6.3 文件系统的安装和卸载文件系统的安装和卸载 6.4 文件系统的维护文件系统的维护 习题习题 LinuxLinux操作系统操作系统 6.1文件系统基础 6.1.1 磁盘的分区磁盘的分区Linux系统使用各种存储介质来保存永久的数据,例如:硬盘、软盘、光盘、磁带等。其中硬盘是不可缺少的介质,硬盘有容量大、速度快、价格低的特点。我们常常对硬盘进行分区,使得每个分区在逻辑上是独立的。这样我们就可以在每个分区安装一个操作系统,而多个操作系统就可以共处在同一
2、个硬盘上。软盘的容量小,不进行分区;光盘则作为一个大盘更易于使用,也不进行分区。LinuxLinux操作系统操作系统 硬盘分区的信息保存在硬盘的第一个扇区(即第一面第一磁道第一扇区),这个扇区称为MBR(主引导记录),主引导记录包含有一段小程序。计算机启动时BIOS会执行这一段小程序,小程序又会读入分区表,检查哪个分区是活动分区(也叫启动分区),并读入活动分区的第一扇区(称为分区的启动扇区)。启动扇区也包含另一个程序,这个程序实际上是操作系统的一部分。它将负责操作系统的启动。LinuxLinux操作系统操作系统 一个硬盘的分区最多只能有四个基本分区。有些时候这个数量太少了,于是人们就发明了扩展
3、分区。扩展分区是在基本分区的基础上把分区再细分成多个子分区,每个子分区都是逻辑分区。一般情况下,只能允许存在一个扩展分区,即磁盘可以有三个基本分区和一个扩展分区。硬盘的分区结构如图6-1所示,硬盘的分区信息可以使用命令“fdisk-l”获得。LinuxLinux操作系统操作系统 图6-1硬盘分区结构LinuxLinux操作系统操作系统 【实例6.1】rootredflag/root#fdisk-l/dev/hdaDisk/dev/hda:255heads,63sectors,2482cylindersUnits=cylindersof16065*512bytesLinuxLinux操作系统操作
4、系统 DeviceBootStartEndBlocksIdSystem/dev/hda1*1 383307641683Linux/dev/hda2384447 51408082Linuxswap/dev/hda3448454 56227+83Linux/dev/hda4455467 104422+82LinuxswapLinuxLinux操作系统操作系统 以上输出中带“*”号的是启动分区。我们随后将详细介绍fdisk命令的使用。Linux对硬盘分区的命名和DOS对硬盘分区的命名有很大的不同。在DOS下软盘为“A:”、“B:”,而硬盘为“C:”、“D:”,等等。Linux则使用/dev/hda0
5、等来命名它们。以/dev/hd开头的表示IDE接口的硬盘,以/dev/sd开头的表示SCSI接口的硬盘,随后的abcd等代表第几个硬盘,而数字1、2、3、4代表硬盘的第几个分区。例如,/dev/hda1表示第一个IDE硬盘的第一个分区。表6-1列举了常用的分区命名方法。LinuxLinux操作系统操作系统 表6-1分区的命名设备分区的命名软盘/dev/fd0第一个IDE硬盘(整个硬盘)/dev/hda第一个IDE硬盘第一个分区/dev/hda1第一个IDE硬盘第二个分区/dev/hda2第二个IDE硬盘(整个硬盘)/dev/hdb第二个IDE硬盘第一个分区/dev/hdb1LinuxLinux
6、操作系统操作系统 第二个IDE硬盘第二个分区/dev/hdb2第一个SCSI硬盘(整个硬盘)/dev/sda第一个SCSI硬盘第一个分区/dev/sda1第一个SCSI硬盘第二个分区/dev/sda2第二个SCSI硬盘(整个硬盘)/dev/sdb第二个SCSI硬盘第一个分区/dev/sdb1第二个SCSI硬盘第二个分区/dev/sdb2LinuxLinux操作系统操作系统 6.1.2 什么是文件系统什么是文件系统文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构,即在磁盘上组织文件的方法。分区或磁盘在作为文件系统使用前需要初始化,并将记录数据结构写到磁盘上,这个过程叫建立文件系统。我
7、们在DOS下常常进行的格式化磁盘进程也是一个建立文件系统的过程。不同的操作系统所支持的文件系统是不同的,一个文件系统在一个操作系统下可以正常地被使用,转移到另一操作系统时往往会出问题。LinuxLinux操作系统操作系统 Linux支持多种类型的文件系统。而红旗Linux3.0版又增加了几种新类型的文件系统。下面是几个重要的文件系统:minix:最早的Minix系统的文件系统。ext2:Linux系统的文件系统,目前是使用最广泛的文件系统。swap:用于交换分区和交换文件的文件系统。sysv:Unix里广泛使用的SystemV。iso9660:标准的CD-ROM的文件系统。LinuxLinux
8、操作系统操作系统 vfat:扩展的DOS文件系统,支持长文件名,被Windows98采用。msdos:与MS-DOS/FAT16兼容的文件系统。hpfs:OS/2文件系统。nfs:网络文件系统,允许多台计算机间共享的文件系统。ntfs:用于WindowsNT和Windows2000的文件系统。reiserfs:安全性和效能比ext2都好的文件系统。ext3:ext2的后续者,红旗Linux3.0版(Linux内核2.4.17)已经把它加入。smb:支持SMB协议的高性能文件系统。LinuxLinux操作系统操作系统 一般情况下没有理由用不同类型的文件系统来组成Linux系统,除非原有的文件系统
9、已经存在。由于历史的原因,当前ext2的使用最为广泛,而reiserfs是红旗Linux3.0安装时默认的文件系统类型,ext3是当前最新的文件系统类型。ext2比起以往的文件系统在文件性能方面有很大的提高,但也存在不少的问题,例如,文件系统在异常关机等情况下容易遭到破坏,使用“fsck”命令检查文件系统要检查整个文件系统,对于较大的文件系统,常常需花费几个小时的检查时间。LinuxLinux操作系统操作系统 为了解决这个问题,出现日志型文件系统,如reiserfs和ext3。日志型文件系统比传统的文件系统安全,因为它用独立的日志文件跟踪磁盘内容的变化。就像关系型数据库(RDBMS),日志文件
10、系统可以用事务处理的方式提交或撤消文件系统的变化。日志机制保证了在每个实际数据修改之前,相应的日志已经写入硬盘。正因为如此,在系统突然崩溃时,在下次启动几秒钟后就能恢复成一个完整的系统,系统也就能很快地使用了。LinuxLinux操作系统操作系统 reiserfs除了具有日志型文件系统的特性,还具有适合处理大量小文件(如5000个50字节的文件)和特大文件(例如2GB以上)的特点。ext3则是ext2的后续者,它也是日志型文件系统,更为难得的是,它的磁盘格式和ext2的相同,ext2和ext3的转换相当的容易,对于ext2的升级十分有利。没有一种文件系统适合所有的应用,因此我们要选择适合自己的
11、文件系统。对于新安装的系统,我们建议采用reiserfs或ext3。LinuxLinux操作系统操作系统 Linux采用虚拟文件系统(VFS)技术,因此Linux可以支持多种文件。每一文件系统都提供一个公共的接口给VFS,不同文件系统的所有细节由软件进行转换。而从Linux内核和Linux运行的程序来看,不同的文件系统之间没有差别。例如,用户可以把自己原有的Windows分区挂接到Linux中的一个目录下,也可以同时把NFS(网络文件系统)挂接在另一目录,它们可以和平地融合为一体。LinuxLinux操作系统操作系统 文件系统是所有数据的基础,所有文件和目录都驻留在文件系统上。在Linux系统
12、中,所有的文件系统都被连接到一个总的目录上,这个目录就叫根目录,是由系统自动建立的。根目录下有许多分支,分支又有子分支,从而整个目录呈树状结构,如图6-2所示。LinuxLinux操作系统操作系统 图图6-2 树状的目录结构树状的目录结构LinuxLinux操作系统操作系统 文件系统连接目录树上的一点,这个点就叫安装点。图6-2中的每个虚框就是一个文件系统,所有不在虚框的部分也是一个文件系统,一共有四个文件系统。就这样,不同的文件系统形成了一个无缝的整体。LinuxLinux操作系统操作系统 6.1.3 文件文件文件是有名字的一组相关信息的集合,它有多种的分类方法,如根据文件的用途我们把文件分
13、为以下四种。(1)普通文件。文件可以是千差万别的,如普通的Word文件、图像文件、声音文件、网页HTML文件,也可以是脚本文件、程序员编写的可执行文件。我们可进一步把文件分类为文本文件和二进制文件。LinuxLinux操作系统操作系统 文本文件即ASCII码文件,可以使用cat、more等命令查看,Linux系统的多种配置文件、源程序、HTML文件都属于此类。二进制文件,一般不能被直接查看,而必须使用相应的软件才行,如图像文件、声音文件、可执行文件都属于此类。(2)目录文件。Linux中把目录也看成文件,这是和DOS/Windows不太相同的地方。目录可以包含下一级目录和普通文件。(3)链接文
14、件。我们在第2章已经介绍了链接,有软链接和硬链接之分。链接的一个好处是不占用过多的磁盘空间。LinuxLinux操作系统操作系统 (4)设备文件。Linux中把系统中的设备也当成文件,用户可以像访问普通文件一样来访问系统中的设备,并且所有设备文件都放在/dev目录下。设备文件可以分为块设备和字符设备两类。例如,打印机是字符设备,磁盘是块设备。把设备当成文件的好处是使得Linux系统能够保证设备的独立性。计算机外设不断更新,但是操作系统不可能为了刚出现的设备文件而经常修改。当需要增加新的设备时,只需要在内核添加必要的设备驱动程序就可以了。这样一来,使用不同外设时内核就可以用完全一样的方式来进行处
15、理。LinuxLinux操作系统操作系统 设备文件中有一特殊的文件是/dev/null,称为空设备。它是一个类似“黑洞”的设备,所有放入该设备的东西将不复存在,例如:rootredflag/root#mvtest.zip/dev/null该命令执行的结果是test.zip文件永远被删除了。LinuxLinux操作系统操作系统 还有一种很特殊的文件是管道文件,它主要用于在进程间传递信息,是一个先进先出(FIFO)的缓冲区,管道文件类似我们日常生活中的管道,一端进入的是某个进程的输出,另一端输出的是另一个进程的输入。例如:rootredflag/root#cat/etc/passwd|more该命
16、令使用了管道“|”,命令cat/etc/passwd的输出是管道的输入,经过管道后,成为了命令more的输入。LinuxLinux操作系统操作系统 使用命令“lsl”可以显示文件的类别,每个输出行中的第一个字符表示的就是文件的类别,例如,“b”代表块设备,“p”代表管道文件,“c”代表字符设备,“d”代表目录文件。LinuxLinux操作系统操作系统 6.1.4Linux系统的目录结构Linux系统中,目录是一个层次(或树状结构),根是所有目录的起始点,根目录下主要有以下子目录。/bin:包含二进制文件,即可执行程序,这些程序是系统必需的文件。/sbin:也用于存储二进制文件,但不同的是它们不
17、给普通用户使用,只有超级用户root可以使用。LinuxLinux操作系统操作系统 /etc:用于存放Linux系统的配置文件,该目录的文件相当重要,例如:passwd、host、fstab、inittab等等,我们将在不同的章节使用到这个目录下的文件。/boot:Linux系统引导时加载器使用的文件,系统中非常重要的内核vmlinux就是放在该目录下。/dev:存放设备文件,用户可以通过这些文件访问外部设备。/lib:存放根文件系统中的程序运行所需要的库文件。LinuxLinux操作系统操作系统 /temp:存放各种临时文件。/mnt:管理员临时安装文件系统的安装点,下面有几个意义明确的子目
18、录,如软盘、光驱等。如下:drwxrwxr-x2rootroot4810月91998cdromdrwxrwxr-x2rootroot482月61996floppyLinuxLinux操作系统操作系统 /root:超级用户的个人主目录。/usr:该目录占用的空间一般比较大,用于安装各种应用程序。/proc:是一个虚拟的目录,存放当前内存的映像,该文件系统由内核自动产生。/var:存放一些会随时改变的文件。例如,spool目录、其他的暂存文件。/opt:是放置额外安装的应用程序包的地方。LinuxLinux操作系统操作系统 6.2创建文件系统要在硬盘创建文件系统,首先要进行硬盘分区。硬盘分区有很多
19、的工具,如:Fdisk、Cfdisk等,用得最多的还是Fdisk。LinuxLinux操作系统操作系统 6.2.1 Fdisk的使用的使用1.fdisk-l显示所有分区的信息【实例6.2】Disk/dev/hda:255heads,63sectors,2482cylindersUnits=cylindersof16065*512bytesLinuxLinux操作系统操作系统 DeviceBoot Start EndBlocksIdSystem/dev/hda1*1 383307641683Linux/dev/hda238444751408082Linuxswap/dev/hda34484863
20、13267+83LinuxLinuxLinux操作系统操作系统 以上显示了惟一的一个磁盘/dev/hda的参数和分区情况,磁盘有255个磁头,2482个柱面,每柱面63个扇区,第四行起是分区的情况,依次是分区名、是否是启动分区、起始柱面、终止柱面、分区的总块数、分区ID(分区类型的数字值)、分区的类型。如/dev/hda1分区是启动分区(带“*”号),起始柱面是1,终止柱面是383,分区大小是3076416块(每块的大小是1024字节,即总共300MB左右的空间)。每柱面的扇区数等于磁头数乘以每柱面扇区数,每两个扇区为一块,因此分区的块数等于分区占用的总柱面数乘以磁头数,再乘以每柱面扇区数后除
21、以二。例如:/dev/hda2的总块数=6425563/2=514080LinuxLinux操作系统操作系统 2.fdisk驱动器名创建磁盘分区【实例6.3】rootredflag/root#fdisk/dev/hdaThenumberofcylindersforthisdiskissetto2482.Thereisnothingwrongwiththat,butthisislargerthan1024,andcouldincertainsetupscauseproblemswith:1)softwarethatrunsatboottime(e.g.,oldversionsofLILO)2)b
22、ootingandpartitioningsoftwarefromotherOSs(e.g.,DOSFDISK,OS/2FDISK)Command(mforhelp):mLinuxLinux操作系统操作系统 使用“m”可以获得如下帮助:Commandactiona toggleabootableflagb editbsddisklabelc togglethedoscompatibilityflagd deleteapartitionl listknownpartitiontypesmprintthismenun addanewpartitiono createanewemptyDOSpart
23、itiontablep printthepartitiontableLinuxLinux操作系统操作系统 q quitwithoutsavingchangess createanewemptySundisklabelt changeapartitionssystemidu changedisplay/entryunitsv verifythepartitiontablewwritetabletodiskandexitx extrafunctionality(expertsonly)LinuxLinux操作系统操作系统 其中常用的命令有:a:切换分区的启动标志。d:删除分区。l:显示已知的分区类
24、型。m:显示命令的帮助。n:添加新的分区。p:显示当前硬盘的分区情况。q:退出并且不保存分区的结果。t:改变分区的类型。w:保存分区的结果并退出。LinuxLinux操作系统操作系统 Command(mforhelp):l0Empty1bHiddenWin95FA63GNUHURDorSysb7BSDIfs1FAT121cHiddenWin95FA64NovellNetwareb8BSDIswap2XENIXroot1eHiddenWin95FA65NovellNetwarec1DRDOS/sec(FAT-3XENIXusr24NECDOS70DiskSecureMultc4DRDOS/sec
25、(FAT-4FAT1632M39Plan975PC/IXc6DRDOS/sec(FAT-5Extended3cPartitionMagic80OldMinixc7Syrinx6FAT1640Venix8028681Minix/oldLindaNon-FSdataLinuxLinux操作系统操作系统 7HPFS/NTFS41PPCPRePBoot82LinuxswapdbCP/M/CTOS/.8AIX42SFS83LinuxdeDellUtility9AIXbootable4dQNX4.x84OS/2hiddenC:e1DOSaccessaOS/2BootManag4eQNX4.x2ndpart
26、85Linuxextendede3DOSR/ObWin95FAT324fQNX4.x3rdpart86NTFSvolumesete4SpeedStorcWin95FAT32(LB50OnTrackDM87NTFSvolumesetebBeOSfseWin95FAT16(LB51OnTrackDM6Aux8eLinuxLVMeeEFIGPTfWin95Extd(LB52CP/M93AmoebaefEFI(FAT-12/16/10OPUS53OnTrackDM6Aux94AmoebaBBTf1SpeedStor11HiddenFAT1254OnTrackDM69fBSD/OSf4SpeedStor
27、12Compaqdiagnost55EZ-Drivea0IBMThinkpadhif2DOSsecondary14HiddenFAT16bad再用mkfs命令建立文件系统:rootredflag/root#mkfs-text2-lbad/dev/fd0mke2fs1.27(8-Mar-2002)Filesystemlabel=OStype:LinuxLinuxLinux操作系统操作系统 Blocksize=1024(log=0)Fragmentsize=1024(log=0)184inodes,1440blocks72blocks(5.00%)reservedforthesuperuserFi
28、rstdatablock=11blockgroup8192blockspergroup,8192fragmentspergroupLinuxLinux操作系统操作系统 184inodespergroupWritinginodetables:doneWritingsuperblocksandfilesystemaccountinginformation:doneThis filesystem will be automatically checked every 26mountsor180 days,whichever comes first.Use tune2fs-c or-i tooverr
29、ide.LinuxLinux操作系统操作系统 6.2.3 交换分区交换分区如果在Linux运行时物理内存不够,Linux会把内存的数据先写到磁盘上,当需要数据时再读回到物理内存中,这个过程就叫交换,而用于交换的磁盘空间就叫交换空间。这些技术和Windows的虚拟内存技术类似,但Linux支持两种形式的交换空间:独立的磁盘交换分区和交换文件。LinuxLinux操作系统操作系统 独立的磁盘交换分区是专门分出一个磁盘分区用于交换,而交换文件则是创建一个文件用于交换。使用交换分区比使用交换文件效率要高,因为独立的交换分区保证了磁盘块的连续,Linux系统读写数据的速度较快。交换空间的大小一般是物理内
30、存的1.52倍。如果内存是256MB,则交换空间大小为500MB左右较为合适。LinuxLinux操作系统操作系统 1.交换分区的建立和激活交换分区的建立和其他分区的建立没有太大的差别,惟一不同是用fdisk命令建立分区时要使用“t”命令把分区类型改成82(LinuxSwap),如下的/dev/hda4是新建的交换分区。rootredflag/root#fdisk-lDisk/dev/hda:255heads,63sectors,2482cylindersLinuxLinux操作系统操作系统 Units=cylindersof16065*512bytesDeviceBootStartEndBl
31、ocksIdSystem/dev/hda1*1383307641683Linux/dev/hda2384447 51408082Linuxswap/dev/hda344845456227+83Linux/dev/hda4455467104422+82LinuxswapLinuxLinux操作系统操作系统 Linux系统下可以有多个交换分区。创建好交换分区后,要使用mkswap命令“格式化”分区。rootredflag/root#mkswap-c/dev/hda4Settingupswapspaceversion1,size=106921984bytes最后还要激活交换分区:rootredfla
32、g/root#swapon/dev/hda4LinuxLinux操作系统操作系统 以上命令是手工激活的方法,但交换分区通常是在系统启动时就自动激活,自动激活可以在/etc/fstab文件中配置(见下节介绍)。关闭交换分区的命令为:rootredflag/root#swapoff/dev/hda4LinuxLinux操作系统操作系统 2.交换文件的建立和激活交换文件一般用在临时增加交换空间的情形。对交换文件的要求是不能有空洞,即文件要占据一片连续的物理空间。建立交换文件和激活的过程如下:LinuxLinux操作系统操作系统 (1)创建一个指定大小的文件。如下:rootredflag/root#d
33、dif=/dev/zeroof=/swapbs=1024count=5000050000+0recordsin50000+0recordsout以上命令在根目录下创建了一个25MB(等于50000块)的交换文件swap。/dev/zero是一个特殊的设备文件,对它的读操作总是返回零值字节。LinuxLinux操作系统操作系统 (2)创建交换文件并修改文件的权限为600。如下:rootredflag/root#mkswap/swapSettingupswapspaceversion1,size=25595904bytesrootredflag/root#chmod600/swapLinuxLin
34、ux操作系统操作系统 (3)激活交换文件。如下:rootredflag/root#swapon/swap同样关闭交换文件的使用,可以使用命令:rootredflag/root#swapoff/swap交换文件关闭后,如果不再继续使用,可以删除。LinuxLinux操作系统操作系统 6.3 文件系统的安装和卸载文件系统的安装和卸载Linux文件系统的组织方式和DOS、Windows文件系统的组织方式有很大的差别。Windows把磁盘分区后用不同驱动器名字来命名,如“C:”、“D:”、“E:”等等,我们把它们当成逻辑独立的硬盘来使用,每个逻辑盘有自己的根目录。而Linux系统只有一个总的根目录,或
35、者说只有一个目录树,不同磁盘的不同分区都只是这个目录树的一部分。LinuxLinux操作系统操作系统 在Linux中创建文件后,用户还不能直接使用它,要把文件系统安装(mount)后才能使用。安装文件系统首先要选择一个安装点(mountpoint)。所谓的安装点就是要安装的文件系统的根目录所在的目录。如图6-3和图6-4所示,安装后/home就是第二个文件系统的安装点,因为第二个文件系统的根目录在这一目录下。这样整个文件是由多个文件系统构成的,但对于用户来说整个文件系统却是无缝的,感觉不到是在不同的文件系统工作。文件系统的安装点不同,目录树的结构也会发生变化,如图6-5所示。LinuxLinu
36、x操作系统操作系统 图图6-3 未安装的两个独立的文件系统未安装的两个独立的文件系统LinuxLinux操作系统操作系统 图6-4安装后的文件系统LinuxLinux操作系统操作系统 图6-5文件系统安装点不同引起目录树结构的不同LinuxLinux操作系统操作系统 6.3.1 手工安装和卸载文件系统手工安装和卸载文件系统手工安装文件系统常常用于临时使用文件系统的场合,尤其是软盘和光盘的使用。手工安装文件系统使用mount命令,其格式如下:mount参数设备名安装点参数选项:-a:安装/etc/fstab中的所有设备。-f:不执行真正的安装,只是显示安装过程中的信息。-n:不在/etc/mta
37、b登记此安装。LinuxLinux操作系统操作系统 -r:用户对被安装的文件系统只有读权限。-w:用户对被安装的文件系统有写权限。-t type:指定被安装的文件系统的类型,常用的有:minix、ext、ext2、ext3、msdos、hpfs、nfs、iso9660、vfat、reiserfs、umdos、smbfs。-o:指定安装文件系统的安装选项。LinuxLinux操作系统操作系统 例如:rootredflag/root#mount-text3/dev/hda3/mnt/disk1该命令将/dev/hda3分区的文件系统安装在/mnt/disk1目录下,文件系统的类型是ext3,安装点
38、是/mnt/disk1。安装文件系统时,用户不能处在安装点(即当前目录是安装点),否则安装文件系统后,用户看到的内容仍是没有安装文件系统前安装点目录原来的内容。安装文件系统后,安装点原有的内容会不可见。卸载文件系统后,安装点原有的内容又会可见。LinuxLinux操作系统操作系统 使用mount命令时,mount会试着测试文件系统的类型,因此常常可以不指明文件系统的类型,但mount并非总能成功检测出文件系统的类型,例如:rootredflag/root#mount/dev/hda3/mnt/disk1安装文件系统只能由超级用户root来进行,一般用户不能执行此项操作。对于软盘这样的设备,如果
39、只允许超级用户来使用的话不是很合理,这时可以在/etc/fstab加入相应的行来控制。我们随后介绍/etc/fstab的用法。LinuxLinux操作系统操作系统 如果不打算在一个文件系统上写入任何数据的话,可以使用-r开关。这将停止任何对此文件的写要求,也将停止对i节点的文件存取时间的更改。rootredflag/root#mount-r-tntfs/dev/hdb1/mnt/disk2LinuxLinux操作系统操作系统 以上命令把/dev/hdb1(Windows2000)安装在/mnt/disk2目录下,只是为了在Linux中能够读取Windows2000系统下的数据,但不允许改动,以
40、免影响Windows2000的正常工作。Linux系统会把已经安装的文件系统信息写到/etc/mtab文件中,用不带任何参数的mount命令也可以显示已经安装的文件系统的信息。LinuxLinux操作系统操作系统 【实例6.5】rootredflag/root#mount/dev/hda1on/typereiserfs(rw,notail)noneon/proctypeproc(rw)usbdevfson/proc/bus/usbtypeusbdevfs(rw)noneon/dev/ptstypedevpts(rw,gid=5,mode=620)以上是当前已经安装文件系统的信息。要卸载文件系统
41、则相当简单,使用以下命令:LinuxLinux操作系统操作系统 umount安装点或umount设备名rootredflag/root#umount/mnt/disk1卸载文件系统时,不能有用户正在使用文件系统,例如,用户当前目录是/mnt/disk1,则以上命令会失败。要先切换到别的目录,再执行umount,例如:rootredflag/root#cdrootredflag/root#umount/mnt/disk1LinuxLinux操作系统操作系统 6.3.2 文件系统的自动安装文件系统的自动安装我们可以使用mount命令手工安装文件系统,对于用户经常使用的文件系统则最好能让Linux系
42、统在启动时就自动安装好。/etc/fstab文件就是为了解决这个问题的,其格式如下:文件系统安装点文件系统类型安装选项备份频率检查顺序LinuxLinux操作系统操作系统 【实例6.6】rootredflag/root#cat/etc/fstab/dev/hda1/reiserfs defaults,notail11/dev/cdrom/mnt/cdromiso9660noauto,owner,ro00/dev/hda2swapswap defaults00/dev/fd0/mnt/floppyvfatnoauto,owner 00none/procprocdefaults00none/dev
43、/ptsdevpts gid=5,mode=62000LinuxLinux操作系统操作系统 例6.6中第二行文件系统/dev/cdrom安装在/mnt/cdrom目录下,文件系统类型是iso9660,安装选项是“noauto,owner,ro”,不使用dump命令进行备份,系统安装文件系统时不进行检查。文件系统安装选项可以有多个,选项之间用逗号隔开,常用选项有:LinuxLinux操作系统操作系统 defaults:缺省值,等于rw,suid,dev,exec,auto,nouser,async。noauto:系统启动时不自动加载该文件系统。ro:该文件系统只能读。rw:该文件系统可以读写。u
44、ser:允许普通用户安装该文件系统。noexec:不允许在该文件系统运行程序。LinuxLinux操作系统操作系统 6.4 文件系统的维护文件系统的维护 6.4.1 检查文件系统检查文件系统Linux是一个稳定的操作系统,一般情况下文件系统并不会出现什么问题。如果系统异常断电或不遵守正确的关机步骤,磁盘缓冲的数据没有写入磁盘,文件系统常常会不正常,这时就需要进行文件系统的检查。Linux系统启动时,会自动检查/etc/fstab文件中设定要自动检查的文件系统,就像Windows系统开机时用scandisk检查磁盘一样。我们也可以使用fsck命令手工对文件系统进行检查,fsck命令的格式如下:L
45、inuxLinux操作系统操作系统 fsck参数设备名参数选项:-tfstype:指定文件系统类型。-A:检查/etc/fstab中的所有文件系统。-V:显示fsck执行时的信息。-N:只是显示fsck每一步的工作,而不进行实际操作。-R:和-A同时使用时,跳过根文件系统。LinuxLinux操作系统操作系统 -P:和-A同时使用时,不跳过根文件系统(要注意使用)。-n:检查文件系统时,对要求回答的所有问题,全部回答“no”。-y:检查文件系统时,对要求回答的所有问题,全部回答“yes”。-p:检查文件系统时,不需要确认就执行所有的修复。LinuxLinux操作系统操作系统 fsck检查结束后
46、,会给出如下错误代码(fsck实际的返回值可能是以上代码值的和,表示出现多个错误):0没有发现错误;1文件系统错误已经更正;2系统需要重新启动;4文件系统错误没有更正;8操作错误;16语法错误;128共享库错误。LinuxLinux操作系统操作系统 手工检查文件系统时应在没有安装的文件系统上进行,如果文件系统已经安装,应先把它卸载。fsck命令检查完文件系统后,如果修复了文件系统,应该重新启动Linux系统。通常fsck检查完文件系统会将没有引用的项直接连接到文件系统中的/lost+found这样的特定目录下,用户可以从这里找回丢失的数据,但这不是一件容易的事。LinuxLinux操作系统操作
47、系统 【实例6.7】rootredflag/root#umount/dev/hda3rootredflag/root#fsck-V-text3/dev/hda3fsck1.27(8-Mar-2002)/sbin/fsck.ext3(1)-/dev/hda3fsck.ext3/dev/hda3e2fsck1.27(8-Mar-2002)/dev/hda3:clean,11/14056files,5907/56227blocks以上命令检查了/dev/hda3上的文件系统。LinuxLinux操作系统操作系统 检查文件系统所需的时间与文件系统的大小和类型有很大关系。ext2类型文件系统在检查时要检
48、查整个文件系统,往往要几分钟到几十分钟时间。而reiserfs和ext3类型文件系统所需的时间要短得多。LinuxLinux操作系统操作系统 6.4.2 磁盘坏块的检查磁盘坏块的检查在磁盘进行分区之后,创建文件系统之前,最好能够使用badblocks命令检查磁盘上的坏块。创建文件系统时可以利用坏块检查结果来跳过坏块,避免数据保存到磁盘坏块上。坏块检查命令badblocks的格式如下:badblocks参数设备名块数LinuxLinux操作系统操作系统 参数选项:-ofilename:将坏块情况输出到文件filename。-s:显示已经检查过的磁盘块数。-w:使用写模式。LinuxLinux操作
49、系统操作系统 例如:rootredflag/root#badblocks-obad/dev/fd01440以上命令检查软盘,软盘的块数是1440(即1440KB),坏块结果输出到文件bad中。rootredflag/root#badblocks-s/dev/hda3Checkingforbadblocks(read-onlytest):done以上命令检查/dev/hda3的坏块情况,并显示检查的进度。LinuxLinux操作系统操作系统 6.4.3 其他常用的文件系统管理命令其他常用的文件系统管理命令1.du参数目录名统计目录使用磁盘空间的情况参数选项:-a:显示所有文件的统计数,而不仅仅是
50、目录的统计数。-s:只显示磁盘的总体使用情况。-b:以字节为单位显示信息,缺省时是块(1024字节)。例如:rootredflag/root#du-b/root以上命令统计/root下各个子目录的大小(以字节显示)。LinuxLinux操作系统操作系统 2.df统计未使用磁盘空间例如:rootredflag/root#dfFilesystem1k-blocksUsedAvailableUse%Mountedon/dev/hda130763161003628 2072688 33%/dev/hda3544474127475098%/mnt/disk1以上命令统计的是当前系统已经安装的文件系统。L