当前位置:文档之家› liunx文件系统

liunx文件系统

Linux 文件系统概述
作者:北南南北
来自:https://www.doczj.com/doc/d01008050.html,
摘要: 本文通过文件系统的定义说起,然后通过引文简单的介绍了一下文件系统类型;对Linux常用的ext2、ext3及reiserfs 根据本人使用经验也泛泛的谈了谈,但并不是专业的。如何阅读本文,还是用马克思理论告诉我们的方法:一分为二,边看边批吧;目录索引 一、什么是文件系统 (Filesystem)
1、常见定义方法;
2、理解文件系统的关健词;
1)磁盘的分割:
2)文件系统的创建:
3)挂载(mount):
4)文件系统可视的几何结构:
二、文件系统的类型;
三、Linux 文件系统的选择和安全性;
1、Linux操作系统安装过程中的文件系统的选择;
1)ext2 文件系统;
2)ext3 文件系统:是由ext2文件系统发展而来;
3)reiserfs 文件系统;
4)ext3、reiserfs、ext2 文件系统对大文件支持的对比;
2、ext2、ext3及reiserfs文件系统的安全性;
1)ext2、ext3和reiserfs 文件系统自动修复能力对比;
2)ext2、ext3和reiserfs 反删除功能对比;
四、Linux 支持的文件系统;
五、文件系统的特性;
六、在Linux中,文件系统的创建和挂载; 七、关于本文;
八、参考文档;
九、相关文档;
文件系统
□刀哥 发表于 2005-11-9 14:00:00
1、文件系统的概念:
1) IRIX目录结构:
每一个IRIX系统盘包含一些标准的目录,操作系统相关文件保存在这些目录中。这
种目录结构不完全合理,它随着UNIX版本的升级而得以改进。

表3-1 标准目录与内容
目录 变名 内容
/ root目录,包含IRIX核心(unix)
/dev 设备文件包括:磁盘、磁带、CD-ROM
/etc 包含重要的系统配置文件和维护命令
/etc/config /var/config 系统配置文件
/lib 重要的编译器库文件
/sbin 最小可操作系统的命令
/tmp 临时文件
/usr 在某些文件系统中,一个文件系统的安装

/usr/bin /bin 命令
/usr/etc 重要的系统配置文件和维护命令
/usr/include C语言的头文件
/usr/people 用户的主目录
/usr/share/catman 帮助文件
/var 系统文件
/var/adm /usr/adm 系统日志文件
/var/mail /usr/mail 邮件

2) 一般文件系统的概念:
文件系统是指一种数据结构,它是在一个磁盘分区中被组织起来的目录和文件。一个
磁盘分区只能有一种文件系统。
文件是由一维数组组成,文件的存储结构叫inodes,一个文件不能属于两种文件系统。
目录是一个容器包含文件和子目录。一个目录不能属于两种文件系统。
任何一个文件系统的起始点是一个没有名字的目录,它作为Root文件系统。通常,Root
文件系统的目录用"/"表示。
A. Inodes:
每个文件的信息存储在inodes中,Inodes是index node的缩写。一

个inode包含以下信息:文件类型、文件的访问权限、文件大小、文件的所以者、文件的修改日期,它不包含文件名和目录。
B.文件类型:
文件系统包含以下文件类型:普通文件、目录、字符设备、块设备、链接文件。


2、IRIX文件系统类型:

1) XFS文件系统:

XFS文件系统是一种新的IRIX文件系统,它需要32M内存。


2) EFS文件系统:
EFS文件系统是IRIX文件系统早期的版本,它已不再使用。


3) NFS文件系统:
NFS文件系统是网络文件系统的缩写。在IRIX系统中,NFS系统是可选的软件。一
个主机输出NFS文件系统,网络上的其它主机通过网络可以访问被输出的NFS文件
系统。


4) /proc文件系统:
/proc文件系统为监控程序提供接口,它又叫调试文件系统。/proc文件系统安装在/proc
目录下,链接到/debug目录。/proc文件不消耗磁盘空间,所以使用df命令不会显示/proc
文件系统,它们不能被删除或移动。


3、生成文件系统:
使用mkfs_xfs、mkfs_efs命令将磁盘分区变成XFS或EFS文件系统。
例如:将dks0d2s7分区变成XFS文件系统的最简单的方法:
#mkfs_xfs /dev/rdsk/des0d2s7
详细信息参阅mkfs_xfs帮助信息



