1、实验9 Linux的文件管理实验,一、实验目的 二、实验工具与设备 三、实验预备知识 四、实验内容和步骤 五、实验总结,一、实验目的,1熟悉和理解文件系统的概念和文件系统的类型。 2掌握文件系统的挂载方法。 3学会Linux中数据备份的方法。 4了解Linux系统中文件系统的管理机制。,二、实验工具与设备,1装有Linux系统的计算机。2软磁盘和光盘各一张。,三、实验预备知识,1文件系统类型文件在存储设备上的不同组织方法形成了不同的文件系统,如ext2、ext3、FAT32等。Linux系统通过虚拟文件系统(VFS,Virtual File System)支持多种不同的文件系统,包括ext2、
2、ext3、ext、msdos、vfat、NFS、minix、sysv等,其中,ext2、ext3是专门为Linux设计的文件系统,msdos是微软的DOS文件系统。,Linux的基本文件类型如下。 (1)普通文件:如文本文件、C语言源代码、Shell脚本、二进制的可执行文件等,可用cat、less、more、vi、emacs来查看内容,用mv来改名。 (2)目录文件:包括文件名、子目录名及其指针,是Linux储存文件名的惟一地方,可用ls列出目录文件。目录文件往往简称为目录。,(3)设备文件:Linux系统把每一个I/O设备看成一个文件,与普通文件一样处理,使文件与设备的操作尽可能统一。从用户
3、的角度来看,对I/O设备的使用和一般目录文件的使用一样,不必了解I/O设备的细节。设备文件通常放在/dev目录内,Linux中所有存储设备(如光盘、硬盘、软盘等)的文件系统都有机地无缝地组成了一个树形的文件系统,每个设备在系统中是一个目录。与MS DOS文件系统不同,不是每个分区都有独立的驱动器盘符,例如,软驱A称为/dev/fd0。Linux没有C:盘的概念,它用/dev/hda来表示第一个硬盘。,2挂载文件系统Linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。Linux将这些分属不同分区的、单独的文件系统按一定的方式形成一个系统的总的目录层次结构。这里所说的“按一定方式”,
4、就是指挂载。将一个文件系统的顶层目录挂载到另一个文件系统的子目录上,使它们成为一个整体,称为挂载。该子目录称为挂载点。有以下两点需要注意。,(1)挂载点必须是一个目录。 (2)一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。对于由其他操作系统建立的文件系统,其挂载也是这样。需要理解的是,光盘、软盘、其他操作系统使用的文件系统,其格式与Linux的文件系统格式是不一样的。光盘的格式是ISO9660;软盘的格式是FAT16或ext2;Windows NT的格式是FAT16、NTFS;Windows 98的格式是FAT16、FAT32;Windows 20
5、00和Windows XP的格式是FAT16、FAT32、NTFS。挂载前要了解Linux是否支持所要挂载的文件系统格式。 挂载时使用mount命令。,命令格式:mount -参数 设备名称 挂载点 其中,常用的参数有如下几个 -t ,指定设备的文件系统类型,常见的有如下几种。 minix:linux最早使用的文件系统。 ext2:linux目前常用的文件系统。 ext3:red hat 9.0使用的文件系统,从ext2发展而来,完全兼容ext2。 msdos:MS-DOS的FAT,即FAT16。 vfat:Windows 98常用的FAT32。 NFS:网络文件系统。 ISO9660:CD-
6、ROM光盘标准文件系统。 NTFS:Windows NT 2000的文件系统。 HPFS:OS/2文件系统。 auto:自动检测文件系统。, -o,指定挂载文件系统时的选项,有些也可用在/etc/fstab中,常用的有如下几种。 codepage=XXX:代码页。 iocharset=XXX:字符集。 ro:以只读方式挂载。 rw:以读写方式挂载。 nouser:使一般用户无法挂载。 user:可以让一般用户挂载设备。,注意:mount命令没有建立挂载点(目录)的功能,因此,应确保执行mount命令时,挂载点已经存在(即把文件系统挂载到哪,首先要先建上层目录)。 例如:Windows 98装在
7、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
8、 iocharset选项。其中,codepage指定文件系统的代码页,简体中文代码是936;iocharset指定字符集,简体中文一般用cp936或gb2312。当挂载的文件系统linux不支持时,mount一定出错(如Windows 2000的NTFS)。这时,可以重新编译linux内核,以获得对该文件系统的支持。,3自动挂载每次开机访问Windows分区都要运行mount命令,显然太烦琐。通过对/etc/fstab文件的设置,可以让Linux每次开机时自动挂载希望挂载的分区,如Windows分区。在/etc目录下有个fstab文件,在该文件中列出了Linux开机时自动挂载文件系统的列表。下
9、面是一个/etc/fstab文件内容的实例:,/dev/hda2 / ext3 defaults 1 1 /dev/hda1 /boot ext3 defaults 1 2 none /dev/pts devpts gid=5,mode=62000 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 /dev/hda3 swap swap defaults 0 0 /dev/cdrom /mnt/cdrom iso9660 noauto,codepage=936,iocharset=gb231200 /dev/fd0 /m
10、nt/floppy auto noauto,owner,kudzu 0 0 /dev/hdb1 /mnt/winc vfat defaults,codepage=936,iocharset=cp93600 /dev/hda5 /mnt/wind vfat defaults,codepage=936,iocharset=cp93600,该文件中,每一行是一个自动挂载的文件系统项。在每一项中,第一列是挂载的文件系统的设备名;第二列是挂载点;第三列是挂载的文件系统类型;第四列是挂载的选项,选项间用逗号分隔;第五列是提供DUMP功能,在系统DUMP时是否需要BACKUP的标志位,其内定值是0;第六列设
11、定该文件系统(filesystem)是否要在开机时进行检查(check)。除root的文件系统(filesystem)必要的check为1之外,其他皆可根据需要设定内定值是0。,最后两行是手工添加的Windows下的C、D盘,加了codepage=936和ocharset=cp936参数,以支持中文文件名。参数defaults实际上包含了一组默认参数。 rw:以可读写模式挂载。 suid:开启用户ID和群组ID设置位。 dev:可解读文件系统上的字符或区块设备。 exec:可执行二进制文件。,auto:自动挂载。 nouser:使一般用户无法挂载。 async:以非同步方式执行文件系统的输入输
12、出操作。 可见,该列表中光驱和软驱是不自动挂载的,参数设置为noauto。 注意:如果非要设成自动挂载,则要确保每次开机时光驱和软驱里都要有盘。,四、实验内容和步骤,1挂载文件系统 (1)手工挂载文件系统 用mount命令挂载文件系统。 命令格式:mount -fnrvw -t type device dir 其中, -t type:指定文件系统类型; device:待安装文件系统的块设备名; dir:安装点(目录); -r:将文件系统挂载为只读模式; -w:将文件系统挂载为读写模式。,操作:在软驱中插入一张磁盘,然后将软驱挂载为msdos文件类型。 挂载软磁盘的命令:mount -t msd
13、os /dev/fd0 /mnt/floppy 挂载完成后,用ls命令查看软磁盘中包括的文件。,用mount命令还可以显示所有已安装的文件系统。 命令格式:mount -hV (2)手工卸载文件系统 用umount命令卸载文件系统。 命令格式:umount -hVumount -a -n -v -t types,其中, -a:表示要卸载/etc/fstab中的所有文件系统; -t types:指定文件系统的类型。 操作:卸载软盘的msdos文件系统。 命令:umount -t msdos /dev/fd0 卸载完成后,从软盘驱动器中取出软盘。,操作:优盘的安装与卸载。 在计算机的USB接口中插
14、入优盘,然后用以下方法安装与卸载“优盘”。 在/mnt目录下新建一个子目录,例如:mkdir /mnt/usb。 用mount命令将优盘挂在/mnt/usb目录下:mount /dev/sda /mnt/usb。 用umount /mnt/usb命令卸载优盘,最后才能拔出优盘。 可以用以下命令挂载USB硬盘:mount /dev/sda1 /mnt/usb, 若系统不是安全安装,可能不支持即插即用,可执行命令:modprobe usb-storage 挂载第二个优盘:mount /dev/sdb /mnt/usb。 (3)自动安装和卸载文件系统除了可以用手工方式挂载文件系统外,还可以通过文件/
15、etc/fstab自动挂载文件系统。/etc/fstab文件中包括了所有要挂载的文件系统的列表。在该文件中,每一行代表一个文件系统(除注释行外)。每行的构成如下。, 设备名:指定要安装的存储设备或远程文件系统。 安装点:指定文件系统的安装点。 文件系统类型:指定要挂载的文件系统类型。 挂载选项:一组以逗号分开的挂载选项。 备份选项:指定是否使用dump命令备份文件系统。 检查选项:指定在系统引导时fsck检查文件系统的顺序。,以下是一个/etc/fstab文件的实例: /dev/had3 / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1
16、 2 /dev/had1 /dosc vfat defaults 0 0 /dev/had2 /dosd vfat defaults 0 0 /dev/had4 swap swap defaults 0 0 /dev/fd0 /mnt/floppy msdos noauto,user 0 0 /dev/cdrom /mnt/cdrom iso9660 noauto,user 0 0 None /proc proc defaults 0 0,操作:查看自己计算机Linux系统的/etc/fstab文件构成,若系统中不包括自动挂载软盘和光盘的内容,请增加一行,使系统启动时自动挂载软盘和光盘文件系统
17、。,2监视文件系统状态 可以用df命令显示文件系统的使用情况。使用df的例子: Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda3 2563244 1344202 1086506 55% / /dev/hda2 1614272 928 1613344 0% /dosc /dev/hda1 2004192 1509268 494924 75% /dosd,None 127788 0 127788 0% /devshm /dev/fd0 1423 195 1229 14% /mnt/floppy 可以用du命令显示文件系统中一
18、个目录及所有子目录所占空间。 一个使用du的例子: du s /home 310984 /home,3维护文件系统 对文件系统进行维护的方法如下。 (1)在文件/etc/fstab中检查选项参数设置为大于0的正整数,使系统在启动时自动检查文件系统的完整性。 (2)用fsck命令检查文件系统。 fsck命令是一个前端命令,根据不同的文件系统类型,将调用不同的检查程序,如fsck.ext2。,4软磁盘的使用 为了在Linux中使用一张新的磁盘,可按以下步骤进行。 (1)将软磁盘插入软驱。 (2)对磁盘进行格式化,命令如下:fdformat /dev/fd0H1440,(3)在软磁盘上建立文件系统,
19、命令如下:mkfs /dev/fd0 (创建ext3文件系统) 或mkdosfs /dev/fd0 (创建dos文件系统) (4)将软磁盘挂载到主文件系统上,命令如下:mount /dev/fd0 /mnt/floppy (5)进行文件复制等操作。 (6)卸载文件系统,命令如下:umount /mnt/floppy,5硬盘的使用 (1)创建分区在Linux中,硬盘(IDE设备)对应的设备文件均放在/dev目录下,一般一台计算机可以接多个物理硬盘,各硬盘对应的设备文件如下。 /dev/had:Primary Master硬盘。 /dev/hdb:Primary Slave硬盘。 /dev/hdc
20、:Secondary Master硬盘。 /dev/hdd:Secondary Slave硬盘。,每个物理硬盘还可以分区,每个分区也有对应的设备文件。例如,若Primary Master硬盘有4个分区,则各分区的设备文件分别为/dev/hda1、/dev/hda2、/dev/hda3和/dev/hda4。硬盘使用前,应对其进行分区。在Linux中常用的分区工具是fdisk。用fdisk创建分区的命令:fdisk /dev/had或 fdisk /dev/hdc 执行该命令后,进入fdisk界面,如图9-1所示。图中创建了一个hda4的分区。,(2)创建文件系统硬盘分区后,可以在新建的分区上创建
21、Linux兼容的文件系统。创建文件系统后,才可以使用分区上的存储空间。创建ext3文件系统的命令:mkfs /dev/hda4。创建dos文件系统的命令:mkdosfs /dev/hda4。 (3)将分区挂载到主文件系统中除主文件系统以外,文件系统必须挂载到主文件系统目录树下才能使用。,图9-1 fdisk分区,挂载文件系统的命令:mount -t vfat /dev/hda4 /mnt。 (4)卸载文件系统的命令:umount /mnt 6数据备份和文件的压缩由于硬盘上的数据很容易受到损坏,需要将重要的数据和文件进行备份。备份文件一般存放在其他介质上,如软磁盘、优盘、光盘等。最简单的备份方法
22、是文件复制,在Linux中广泛使用tar命令进行备份。,操作:使用以下命令将/etc为起点的整个目录树进行备份。 (1)用tar命令生成备份档文件:tar -cvf etcbak.tar /etc。 (2)用gzip命令将备份文件进行压缩,生成压缩包文件etcbak.tar.gz:gzip etcbak.atr。 上述操作也可以直接用tar命令带z参数实现,即tar -czvf etcbak.tgz /etc。 备份的文件随时可以恢复还原。 操作:将以上操作生成的“etcbak.tar.gz”还原。,(1)用gzip命令将包文件解压缩:gzip-d etcbak.tar.gz。 包文件etcb
23、ak.tar.gz被解压为etcbak.tar。 (2)用tar命令还原etcbak.tar:tar -xvf etcbak.tar。 上述操作也可以直接用带z参数的tar命令实现:tar -xzvf etcbak.tar.gz。,(3)将数据备份在软磁盘上:tar -cvf /dev/fd0 /etc或 tar -czvf /dev/fd0 /etc。该方法在软磁盘上建立的备份数据不需要任何文件系统,用户也不可能通过挂载磁盘来访问磁盘上的数据。其中,后一个命令用z参数实现带压缩备份。,7在GNOME下管理磁盘在图形用户界面GNOME下,可以直接在对话框中挂载软磁盘、光盘和其他存储器。 下面以
24、软磁盘为例进行挂载操作。 (1)将软磁盘插入软驱。 (2)在GNOME的“主菜单”中选择“系统工具磁盘管理”选项,弹出“用户挂载工具”对话框,如图9-2所示。,图9-2 用户挂载工具对话框,(3)“用户挂载工具”对话框中的第一项为软磁盘(其中挂载目录为“/mnt/floppy”,设备驱动为“/dev/fd0”,类型为“auto”即自动识别磁盘文件类型),单击“挂载(M)”按钮,将软磁盘载入系统。完成后,该按钮变为“卸载(M)”。 (4)将系统中的一个文件复制到软磁盘上,命令如下:cp /etc/samba/smb.conf /mnt/floppy/smb.conf (5)查看磁盘上的文件,正确无误后,单击“用户挂载工具”对话框中“卸载(M)”按钮卸载磁盘。,五、实验总结,1写出实验报告。 2在光驱中插入一张包括msdos文件系统的光盘,然后将软驱挂载到Linux系统中,并写出挂载命令。 3查看自己计算机Linux系统的/etc/fstab文件构成,在系统中安装优盘的驱动程序,安装完成后再查看/etc/fstab文件的构成,并比较前后的不同。,4试在硬盘中(假设为/dev/hda)创建一个新的分区,在该分区中创建dos文件系统,并必须将该文件系统挂载到主文件系统目录树下(注意:为了能创建新的分区,在安装Linux系统创建分区时留有部分“自由(free)”的空间)。,