全部博文(191)
分类: LINUX
2009-05-15 09:24:53
一:文件系统
1:i-节点
i-节点(inode)存储所有和文件有关的元数据。文件的元数据是文件名和文件内容以外的,所有有关文件的信息。比方说: 文件所有者,权限,及其修改时间都存储在它的i-节点上。
2:dentry
Dentry 是“directory entry”(目录项)的缩写形式。它包含文件名和文件在目录系统中的位置。
并将文件的这个标示和文件的i-节点联系起来。
3:data
这是文件的内容,文件的i-节点指向这个内容。
文件系统的定义:
在磁盘或磁盘分区上定义哪一字块含有dentry ,哪一字节块含有dentry 指向的i-节点和哪一字节块含有i-节点指向的data的结构。磁盘分区格式化,在linux系统就是建立文件系统格式。
二:磁盘空间的规划
1:块
文件系统会在磁盘建立块扇区,块扇区主要用来存放文件的内容。Linux系统通过文件系统来读取文件内容时候,每次可以读取若干个块的数据。
块扇区可以分为两种:
---à数据块(data block):主要是用来存放文件的内容。
---à超级块(super block):主要是用来存放数据块的信息。
2:索引节点
在文件系统上还会建立以堆索引节点的扇区,每一个索引节点用来存储一个文件的信息。包括以下几个方面:
---à文件类型
-----权限
-----连接数量
-----拥有者信息
-----拥有群组信息
----文件大小
----数据块的位置
说明:由于一个索引节点只能存储一个文件的信息。因此文件系统配置了多少个索引节点就代表最多能存储多少个文件。
三:制作文件系统
使用命令:mkfs
四:linux支持的文件系统
1:ext2
它具有linux文件系统要求的具有的所有的特征。
2:ext3
支持日志功能。是红帽linux默认的文件系统。
3:msdos
4:vfat
Vfat是msdos的扩展版本。
5:nfs
网络文件系统,可以在linux之间共享目录
6:smbfs
网络文件系统,异构网络之间共享目录
7:iso9660
是光盘只读文件系统
8:proc
存在于内核的虚拟文件系统。不占用内存空间。
9:reiserfs
是红帽linux支持的另外一种具有日志功能的文件系统。
10:jfs
红帽不支持。
。。。。。。更多请查看man fs手册
五:创建文件系统
在块设备存储文件数据之前必须初始化块设备。
使用命令:
查看下
[root@lvm /]# ls /sbin/mkfs.*
/sbin/mkfs.cramfs /sbin/mkfs.ext3 /sbin/mkfs.vfat
/sbin/mkfs.ext2 /sbin/mkfs.msdos
建立不同的文件系统请使用不同的命令。
1:创建ext2文件系统
创建ext2文件系统:mke2fs
Mke2fs命令选项:
-b blocksize 以字节为单位指定文件系统块的大小:1024,2048,4096 等等。
-c 建立文件系统时候检查损害块。
-i density 指定i-节点的密度
-N number 直接指定i-节点的数量
-j 建立文件系统日志,即加上命令选项-j 直接建立ext3文件系统。
-L label 将文件系统的卷标设置为label。
-m n 保留块的大小指定 n%
说明:一般来说:文件系统越大,块大小就越大;文件系统越小,块大小就越小。
2:使用dumpe2fs命令查看文件系统的状态
六:挂载文件系统
挂载/卸载文件系统:mount/umount
1:挂载参数:
使用mount 挂载文件系统时候,你可以指定挂载的参数来修改文件系统的功能。
挂载参数分为共享挂载参数和文件系统特定的挂载参数两张。
(1):共享挂载参数:
共享挂载参数可以应用于任何文件系统,而且是两两一组的。两两参数是互斥的关系。比喻:
ro/rw 使用了ro ,就不能rw.
常用共享挂载参数:
参数 说明
async/sync async 异步(I/O效率高) sync 同步
auto/noauto 定义在执行mount –a 时要不要自动挂载
auto :表示需要自动挂载;noauto : 表示不需要自动挂载
exec/noexec 在该文件系统的执行文件是否允许被执行。
Exec 参数表示运行被执行;noexec 参数表示不允许被执行
atime/noatime 文件系统上的文件被修改时候是否更新其时间戳记的资料。
Atime 表示更新,notime 表示不更新。
dev/nodev 定义是否要启用这个文件系统上面的块设备、字符设备的设
备节点文件。
dev 表示被启用;nodev 表示不启用。
Suid/nosuid 定义在这个文件系统上是否启用特殊权限(special permission)的功能。
Suid 表示启用; nosuid 表示不启用。
user/nouser 定义是否允许普通用户使用mount命令挂载文件系统。user 代表运行;nouser 代表不允许。
ro/rw 定义这个文件系统是只读或只读只写的。
Ro 表示只能读取,任何人无法写入;rw 表示可读可写。
defaults 当你挂载文件系统而没有指定任何挂载参数时候,linux系统就会把defaults 当做挂载参数。
说明:defaults 是这几个参数的组合:rw、suid、exec、auto、nouser、async、dev七个参数的组合而成的。
(2):文件系统特定挂载参数:
另外一些参数仅适合于某些文件系统。我们称这些挂载参数为文件系统的特定的挂载参数。
如ext文件系统的增加了一个acl的挂载参数。通过这个参数能够开启ACL访问控制,对
文件的访问权限进行更加细粒度的控制。
如fat文件系统增加codepage 挂载参数。运行管理者设置代页码名称,以指定文件名的字
符种类。
(3):指定和修改挂载参数
“指定和修改挂载参数”是指启用defaults默认参数时候而修改成其他的单组或多组参数。
有两种方法:
------à执行mount时,直接指定 –o MOUNT_OPTIONS 参数
说明:仅适用于新挂载文件系统时候。如果已经挂载,必须先卸载之后,再重新使用参数来
挂载。
-----à使用mount –o remount,MOUNT_OPTIONS 修改挂载参数
说明:不需要卸载就直接修改文件系统的挂载参数。
2:卸载umount命令
说明:如果出现无法卸载的情况,请尝试结束调用该文件系统的所有进程来就可以顺利卸载
该文件系统了。
使用fuser这个工具来查看和终止该文件系统的进程。
(1):查询哪些进程还在使用该文件系统
fuser –vm 挂载点
(2):结束使用某一文件系统的进程
fuser –km [-SIGNAL] 挂载点
说明:[-SIGNAL]默认是SIGKILL。杀死进程信号。
3:cahce和buffer
内存之中一小块存储临时数据的地方称为chace/buffer.
系统会把以前读过的数据暂存chace/buffer里面,以加快同样数据的调用速度。当进程要把
数据写入磁盘时候,也先暂时存放在chace/buffer里面。等待内核负荷较低的时候,批次把
Chace/buffer里的数据写入到磁盘
4:文件系统的状态
(1):dirty
当文件系统以rw方式挂载时候,系统会将该文件系统的状态标记为dirty.
(2): clean
当文件系统以ro方式挂载时候,或是正常卸载文件系统时候,系统会将该文件系统标记为
clean.
5:命令fsck
fsck [-A][-a][-y][-f] [DEVICE]
参数说明:
-A 依据/etc/fstab的设置,检查所有文件系统的完整性。
-a 自动修复文件系统
-y 不必询问,直接修复
-f 即使文件系统是干净的,也强制修复。
[DEVICE] 文件系统名称
警告:千万不要对已经挂载的文件系统进行修复,这将破坏文件系统的结构。
七:ext2文件系统详解
1:ext2文件系统的功能
(1):支持255个字符的文件名称
说明:除了”/”之外的任何字符
(2):支持各种类型的文件
说明:常规文件;目录;连接文件;设备文件;跨进程通信文件;管道文件。
(3):单一文件系统最大为8TB(32位是8TB,64位是16TB)
(4):单一文件最大为8TB
(5):提供文件的特殊属性
说明:当你在ext2文件系统建立文件时候。Ext2除了记录文件的权限,拥有者等信息外,
还存储ext2系统上面的特殊属性:
Ext2文件系统的文件特殊的属性一览表
属性 |
说明 |
a |
只能增加数据,而不能删除数据或覆盖数据 |
c |
允许由内核自动压缩 |
d |
通过dump备份时,跳过该文件 |
i |
该文件不能增加,不能删除,不能覆盖。 |
j |
挂载参数是data=ordered或data=writeback时候,将所有数据写入日志块区。 |
s |
安全地删除 |
u |
可以进行反删除 #???啥意思 |
A |
读取该文件时候,不更新该文件的时间戳记。 |
D |
当目录被修改时候,立即写回磁盘 |
S |
文件一被修改,立即写回磁盘 |
备注 |
|
(6):可以为ext2文件系统设置卷标名称
说明:查看和设置ext2文件系统的卷标名称命令
e2label DEVICE [LABELNAME]
参数说明:
DEVICE 就是ext2的文件系统的设备文件;而LABELNAME则是设置的卷标名称。如果没有指定LABELNAME。则表示查看DEVICE目前的设置的标签名称。
说明:使用命令findfs来搜索某个标签名称属于哪个文件系统。
# findfs LABEL=/var
/dev/sdb
警告:--à如果重新制作文件系统,原来的标签失去作用,必须重新设置。
---à修改了某一个文件系统的标签之后,也要同时更改相关的配置。要不,很可能系统无法顺利开机。
(7):可以调校ext2文件系统
Ext2文件系统存储了ext2文件系统参数。要调校ext2文件系统系统参数,必须使用tune2fs
这个工具。
tune2fs 参数一览表
(8):通过cache/buffer提高ext2文件系统的效率
(9): 多重读取控制清单(MACL)
使用命令:
getfacl 查看文件的多重数据权限 格式:getfacl FILES
setfacl [-m |-x] ACLS FILES
说明:
-m 参数来修改文件的多重权限的数据
-x 参数来删除文件的多重权限的数据
ACLS 这是一组权限的数据,语法如下:
FILED:NAME:PERM
FILED 代表权限的字段 u、g、o 分别代表拥有着,拥有群组,已经其他人。
NAME 代表用户或群组的名称
PERM 代表权限
范例:
setfacl –m u:jerry:r file
说明:
用户 jerry 对 file 没有读的权限,经过 setfacl 的设置,授予用户 jerry 对 file 读取的权限。
八:ext3 文件系统
1:与 ext2 完全兼容
(1) 格式: resize2fs [OPTIONS] DEVICE [NEWSIZE]
(2) 警告:
---resize2fs 命令只适合于 ext3 文件系统
---要放大文件系统,必须现将其挂载;如果要缩小文件系统,必须将其卸载。Resize2fs
命令只支持在线放大和离线缩小。
---放大时候,不能超过分区大小;缩小后的文件系统必须大于已使用的大小.
---缩小前请执行命令 e2fsck -f DEVICE。
3:提供日志式文件系统的能力
日志服务进程:kjournald
说明:
Ext3 文件系统就是一个提供日志功能的文件系统,当你挂载一个 ext3 文件系统的时候,linux
系统会把这个文件系统标注为干净的。而后启动一个服务为 kjournald 的进程。负责把 cache
和 buffer 修改的数据同步写入 ext3 的日志块。
当 reboot 重新启动系统时候,fsck 就会直接把 ext3 日志块的数据还原成内存中 cache 和
bufferde 的内容。然后同步写入到磁盘中。
九:交换文件系统另有详细说明文档(略过)。
涉及的命令简要说明一下:fdisk mkswap dd swapon
**********完**********
**********************
-