4、文件系统的安装和卸载:
文件系统必须被安装后才能使用。当文件系统被安装时,用户应给出文件系统的设备
名和目录名,目录名叫安装点。当用户安装文件系统到安装目录后,安装目录中原来
的文件不能被使用,直到卸载文件系统。
Root文件系统不象其它的文件系统,它是在系统启动时被安装,它不能被卸载。系统
管理员在维护系统时可以在最小系统状态下,卸载Root和Usr文件系统。



--------------------------
安装文件系统的方法:
--------------------------
1) 手工安装:
使用mount命令手工安装文件系统。基本格式:
#mount device_file mount_point_directory
#mount host:direcotry mount_point_directory
device_file是块设备文件;host:directory是远程主机和目录,它必须是远程主机已经使
用export命令输出;munt_point_directory是安装点,它必须在mount使用命令前已经
存在。
如果用户使用mount命令忽略device_file或mount_point_directory参数,mount命令检
测/etc/fstab文件找到错过的参数。
例如:手工安装文件系统:
#mount /dev/dsk/dks0d1s6 /usr

2) 自动安装:
/etc/fstab文件包含有关每个文件系统和swap分区的信息,当系统启动时,这些文件系
统被自动安装。/proc文件系统没有被列在/etc/fstab文件中,因为它不能使用mount命
令安装。
例如:在/etc/fstab文件中出现以下内容,系统每次启动将/dev/dsk/dks0d3s2自动安装
到/aa目录下。
/dev/dsk/dks0d3s2 /aa xfs rw,raw=/de

v/rdsk/dks0d3s2 0 0
/dev/dsk/dks0d3s2:块设备文件。
/aa:安装点。
Xfs:文件系统类型。
Rw,raw=:可选项。"rw"表示文件系统可"读"、"写";"raw="表示给文件系统raw
设备文件名。
0 0:表示dump周期的频率和fsck通过的优先权。
系统磁盘的swap分区没有被列在/etc/fstab文件中,但是额外的swap分区必须被写进
/etc/fstab中。


--------------------------
卸载文件系统的方法:
--------------------------
当系统关闭时,文件系统被自动卸载。使用umount命令可以手工卸载文件系统,手
工卸载有三种基本格式:
A. umount mount_point_directory
B. umount device_file
C. umount host:directory
5、文件系统的维护:
为了维护文件系统,系统管理员需要定期执行以下工作:
A. 监视磁盘空间的大小。
B. 检测文件系统的运行状况。
C. 备份。
1) 管理磁盘空间:
通常,工作站和服务器的硬盘上有一些不用的文件,这极大的浪费了硬盘空间。作为
系统管理员应提高硬盘的利用率。
A. 显示硬盘的利用率:
管理员可以使用df、du命令快速检查硬盘的使用率。
#df
Filesystem Type blocks use avail %use Mounted on
/dev/root xfs 7827864 3309456 4518408 43 /
/dev/dsk/dks0d3s2 xfs 17768640 189104 17579536 2 /aa
#du -s /
5233925 /
du -s显示指定目录的文件大小。
B. 拷贝XFS文件系统:
使用xfs-copy可以拷贝XFS文件系统,用户可以将一个或几个文件系统拷贝到磁盘分
区或文件中。
#xfs_copy /dev/dsk/dks0d3s7 /dev/dsk/dks5d2s7
C. XFS文件系统的检测和修复:
管理员使用xfs_check、 xfs_repair命令检查XFS文件系统运行状态。xfs_repair命令
可以修复文件系统的某些问题。
在运行xfs_check 、xfs_repair之前,被检测的文件系统必须被卸载,否则文件系统会
崩溃。
xfs_repair -n命令比xfs_check检测的更完全。
# xfs_repair -n device
device是包含XFS文件系统的磁盘分区或logicl volume。
当xfs_repair没有发现问题,系统会输出下列信息:
Phase 1 - find and verify superblock...
Phase 2 - scan filesystem freespace and inode maps...
- found root inode chunk
Phase 3 - for each AG...
………………………………………………………..
Phase 4 - check for duplicate blocks...
- setting up duplicate extent list...
- check for inodes claiming duplicate blocks...
No modify flag set, skipping phase 5
Phase 6 - check inode connectivity...
- traversing filesystem starting at / ...
- traversal finished ...
- traversing all unattached subtrees ...
- traversals finished ...
- moving disconnected inodes to lost+found ...
Phase 7 - verify link counts...
No modify flag set, skipping filesystem flush and exiting.
当xfs_repair发现文件系统问题时,可以使用xfs_repair device命令

