首页 Linux文件系统概念解释(29页)

Linux文件系统概念解释(29页)

举报
开通vip

Linux文件系统概念解释(29页) LinuxLinux文件系统概念解释文件系统概念解释 杜育根杜育根 文件的逻辑结构文件的逻辑结构 zz 文件的逻辑结构是用户可见结构,即从用户角度文件的逻辑结构是用户可见结构,即从用户角度 观察到的文件系统。可以分为两大类:字节流式观察到的文件系统。可以分为两大类:字节流式 的无结构文件和记录式有结构文件。由字节流的无结构文件和记录式有结构文件。由字节流 (字节序列)组成的文件是一种无结构文件或流(字节序列)组成的文件是一种无结构文件或流 式文件,不考虑文件内部的逻辑结构,只是简单式文件,不考虑文件内部的...

Linux文件系统概念解释(29页)
LinuxLinux文件系统概念解释文件系统概念解释 杜育根杜育根 文件的逻辑结构文件的逻辑结构 zz 文件的逻辑结构是用户可见结构,即从用户角度文件的逻辑结构是用户可见结构,即从用户角度 观察到的文件系统。可以分为两大类:字节流式观察到的文件系统。可以分为两大类:字节流式 的无结构文件和记录式有结构文件。由字节流的无结构文件和记录式有结构文件。由字节流 (字节序列)组成的文件是一种无结构文件或流(字节序列)组成的文件是一种无结构文件或流 式文件,不考虑文件内部的逻辑结构,只是简单式文件,不考虑文件内部的逻辑结构,只是简单 地看作式一系列字节的序列,便于在文件任意位地看作式一系列字节的序列,便于在文件任意位 置添加内容。很多操作系统多采用这种形式,如置添加内容。很多操作系统多采用这种形式,如 UNIX/LinuxUNIX/Linux、、DOSDOS、、WindowsWindows等。由记录组成的文等。由记录组成的文 件称为记录式文件,记录是这种文件的基本信息件称为记录式文件,记录是这种文件的基本信息 单位,记录式文件通常用于信息管理。单位,记录式文件通常用于信息管理。 LinuxLinux系统文件类型系统文件类型 zz LinuxLinux系统中文件的类型包括:普通文件、目录文件、连系统中文件的类型包括:普通文件、目录文件、连 接文件、设备文件、管道(接文件、设备文件、管道(FIFOFIFO)文件和套接字文件。)文件和套接字文件。 zz 普通文件:是流式文件,普通文件:是流式文件, zz 目录文件:用于 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示表示和管理系统中的全部文件目录文件:用于表示表示和管理系统中的全部文件 zz 连接文件:用于不同目录下文件的共享连接文件:用于不同目录下文件的共享 zz 设备文件:包括块设备文件和字符设备文件。块设备文件设备文件:包括块设备文件和字符设备文件。块设备文件 表示磁盘、关盘等,字符设备文件联系着按照字符进行操表示磁盘、关盘等,字符设备文件联系着按照字符进行操 作的终端、键盘等设备。作的终端、键盘等设备。 zz 管道(管道(FIFOFIFO)文件:提供进程间通信的一种方式。)文件:提供进程间通信的一种方式。 zz 套接字(套接字(socketsocket)文件和网络通信有关。)文件和网络通信有关。 逻辑文件系统逻辑文件系统 zz LinuxLinux支持多种文件系统支持多种文件系统,,教材中教材中(p141(p141--142)142) 列出部分支持的文件系统类型。列出部分支持的文件系统类型。 zz ext2ext2(或(或ext3ext3)是)是LinuxLinux默认的文件系统。默认的文件系统。 我们把我们把ext2ext2(或(或ext3ext3)以及)以及LinuxLinux支持的文支持的文 件系统称为逻辑文件系统。件系统称为逻辑文件系统。 虚拟文件系统虚拟文件系统 zz LinuxLinux在传统的逻辑文件系统的基础上,增加了一在传统的逻辑文件系统的基础上,增加了一 个虚拟文件系统(个虚拟文件系统(Virtual File SystemVirtual File System,,VFSVFS)) 的接口层,的接口层,VFSVFS在最上层,管理各种逻辑文件系在最上层,管理各种逻辑文件系 统,屏蔽了他们之间的差异,为用户命令、函数统,屏蔽了他们之间的差异,为用户命令、函数 调用和内核其他部分提供访问文件和设备的统一调用和内核其他部分提供访问文件和设备的统一 接口,使得不同的逻辑文件系统按照同样的模式接口,使得不同的逻辑文件系统按照同样的模式 呈现在使用者面前,对于用户来讲,觉察不到逻呈现在使用者面前,对于用户来讲,觉察不到逻 辑文件系统的差异,可以使用同样的命令来操作辑文件系统的差异,可以使用同样的命令来操作 不同的逻辑文件系统所管理的文件,可以在他们不同的逻辑文件系统所管理的文件,可以在他们 之间自由地复制文件。之间自由地复制文件。 虚拟文件系统 逻辑文件系统 字符设备 块设备 网络设备 网络 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 Buffer cache 索引节点、连接(链接)索引节点、连接(链接) zz 文件系统的每个对象都分配到一个独一无二的索文件系统的每个对象都分配到一个独一无二的索 引,叫做索引节点号引,叫做索引节点号((inodeinode, i, i--node, index node, index node)node)。文件系统利用索引节点(。文件系统利用索引节点(inodeinode)来描述)来描述 文件系统的拓扑结构。在单个文件系统中,每个文件系统的拓扑结构。在单个文件系统中,每个 文件对应一个索引节点,而每个索引节点有一个文件对应一个索引节点,而每个索引节点有一个 唯一的整数标识符。文件系统中所有文件的索引唯一的整数标识符。文件系统中所有文件的索引 节点保存在索引节点表中。节点保存在索引节点表中。Ext2 Ext2 文件系统中的目文件系统中的目 录实际是一种特殊文件,它们也有对应的索引节录实际是一种特殊文件,它们也有对应的索引节 点,索引节点指向的数据块中包含该目录中所有点,索引节点指向的数据块中包含该目录中所有 的目录项(文件、目录、符号链接等),每个目的目录项(文件、目录、符号链接等),每个目 录项对应自己的索引节点。录项对应自己的索引节点。 图图 1313--2 Ext2 2 Ext2 索引节点索引节点 模 式 所 有 者 信 息 大 小 时 间 戳 直 接 指 针 单 级 间 接 指 针 二 级 间 接 指 针 三 级 间 接 指 针 数 据 数 据 数 据 数 据 数 据 数 据 数 据 数 据 数 据 数 据 e x t2 _ in o d e Ext2 Ext2 索引节点数据域的描述索引节点数据域的描述 模式模式 该数据域包含索引节点所描述的对象类型,该数据域包含索引节点所描述的对象类型, 以以 及用户的许可信息。在及用户的许可信息。在 Ext2 Ext2 中,每个中,每个 节点可描述一个文件、目录、符号链接、块节点可描述一个文件、目录、符号链接、块 设备、字符设备或一个设备、字符设备或一个 FIFOFIFO。。 所有者信息所有者信息 文件或目录所有者的用户和组标识符。文件或目录所有者的用户和组标识符。 大小大小 文件以字节为单位的大小。文件以字节为单位的大小。 时间戳时间戳 该索引节点的创建时间以及索引节点的最后该索引节点的创建时间以及索引节点的最后 改动时间。数据块包含该索引节点所描述的改动时间。数据块包含该索引节点所描述的 数据的数据块指针。对于前数据的数据块指针。对于前 12 12 个数据块指针个数据块指针 来说,它们指向的数据块是包含实际文件数来说,它们指向的数据块是包含实际文件数 据的数据块,而后面的三个指针则包含间接据的数据块,而后面的三个指针则包含间接 数据块指针。数据块指针。 这里需要对上表中的数据块信息作进一步解释。前这里需要对上表中的数据块信息作进一步解释。前 12 12 个数据块指个数据块指 针直接指向包含文件数据的数据块,而其后的三个数据块则是间接指针直接指向包含文件数据的数据块,而其后的三个数据块则是间接指 针。这样的安排是为了适应文件的大小变化。假如文件系统可保存的最针。这样的安排是为了适应文件的大小变化。假如文件系统可保存的最 大文件为大文件为4MB4MB,而每个数据块的大小为,而每个数据块的大小为 1024 1024 字节。如果索引节点全部字节。如果索引节点全部 利用直接数据块指针的话,则需要利用直接数据块指针的话,则需要 4096 4096 个数据块指针,而实际上,文个数据块指针,而实际上,文 件系统中大部分的文件不可能有如此之大。如果要保存件系统中大部分的文件不可能有如此之大。如果要保存 1 MB 1 MB 的文件,的文件, 实际只需实际只需 1024 1024 个数据块指针,因此大量的数据块指针被浪费了。个数据块指针,因此大量的数据块指针被浪费了。 为了解决上述问题,多数利用索引节点的文件系统利用多级数据块为了解决上述问题,多数利用索引节点的文件系统利用多级数据块 指针。参见图指针。参见图 1313--22,假设数据块大小为,假设数据块大小为 1024 1024 字节。利用前字节。利用前 12 12 个直个直 接指针,可保存最大为接指针,可保存最大为 12 KB 12 KB 的文件,对这些文件的访问将非常迅的文件,对这些文件的访问将非常迅 速。如果文件大小超过了速。如果文件大小超过了 12 KB12 KB,则利用单级间接指针,这一指针指向,则利用单级间接指针,这一指针指向 的数据块保存有一组数据块指针,这些指针依次指向包含实际数据的数的数据块保存有一组数据块指针,这些指针依次指向包含实际数据的数 据块。如果每个数据块指针占用据块。如果每个数据块指针占用 4 4 个字节,则每个单级间接指针数据个字节,则每个单级间接指针数据 块可包含块可包含 1024 / 4 = 256 1024 / 4 = 256 个数据块指针,因此,利用直接指针和单级个数据块指针,因此,利用直接指针和单级 间接指针可保存间接指针可保存 12 12 ×× 1024 + 256 1024 + 256 ×× 1024 = 268 KB 1024 = 268 KB 的文件。当文件的文件。当文件 超过超过 268 K 268 K 字节时,再利用二级间接指针。类似地,可计算利用直接字节时,再利用二级间接指针。类似地,可计算利用直接 指针、单级间接指针和二级间接指针时可保存的最大文件为:指针、单级间接指针和二级间接指针时可保存的最大文件为: 12 12 ×× 1024 + 256 1024 + 256 ×× 1024 + 256 1024 + 256 ×× 256 256 ×× 1024 = 65804 KB1024 = 65804 KB 约为约为 65 MB 65 MB 大小。依次类推,得出利用三级间接指针时,可保存的大小。依次类推,得出利用三级间接指针时,可保存的 最大文件为最大文件为16842764 KB 16842764 KB ≈≈ 16 GB16 GB。。 实际上实际上,32,32位的位的PCPC机上机上LinuxLinux系统中系统中,,寻址范围寻址范围3232位,文件最大只能达位,文件最大只能达 到到4GB4GB。。 挂载及卸载挂载及卸载 查看硬盘分区查看硬盘分区 z用“系统工具”菜单项下的“硬件情况详细”查 看硬件分区情况; z或用“fdisk -l”命令(某些版本可能需要用 “fdisk -l 硬盘设备名”)查看硬盘分区情 况,操作如下: zz 可以看到,硬盘上有可以看到,硬盘上有55个个WindowsWindows分区,分分区,分 别是别是/dev/hda1/dev/hda1、、/dev/hda6/dev/hda6、、/dev/hda7/dev/hda7、、 /dev/hda9/dev/hda9、、/dev/hda10/dev/hda10。。 mountmount命令命令 zz mountmount命令的一般使用方法如下:命令的一般使用方法如下: zz mount mount --t t 分区格式分区格式 分区位置分区位置 加载位置加载位置 zz 举例:要访问举例:要访问/dev/hda1/dev/hda1的内容,可以用以下代码的内容,可以用以下代码 进行加载:进行加载: zz $ mount $ mount --t t vfatvfat /dev/hda1 //dev/hda1 /mnt/cmnt/c --t t vfatvfat表示类型是表示类型是vfat(Windowsvfat(Windows 95 FAT32)95 FAT32)分区格分区格 式;式;/dev/hda1/dev/hda1是被加载的分区位置;是被加载的分区位置;//mnt/cmnt/c代表代表 LinuxLinux里里//mntmnt目录下的名字为目录下的名字为cc的目录,如果不存的目录,如果不存 在,则先用在,则先用mkdirmkdir命令建立这个目录。命令建立这个目录。 对分区进行写操作对分区进行写操作 zz 如果 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 对分区进行写操作,则用以下命令:如果要求对分区进行写操作,则用以下命令: zz 其中的其中的--rwrw参数表示参数表示ReadRead和和WriteWrite。。 zz 直接用直接用mount mount --rwrw加载的加载的WindowsWindows分区,所有文件分区,所有文件 对普通用户都只有读权限而没有写权限对普通用户都只有读权限而没有写权限((但但rootroot用用 户有写权限户有写权限))。要想让普通用户也能读写,可在。要想让普通用户也能读写,可在 mountmount命令中加上命令中加上umaskumask=000=000参数,代码如下:参数,代码如下: zz $ mount $ mount --rwrw --t t vfatvfat --o o umaskumask=000=000,, iocharsetiocharset=cp936 /dev/hda1 /=cp936 /dev/hda1 /mnt/cmnt/c zz 使使WindowsWindows分区里面的中文文件名分区里面的中文文件名((目录名目录名))正确正确 显示显示 显示中文文件显示中文文件((目录目录))名名 zz 用用mountmount命令加载命令加载WindowsWindows分区后,中文常显示为分区后,中文常显示为““??””号。号。 这是因为发行版自带的内核默认用这是因为发行版自带的内核默认用ISOISO--88598859编码来处理加编码来处理加 载上的载上的WindowsWindows分区文件分区文件((目录目录))名,只能处理单字节的英名,只能处理单字节的英 文字体而无法显示双字节的中文字体。要正确显示,可以文字体而无法显示双字节的中文字体。要正确显示,可以 用下面的代码加载用下面的代码加载WindowsWindows分区:分区: zz $ mount $ mount --t t vfatvfat --o o iocharsetiocharset=cp936 /dev/hda1 =cp936 /dev/hda1 //mnt/cmnt/c 这个命令能让内核以这个命令能让内核以cp936cp936编码处理编码处理WindowsWindows分分 区的文件区的文件((目录目录))名,从而正确显示中文文件名,从而正确显示中文文件((目录目录))名。名。 zz 还有一个还有一个““一劳永逸一劳永逸””的方法,即重新配置内核,在的方法,即重新配置内核,在““File File systemssystems””--““Native Language SupportNative Language Support””--““Default NLS Default NLS OptionOption””里填入里填入cp936cp936。重新编译内核后,无需加上。重新编译内核后,无需加上--o o iocharsetiocharset=cp936=cp936参数也能正确显示。参数也能正确显示。 各种格式的各种格式的mountmount命令格式命令格式 USB USB 闪存闪存 zz cdcd mntmnt zz mkdirmkdir usbdirusbdir zz mount /dev/sda1 /mount /dev/sda1 /mnt/usbdirmnt/usbdir fat32fat32的分区的分区: : zz mkdirmkdir CC zz mount mount --o codepage=936,iocharset=cp936 o codepage=936,iocharset=cp936 /dev/hda2 //dev/hda2 /mntmnt/C/C CDROM:CDROM: zz mkdirmkdir cdromcdrom zz mount mount --t iso9600 t iso9600 --o o iocharsetiocharset=gb2312,umask=0,codepage=936 =gb2312,umask=0,codepage=936 zz /dev//dev/cdromcdrom //mnt/cdrommnt/cdrom ISO ISO 文件文件: : zz mkdirmkdir isodirisodir zz mount mount --o loop /o loop /abc.isoabc.iso //mntmnt/ / isodirisodir 软驱软驱:: zz mkdirmkdir floppyfloppy zz mount /dev/fd0 /mount /dev/fd0 /mntmnt/floppy/floppy NTFS NTFS 分区分区 zz Windows 2000/XP/2003Windows 2000/XP/2003操作系统的分区格操作系统的分区格 式是式是NTFSNTFS。。NTFSNTFS格式支持高达格式支持高达2TB2TB的大的大 硬盘,而且性能不会随着磁盘容量的增大硬盘,而且性能不会随着磁盘容量的增大 而降低。但是,因为这个格式在而降低。但是,因为这个格式在LinuxLinux下不下不 能直接使用,所以能直接使用,所以LinuxLinux用户不能充分利用用户不能充分利用 NTFSNTFS格式的硬盘空间。格式的硬盘空间。 因为因为LinuxLinux没有将挂载没有将挂载NTFSNTFS格式这项功格式这项功 能编译到内核里面能编译到内核里面。。 1.1.首先确定你的首先确定你的linuxlinux kernelkernel版本是版本是 什么什么 zz Redhat9.0Redhat9.0默认的默认的kernelkernel版本是版本是2.4.202.4.20--88 zz #> rpm #> rpm --qa|grepqa|grep kernel kernel 会显示类式的如下信息会显示类式的如下信息: : kernelkernel--pcmciapcmcia--cscs--3.1.313.1.31--13 13 kernelkernel--2.4.202.4.20--8 8 这样这样,,你就看到了你的你就看到了你的kernelkernel版本是版本是2.4.202.4.20--88 2. RPM2. RPM包包,,下载下载 zz 打开下面这个网址打开下面这个网址: : http://rpm.pbone.net/index.php3/stat/16/limit/1/dl/http://rpm.pbone.net/index.php3/stat/16/limit/1/dl/ 40/idka/170540/idka/1705 找到和你的找到和你的kernelkernel版本对应的版本对应的kernelkernel--ntfsntfs RPMRPM包包,, 下载下载. . 我用的是我用的是Redhat9.0, KernelRedhat9.0, Kernel版本是版本是2.4.202.4.20--8,8,所以所以 我找的包是我找的包是kernelkernel--ntfsntfs--2.4.202.4.20--8.i686.rpm ,8.i686.rpm ,下载地下载地 址址:ftp://ftp.uni:ftp://ftp.uni-- bayreuth.de/pub/linux/drivers/linuxbayreuth.de/pub/linux/drivers/linux--ntfs/kernelntfs/kernel-- ntfsntfs--2.4.202.4.20--8.i686.rpm,8.i686.rpm,下载下载.. 3.3.安装安装: : zz #> rpm #> rpm --ivhivh kernelkernel--ntfsntfs--2.4.202.4.20-- 20.8.i686.rpm20.8.i686.rpm 44.mount.mount你的你的NTFSNTFS分区分区 zz $$ mount mount --t t ntfsntfs /dev/hda1 //dev/hda1 /mnt/cmnt/c 配置配置/etc//etc/fstabfstab文件文件 zz ‘‘/etc//etc/fstabfstab’’是是‘‘mountmount’’命令重要的配置文件。您可以命令重要的配置文件。您可以‘‘rootroot’’身份身份 通过编辑器修改这个文件。通过编辑器修改这个文件。 zz ‘‘/etc//etc/fstabfstab’’有几个用处:有几个用处: zz 决定开机时自动挂载哪些介质;决定开机时自动挂载哪些介质; zz 指定每个介质挂载时的可选项、载入点;指定每个介质挂载时的可选项、载入点; zz 系统用来挂载几个虚拟文件系统。系统用来挂载几个虚拟文件系统。 zz 开机时挂载介质开机时挂载介质 zz 默认下,开机时默认下,开机时‘‘fstabfstab’’中列出的所有介质都将被挂载。如果中列出的所有介质都将被挂载。如果 其中某个介质出了问题,其中某个介质出了问题,‘‘mountmount’’会显示出错信息,然后继会显示出错信息,然后继 续下一条目。请注意,这对于网络介质,比如续下一条目。请注意,这对于网络介质,比如 NFS NFS 或或 SMB SMB 共享,也有效。如果想取消开机时的自动挂载,您得共享,也有效。如果想取消开机时的自动挂载,您得 在在‘‘/etc//etc/fstabfstab’’给相应条目提供给相应条目提供‘‘noautonoauto’’可选项可选项 LABEL=/ / ext3 defaults 1 1 LABEL=/ / ext3 defaults 1 1 none /dev/pts none /dev/pts devptsdevpts gidgid=5,mode=620 0 0 =5,mode=620 0 0 LABEL=/home LABEL=/home /home/home ext3 defaults 1 2 ext3 defaults 1 2 none /proc proc defaults 0 0 none /proc proc defaults 0 0 none /dev/none /dev/shmshm tmpfstmpfs defaults 0 0 defaults 0 0 LABEL=/LABEL=/tmptmp /tmp/tmp ext3 defaults 1 2 ext3 defaults 1 2 /dev/hda11 swap /dev/hda11 swap swapswap defaults 0 0 defaults 0 0 /dev//dev/cdromcdrom //mnt/cdrommnt/cdrom udf,iso9660 udf,iso9660 noauto,owner,kudzu,ronoauto,owner,kudzu,ro 0 0 0 0 /dev/hda1 //dev/hda1 /mnt/cmnt/c vfatvfat codepage=936,iocharset=cp936 0 0 codepage=936,iocharset=cp936 0 0 auto,umaskauto,umask=0 0 =0 0 0 0 /dev/hda5 //dev/hda5 /mnt/dmnt/d vfatvfat codepage=936,iocharset=cp936 0 0 codepage=936,iocharset=cp936 0 0 auto,umaskauto,umask=0 0 =0 0 0 0 /dev/hda6 //dev/hda6 /mnt/emnt/e vfatvfat codepage=936,iocharset=cp936 0 0 codepage=936,iocharset=cp936 0 0 auto,umaskauto,umask=0 0 =0 0 0 0 /dev/hda7 //dev/hda7 /mnt/fmnt/f vfatvfat codepage=936,iocharset=cp936 0 0 codepage=936,iocharset=cp936 0 0 auto,umaskauto,umask=0 0 =0 0 0 0 卸载卸载 umountumount zz umountumount 挂载点挂载点
本文档为【Linux文件系统概念解释(29页)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_904263
暂无简介~
格式:pdf
大小:243KB
软件:PDF阅读器
页数:29
分类:互联网
上传时间:2010-01-14
浏览量:19