修复。
#xfs_check -n
如果没有发现问题,xfs_check命令不返回任何信息。

==================================================
Swap
===================================================
IRIX操作系统使用磁盘的一部分作为swap空间,用于保存部分物理内存存放不
下用户程序。


查看Swap空间:


使用swap命令查看swap 空间的使用情况。
# swap -l
lswap path dev pri swaplo blocks free maxswap vswap
1 /dev/swap
0,166 0 0 1048576 1048576 1048576 0
管理员发现swap空间用完,有两种方法可以解决:增加物理内存;加入更多的
swap空间。增加swap空间不会改善大程序的性能,但可以保证程序的运行。



++++++++++++++++++++++++++++++++++++++++++++++++++++++++
正文
++++++++++++++++++++++++++++++++++++++++++++++++++++++++

一、什么是文件系统 (Filesystem);

1、常见定义方法;

什么是文件系统(filesystem),用一两句话解答出来,实在有点困难,这个问题只能留给文件系统的设计者或对文件系统精通的专业人士来答复;下面是关于filesystem的定义是我从 https://www.doczj.com/doc/d01008050.html, 上搜索到的;下面我们分析一下,对我们来说,了解一下也有好处。如果您是专业人士,如果您有自己的定义方法,请在本文后面留言;谢谢;定义一;
A directory structure contained within a disk drive or disk area. The total available disk space can be composed of one or more filesystems. A filesystem must be mounted before it can be accessed. To mount a filesystem, you must specify a directory to act as the mount point. Once mounted, any access to the mount point directory or its subdirectories will access the separate filesystem. 文件系统是包括在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区的目录结构;一个可应用的磁盘设备可以包含一个或多个文件系统;如果您想进入一个文件系统,首先您要做的是挂载(mount)文件系统;为了挂载(mount)文件系统,您必须指定一个挂载点;一旦文件系统被挂载, freebooks.by.ru/view/ShellProgIn24h/31480175.htm

定义二;

A method of organising files on a disk, eg NTFS, FAT.
https://www.doczj.com/doc/d01008050.html,/ldm/home/terms.html 文件系统是在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区组织文件的方法,如NTFS或FAT;
定义三;

A data structure or a collection of files. In Unix, filesystem can refer to two very distinct things, the directory tree or the arrangement of files on disk partitions. 文件系统是文件的数据结构或组织方法。在Unix中,文件系统涉及两个非常独特的事情,目录树或在磁盘或分区上文件的排列; https://www.doczj.com/doc/d01008050.html,/ts/docfc/glossary.htm
定义四;

the structure of files on a disk medium which is visible via the operating system, ie the structure of files wh

ich a Unix user can see using "ls" and other tools 文件系统是基于操作系统的,建立在磁盘媒质上的可见体系结构,例如这种结构对于一个Unix用户来说可以用ls 或其它工具可以看到; https://www.doczj.com/doc/d01008050.html,/~de/deimos/glossary.html

定义五;

A software mechanism that defines the way that files are named, stored, organized, and accessed on logical volumes of partitioned memory. 文件系统是基于被划分的存储设备上的逻辑上单位上的一种定义文件的命名、存储、组织及取出的方法; https://www.doczj.com/doc/d01008050.html,/html/glossary.html

定义六;

In computing, a file system is a method for storing and organizing computer files and the data they contain to make it easy to find and access them. File systems may use a storage device such as a hard disk or CD-ROM and involve maintaining the physical location of the files, or they may be virtual and exist only as an access method for virtual data or for data over a network (e.g. NFS). 在计算机业,一个文件系统是有组织存储文件或数据的方法,目的是易于查询和存取。文件系统是基于一个存储设备,比如硬盘或光盘,并且包含文件文件物理位置的维护;也可以说文件系统也是虚拟数据或网络数据存储的方法,比如NFS; https://www.doczj.com/doc/d01008050.html,/wiki/Filesystem
2、理解文件系统的关健词;

0)存储介质:
硬盘、光盘、软盘、Flash盘、磁带、网络存储设备等;
1)磁盘的分割:

这是针对大容量的存储设备来说的,主要是指硬盘;对于大硬盘,我们要合理规划分区,所以要谈到硬盘的分割。硬盘的分割,Linux有fdisk、cfdisk和parted等,常用的还是fdisk 工具,Windows和dos常用的也有fdisk ,但和Linux中的使用方法不一样。硬盘的分割工具还有第三方程序,比如PQ;至于对分区的理解和操作请参考: 《实例解说 fdisk 使用方法》
《合理规划您的硬盘分区》
2)文件系统的创建:

这个过程是存储设备建立文件系统的过程,一般也被称为格式化或初始化,通过一些初始化工具来进行。一般的情况下每个类型的操作系统都有这方面的工具,也有多功能的第三方工具,比如PQ。我的建议是如果您不太懂操作系统自带的工具,可以用第三方工具来切割硬盘,把硬盘分割成若干分区,然后再用操作系统自带的工作来初始化分区,也就是格式化分区。在Linux中有 mkfs系列工具;

3)挂载(mount):

文件系统只有挂载才能使用,Unix类的操作系统如此,Windows也是一样;在Windows更直观一些,具体内部机制我们不太了解。但Unix类的操作系统是通过mount进行的,挂载文件系统时要有挂载点,比如我们在安装Linux的过程中,有时会提示我们分区,然后建立文件系统,接着是问你的挂载点是什么 ,我们大多

选择的是/ 。我们在Linux系统的使用过程中,也会挂载其它的硬盘分区,也要选中挂载点,挂载点通常是一个空置的目录,最好是我们自建的空置目录;

4)文件系统可视的几何结构:

文件系统的是用来组织和排列文件存取的,所以她是可见的,在Linux中,我们可以通过ls等工具来查看其结构,在Linux系统中,我们见到的都是树形结构;比如操作系统安装在一个文件系统中,他表现为由/ 起始的树形结构;
[root@localhost ~]# cd /
[root@localhost /]# tree

二、文件系统的类型;
文件系统类型有很多,您可以在 《Linux 文件系统(filesystem)资源索引》 中查看;但我们在Linux中常用的文件系统主要有ext3、ext2及reiserfs ; Windows和Dos常用的文件系统是fat系列(包括fat16及fat32等)和ntfs 文件系统;光盘文件系统是ISO-9660文件系统;网络存储NFS服务器在客户端访问时,文件系统是nfs,这个比较特殊一点;至于您想了解的更多,请访问您所用的文件系统的官方网站,请在《Linux 文件系统(filesystem)资源索引》 查找相应的资源,谢谢;
三、Linux 文件系统的选择和安全性;
如果做为专业人士来说,应该说哪个文件系统都是安全的;用Linuxfish的话来说“哪个文件系统的设计者都不是傻子,他们应该明白自己的作品是怎么回事。”。做为文件系统的设计者来说,我们一般在使用的过程中所遇到的问题,他们都应该有解决办法。但我们毕竟不是专业从事文件系统研究的,所以我们有必要从使用角度来说明文件系统的安全性;对于初学Linux的弟兄,一定会遇到文件系统的选择左右为难的情况,因为大多新手并不知道哪个文件系统更好;现在我们来谈谈文件系统的选择;
1、Linux操作系统安装过程中的文件系统的选择;

1)ext2 文件系统;

ext2文件系统应该说是Linux正宗的文件系统,早期的Linux都是用ext2,但随着技术的发展,大多Linux的发行版本目前并不用这个文件系统了;比如Redhat和Fedora 大多都建议用ext3 ,ext3文件系统是由ext2发展而来的。对于Linux新手,我们还是建议您不要用ext2文件系统;ext2支持undelete(反删除),如果您误删除文件,有时是可以恢复的,但操作上比较麻烦; ext2支持大文件; ext2文件系统的官方主页是: https://www.doczj.com/doc/d01008050.html,/ext2.html
2)ext3 文件系统:是由ext2文件系统发展而来;

ext3 is a Journalizing file system for Linux(ext3是一个用于Linux的日志文件系统),ext3支持大文件;但不支持反删除(undelete)操作; Redhat和Fedora都力挺ext3;至于ext3文件系统的更多特性,请访问 《Linux 文件系统(filesystem)资源索引》 ;
3)reiserfs 文件系统;

rei

serfs 文件系统是一款优秀的文件系统,支持大文件,支持反删除(undelete);在我的测试ext2、reiserfs 反删除文件功能的过程中,我发现reiserfs文件系统表现的最为优秀,几乎能恢复 90%以上的数据,有时能恢复到100%;操作反删除比较容易;reiserfs 支持大文件;
4)Linux文件系统对大文件支持的对比;
请参考http://www.suse.de/~aj/linux_lfs.html Filesystem File Size Limit Filesystem Size Limit
ext2/ext3 with 1 KiB blocksize 16448 MiB (~ 16 GiB) 2048 GiB (= 2 TiB)
ext2/3 with 2 KiB blocksize 256 GiB 8192 GiB (= 8 TiB)
ext2/3 with 4 KiB blocksize 2048 GiB (= 2 TiB) 8192 GiB (= 8 TiB)
ext2/3 with 8 KiB blocksize (Systems with 8 KiB pages like Alpha only) 65568 GiB (~ 64 TiB) 32768 GiB (= 32 TiB)
ReiserFS 3.5 2 GiB 16384 GiB (= 16 TiB)
ReiserFS 3.6 (as in Linux 2.4) 1 EiB 16384 GiB (= 16 TiB)
XFS 8 EiB 8 EiB
JFS with 512 Bytes blocksize 8 EiB 512 TiB
JFS with 4KiB blocksize 8 EiB 4 PiB
NFSv2 (client side) 2 GiB 8 EiB
NFSv3 (client side) 8 EiB 8 EiB
Note Kernel Limitations: The table above describes
limitations of the on-disk format. The following kernel limits
exist:
On 32-bit systems with Kernel 2.4.x: The size of a file and a
block device is limited to 2 TiB. By using LVM several block
devices can be combined enabling the handling of larger file
systems.
64-bit systems: The sizes of a filesytem and of a file are
limited by 263 (8 EiB). But there might be hardware
driver limits that do not allow to access such large devices.
Kernel 2.6: For both 32-bit systems with option CONFIG_LBD set
and for 64-bit systems: The size of a file system is limited to
273 (far too much for today). On 32-bit systems
(without CONFIG_LBD set) the size of a file is limited to 2 TiB.
Note that not all filesystems and hardware drivers might handle
such large filesystems.

Note in the above:
1024 Bytes = 1 KiB;
1024 KiB = 1 MiB;
1024 MiB = 1 GiB; 1024 GiB = 1 TiB; 1024 TiB = 1 PiB; 1024 PiB = 1
EiB (check https://www.doczj.com/doc/d01008050.html,/cuu/Units/binary.html)
Maximum Number of Partitions An IDE disk has 64 minors, one is used for the full disk and therefore 63 partitions are possible. A SCSI disk has 16 minors and therefore only 15 partitions maximal.
2、文件系统的安全性;
任何一个文件系统在专家眼中都是安全的,就象MS说Windows是安全性是可靠的类似,如果MS专家来用Windows绝对没有任何问题,毕竟人家是专家,我们是使用者;专家和使用者还是有很大区别的;因为我们不是专家,所以我们才要选择更为安全易用的文件系统,下面我们对比一下ext2、ext3和reiserfs;
1)ext2、ext3和reiserfs 文件系统自动修复能力对比;

ext2、ext3及reiserfs 都能自动修复损坏的文件系统,也都是在开机时进行。从表现来看reiserfs更胜一筹;ext2和ext3文件系统在默认的情况下是“This filesystem will b

e automatically checked every 21 mounts or 180 days, whichever comes first”,也就是每间隔21次挂载文件系统或每180天,就要自动检测一次。通过实践来看ext2和ext3在auto check上是存在风险,有时文件系统开机后就进入单用户模式,并且把整个系统 “扔”进lost+found"目录,如果要恢复系统,就得用fsck 来进行修复;当然fsck 也同样存在风险;所以我们对ext2和ext3文件系统的使用,对新手来说的确需要心里准备;毕竟修复已经损坏的ext2和ext3文件系统是有困难的;另外ext2和ext3文件系统对于意外关机和断电,也可能导致文件系统损坏,所以我们在使用过程中,必须是合法关机;比如执行poweroff指令来关掉机器; reiserfs 文件系统也能自动修复,他在自动检测和修复上具有很强的功能,几乎很少出现ext2和ext3的情况,另外从速度来说他也比ext2、ext3文件系统的速度要快;通过我两个月的测试来看,reiserfs 对于意外断电表现最佳。为了验证reiserfs 文件系统的在意外断电的安全性上,我每天都直接断掉电源关机,但我们不应该说reiserfs 是安全的直接断电了事,直接断电有时也会造成硬盘物理损伤;reiserfs文件系统从未出现象ext2和ext3那样用手动方式来进行修复的情况。从这方面来说reiserfs 还是极为安全的;
2)ext2、ext3和reiserfs 反删除功能对比;
从文件系统的反删除来看,ext2和reiserfs 都支持反删除,对于一般使用者来说应该是安全的,但对于保密单位来说可能意味着不安全。从反删除角度来说明文件系统的安全性,也是有两方面;昨天和Linuxfish 讨论了这个问题,他说在Windows中引入了文件粉碎机这个可笑的工具,目的就是不让恢复已删除的文件。如果您的工作是从事比较机密的,用ext3比较好,因为ext3一旦删除文件,是不可恢复的,虽然网上也有几个关于反删除恢复操作在ext3中,但实践来看,并不是那么容易;因为反删除能恢复相应的绝秘资料的泄秘,所以ext3可能更适合您;如果您是一般使用者,我还是建议用reiserfs文件系统,他支持反删除功能,反删除操作也比较容易;但也会存在一点问题。比如在Fedora或Redhat中,有一个关于系统安全的selinux,在默认情况下,可能在reiserfs 中不支持selinux ;不过值得一说的是selinux是一个绝对庞大、功能丰富、涉及面极广的安全工具,selinux并不是一般使用者就能驾驭的了的;所以我们建议初学者在使用Linux系统时先关掉selinux 功能;但您可以慢慢尝试熟悉使用它;在Fedora和Redhat最新的版本中,reiserfs文件系统的确是不支持selinux,所以您在Fedora或Redhat中采用了reiserfs ,并且还想用selinux ,还是自己找解决办法,可能要打内核补丁才行

;至于其它Linux发行版本是否存在这个问题,还得需要您来尝试;
四、Linux 支持的文件系统;
Linux目前几乎支持所有的Unix类的文件系统,除了我们在安装Linux操作系统时所要选择的ext3、reiserfs和ext2外,还支持苹果MACOS的HFS,也支持其它Unix操作系统的文件系统,比如XFS、JFS、Minix fs 及UFS等,您可以在kernel的源码中查看;如果您想要让系统支持哪些的文件系统得需要把该文件系统编译成模块或置入内核;关于如何编译内核,请参考《内核管理概述》;当然Linux也支持Windows文件系统NTFS和fat,但不支持NTFS文件系统的写入;支持fat文件系统的读写;请参考《在Fedora core 4.0 加载NTFS和FAT32分区详述》 Linux也支持网络文件系统,比如NFS等;挂载nfs文件系统的办法是: mount -t nfs 服务器地址:/目录 挂载点 下面是一个例子,比如我在192.168.1.4的机器做了一个NFS服务器,提供192.168.1.x网段上的所有机器都可以用NFS;具体做NFS服务器的过程省略,此处只讲怎么挂载;
[root@localhost ~]# showmount -e 192.168.1.4 首先查看NFS服务器共享的文件文件夹;
Export list for 192.168.1.4:
/opt/sirnfs * 注:位于 192.168.1.4机器上的 /opt/sirnfs 目录

[root@localhost ~]# mkdir /mnt/sirnfs 注:在本地机器建一个目录,做为NFS挂载点;

[root@localhost ~]# mount -t nfs 192.168.1.4:/opt/sirnfs /mnt/sirnfs 注:挂载NFS;

[root@localhost ~]# df -h 注:查看本地机挂载NFS是不是成功了;
Filesystem 容量 已用 可用 已用% 挂载点
/dev/hda7 11G 7.4G 2.9G 72% /
/dev/shm 236M 0 236M 0% /dev/shm
/dev/hda9 22G 837M 22G 4% /opt/data
192.168.1.4:/opt/sirnfs
63G 47G 17G 74% /mnt/sirnfs 注:这是挂载成功后的显示;

五、文件系统的特性;
Linux文件系统的特性决定文件的属性,比如我们通过chattr +i 来避免某个文件被改动,通过chattr+i 来改其为只读文件,在ext2和ext3下是可以的,但在reiserfs 这样做是不能起任何作用的;不同的文件系统有不同的特性,这种特性往往决定着在文件系统文件和目录的属性,这也是我为何本文的主要原因;通过本文,我能引出在Linux中文件和目录属性的的操作;每个文件系统都有一系列的工具,包括创建、修复、备份等,值得一说的是大多文件系统都有修复工具,在您的文件系统极为正常的情况下,最好不要用修复工具来检测和修复;比如最好不要用运行fsck工具,这个工具可能会使您的系统被破坏;请参考:《Linux 创建文件系统及挂载文件系统流程详解》
六、在Linux中,文件系统的创建和挂载;
请参考《Linux 创建文件系统及挂载文件系统流程详解》 七、关于本

文;文件系统太广,此文档的确不太好写;但还是勉强写出来,虽然并不专业;或许对Linux新手还有点帮助;八、参考文档; http://www.suse.de/~aj/linux_lfs.html
https://www.doczj.com/doc/d01008050.html,/linux/linux-fs.html
... ... 九、相关文档;
由 北南南北 在 2005/11/30 - 14:36 发表 Linux 基础知识 要发表评论,请先登录 或 注册

要使分区后的磁盘可用,必须在其上构建文件系统。这种情况下,通常还将文件系统称作“分区类型”、“基于磁盘的文件系统”和“文件系统类型”。实际上,可以将这些文件系统看作是文件管理系统,这是因为该称呼正体现了它们的功能:它们通过维护文件上的元数据,使系统上的文件保持状态一致。

Linux 项目的特点之一是需要实现与每个可用实用程序的多个样式和首选设置的兼容性,而这种兼容性在可用文件管理系统的选择上体现得最为明显。Linux 内核内部的虚拟文件系统 (VFS) 实现了此选择。VFS 采用了一组可由其他文件管理系统使用的基本数据结构。这些数据结构是超级块、inode、dentry(或目录文件)和数据块。

每个分区都包含一个超级块,用于维护分区中文件系统上的信息,包括一组在每个超级块中唯一编号的 inode、空闲 inode 的数目以及 inode 总数、数据块总数、空闲数据块数和文件系统的状态。文件系统的状态有两种:干净(当文件处于未更改状态时)和脏(当有未写入磁盘的文件系统更改时)。超级块中的一个 inode 对应着一个文件。

除文件名外,inode 包含了有关文件的所有信息,其中包括:


地址
类型
大小
所有者
对文件数据所在块的引用
文件最后一次修改和访问的时间戳。

可以使用以下命令查看文件的 inode:


$ ls -i


正如前面已经提到的,inode 只在超级块中唯一编号,且每个分区只有一个超级块,这就是硬链接无法跨越多个分区的原因。

文件名通过 dentry 对象(用户看到的是目录文件)链接到一个 inode 编号。数据块保存实际的文件数据。

Linux 支持任何具备 VFS 定义的基本函数集的文件管理系统。对于像 vfat 这样的文件管理系统,Linux 项目提供了它自己的设备驱动程序。

您可以从以下输出中看到,同的文件管理系统可以存在于同一系统的不同分区上。


df -T
Filesystem Type 1K Blocks Used Available Use% Mounted on
/dev/hda6 reiserfs 4195632 2015020 2180612 49% /
/dev/hda5 ext2 14607 3778 10075 8% /boot
/dev/hda9 reiserfs 937372 202368 735004 22% /home
/dev/hda8 reiserfs 6297248 3882504 2414744 62% /opt
shmfs shm 256220 0 2

56220 0% /dev/shm
/dev/hda1 vfat 2159992 1854192 305800 86% /windows/C


当前,Oracle 用户遇到的最常用的文件管理系统是 ext2/ext3、ReiserFS(不受 Oracle 支持)和 OCFS。以下是非 Oracle 分区主要特性的汇总表。

特性 ext2 ext3 ReiserFS3.6(不受 Oracle 支持)
最大分区大小 4TB 4TB 16TB
最大文件大小 2GB-4GB 2GB-4GB 8TB
块大小 1KB-4KB 1KB-4KB 只有 4KB
日志功能 无 是 有
崩溃后重新启动 慢 快 非常快
用于恢复清除文件的工具 有 有 无
崩溃后数据的状态 良好 非常好 一般
ACL 支持 有 有 无
稳定性 优秀 良好 良好



由于 ext2 和 ReiserFS 均提供了用户级安全性以及更高效的磁盘空间使用等特性,因此尽管至少 ext2 确实提供了碎片整理工具,但几乎不需要这些工具。Ext2 是传统的、事实上的标准 Linux 文件管理系统。它是 Red Hat 版本 Linux 的默认文件管理系统,而 ReiserFS 是 SUSE 的默认文件管理系统。ext2/ext3 的最大文件大小实际上取决于所选择的块大小和硬件体系结构。ext2 的许多特性之一是它允许由磁盘分区决定块大小。ReiserFS 技术允许在磁盘分区中使用可变的文件大小(这是因为它基于平衡树技术而不是基于范围),因此除日志功能以外,高效的空间使用也是其设计所固有的。

日志文件管理系统(如 ext3 和 ReiserFS)记录对文件系统元数据:inode、空闲块分配映射、inode 映射等的更改。当系统崩溃时,可以通过此方式检查日志以获得最近修改的元数据,从而确保快速恢复文件系统。此功能对大型系统尤其重要。如果没有此功能,则在出现硬件故障后,对于 ext2 等文件系统,需要在重新启动时运行 fsck 工具。对于大型文件系统,此过程可能要花费几个小时。

当然,记录日志需要付出一定的代价,即需要在处理时间和恢复之间寻求一个平衡。对于 ext3,可以选择日志记录模式,这些模式允许在寻求上述平衡时做出某些自主决定。journal 模式(记录所有文件系统数据,包括数据块和元数据)是最安全但也是最慢的模式。默认模式(称作 orderd)只记录元数据,但在写元数据之前先将数据块写入磁盘,从而在快速恢复和快速性能之间取得折衷。最快的模式是 writeback 模式,该模式只记录元数据。在此模式中,可能会丢失文件数据,但文件系统自身的完整性将得到维护。

在编写本文档期间,Reiser4 刚好已经发布。同 ReiserFS3.6 一样,ReiserFS4 只记录元数据。与 ReiserFS3.6 不同的是,它基于新的舞蹈树算法,此算法似乎比平衡树算法更快。它还可以扩展到使用无数个 CPU,而且在磁盘写入时具有内置加密和压缩功能。

OCFS 是 Oracle 真正应用程

序集群 (RAC)、配置文件和数据库文件的指定文件管理系统。其他文件(甚至是 Oracle 软件文件)将在 ext2/ext3 或 ReiserFS 上获得更好的性能。

当前,就文件管理系统的选择来讲,共同的见解是,除少数情况外,ext2、ext3 和 ReiserFS 之间的性能基本相当。然而在各种系统的拥护者之间却爆发了激烈的争论。ReiserFS 由于能够处理可变的文件大小,因此更适用于具有许多小文件的系统。当然,如果您正要或计划在 Linux 上运行 Oracle RAC,则可能需要为 Oracle 数据文件和配置文件安装 OCFS 或使用自动存储管理 (ASM)。

除了最常见的 ext2/ext3 和 ReiserFS 文件系统以外,Linux 还支持其他本地文件系统,包括 IBM 的 jsf 和 SGI 的 xfs。对传统 UNIX 文件系统的支持包括 SYSV、BSD、Solaris、Next 和 Veritas VxFS。在各个级别支持的其他文件系统包括


Microsoft 的 fat、ntfs、vfat、fat32
IBM 的 hpfs (OS/2)
Apple 的 Macintosh hfs
Amiga 的 affs
Acorn 磁盘文件系统 adfs

请注意,Oracle 不支持某些文件系统,因此在使用这些文件系统时风险自负。

Linux 内核 2.6 版中最重要的新特性是访问控制列表 (ACL)。ACL 允许为一个或多个用户列表或用户组授予对单个文件的使用权限。其他新特性包括:


对 CD-ROM 上使用的 ISO 9660 文件系统的增强支持
可以存储在文件系统中的默认挂载选项
用于加速文件搜索的索引目录
对 Windows 的逻辑磁盘管理器(动态磁盘)的支持
能够将 ntfs 挂载为读/写,但写仍处于试验状态
对 fat12(旧 DOS 文件系统)的增强支持

处理分区和文件系统的工具



相关主题
文本预览
相关文档 最新文档