`
leogao_emcom
  • 浏览: 82981 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Linux的文件系统<转>

阅读更多

文件系统是一个操作系统的重要组成部分,是操作系统在计算机硬盘存储和检索数据的逻辑方法。Linux通过VFS(虚拟文件系统)支持多种文件格式。Linux支持的各种常用的文件系统有以下几种。

Table 1.1. Linux文件系统类型

文件系统 类型名称 用途
Second Extended filesystem ext2 最常用的Linux文件系统
Three Extended filesystem ext3 ext2的升级版,带日志功能
Minix filesystem minix Minix文件系统,很少用
RAM filesystem ramfs 内存文件系统,速度超快
Network File System(NFS) NFS 网络文件系统,由SUN发明,主要用于远程文件共享
DOS-FAT filesystem msdos ms-dos文件系统
VFAT filesystem vfat Windows95/98采用的文件系统
NT filesystem ntfs Windows NT采用的文件系统
HPFS filesystem hpfs OS/2采用的文件系统
/proc filesystem proc 虚拟的进程文件系统
ISO 9660 filesystem iso9660 大部份光盘所用的文件系统
UFS filesystem ufs Sun OS所用的文件系统
Apple Mac filesystem hfs Macintosh机采用的文件系统
Novell filesystem ncpfs Novell服务器所采用的文件系统
SMB filesystem smbfs Samba的共享文件系统
XFS filesystem xfs 由SGI开发的先进的日志文件系统,支持超大容量文件
JFS filesystem jfs IBM的AIX使用的日志文件系统
ReiserFS filesystem reiserfs 基于平衡树结构的文件系统

在Debian Administration上有篇文章,测试了ext3, reiser, xfs, jfs四种日志文件系统,XFS是综合评分最高的文件系统。网址是:http://www.debian-administration.org/articles/388

1.1. 管理文件系统

使用mount命令就可在Linux中挂载各种文件系统,如:

debian:~# mount -t vfat /dev/hda1 /mnt/hda1

上面这条命令就把/dev/hda1这个fat分区挂载到了/mnt/hda1目录下。“-t”参数指定文件系统类型,常见的文件类型见上面“Linux文件系统类型”一表的内容。在挂载硬盘时,还有一个“-o”参数,它可指定挂载文件系统时的一些选项,如:

  • codepage=xxx,指定代码页,如936(简体中文)、437(英文)等。

  • iocharset=xxx,指定字符集,如utf8、gb2312等。

  • ro,以只读方式挂载。

  • rw,以读写方式挂载。

mount命令的参数选项是很丰富的,以上介绍的只是常用一些功能,详细介绍请参考man手册。

使用mkfs命令可以创建文件系统,如:

debian:~# mkfs -t ext2 /dev/fd0 1400

这条命令在软盘上创建一个容量为1.44M的ext2文件系统。

使用fsck命令可以检查文件系统,如:

debian:~# fsck -t ext2 /dev/hda3

使用mkswap命令可以创建swap空间,如:

debian:~# mkswap -c /dev/hda4
debian:~# swapon /dev/hda4      #启用新创建的swap空间,停用可使用swapoff命令

设备文件是Linux中一种特殊的文件,它对应每种硬件设备,如硬盘、软驱等。它可以像文件一样对它进行读写操作。设备文件位于 /dev目录下,/dev/hda代表第一个IDE硬盘,/dev/fd0代表第一个软驱。/dev/null是一个虚设的设备,它就像一个无底的黑洞, 任何对/dev/null的写入都会成功,但数据会消失得无影无踪,没有任何反馈。所以我们经常把不想在屏幕显示的信息全部送到/dev/null中。下 面是一个设备文件的信息:

brw-rw----  1 root disk 3, 0 2005-07-07 05:29 /dev/hda

大家注意文件的size列,它是由逗号分隔的两个数字(3,0),第一个值代表主设备号(major device number),第二个值代表次设备号(minor device number)。主设备号对应内核相应的功能,而次设备号对应由驱动程序管理的特定设备。所以同一类设备的主设备号都是相同的,次设备号则不同。内核根据 主设备号将I/O的要求导向到适当的驱动程序上,而该驱动程序以次要编号来判断出指定要使用的设备。系统安装同,默认已安装了大部份的设备文件,在 /dev目录下可查询到很多的设备文件。但有时我们也需新增一设备文件,这时我们可使用mknod命令,命令格式如下:

mknod -m permissions name type major minor
-m permissions参数可有可无,主要用于设置设备文件的权限
name是所要创建的设备名,要有完整的路径,如/dev/rhda
type是设备文件的类型,c代表字符设备,b代表块设备
major指定设备的主编号
minor指定设备的次编号

使用dumpe2fs device | more可显示文件系统的详细信息。如:

debian:/var/log# dumpe2fs /dev/hdb1 |more
dumpe2fs 1.37 (21-Mar-2005)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          ef214b73-810a-4098-bf01-ab9a85d9c651
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      filetype sparse_super
Default mount options:    (none)
Filesystem state:         not clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              3662848
Block count:              7323624
Reserved block count:     366181
Free blocks:              428630
Free inodes:              3470727
First block:              0
Block size:               4096
Fragment size:            4096
Blocks per group:         32768       #文件系统中每个块组的大小
Fragments per group:      32768
Inodes per group:         16352
Inode blocks per group:   511
Last mount time:          Thu Jul  7 20:09:57 2005
Last write time:          Thu Jul  7 23:42:51 2005
Mount count:              15
Maximum mount count:      30
Last checked:             Fri Jun 17 05:31:36 2005
Check interval:           2592000 (1 month)
Next check after:         Sun Jul 17 05:31:36 2005
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               128

superblock是每个分区中最重要的信息,如果分区的superblock信息被破坏,则分区就不能使用。所以每个分区的 superblock都被备份了。如果ext2文件系统的块组大小是32768,则superblock备份就存放在以32769开始的块组中。使用 e2fsck -f -b 32769 /dev/hdb1就可用superblock备份信息修复文件系统的superblock

分享到:
评论

相关推荐

    Linux管理员指南

    目 录&lt;br&gt;前言&lt;br&gt;第一部分 安装Linux操作系统&lt;br&gt;作为服务器软件&lt;br&gt;第1章 Linux发行版本与Windows NT的&lt;br&gt; 技术异同 1&lt;br&gt;1.1 Linux操作系统和Linux发行版本 1&lt;br&gt;1.2 “自由”软件和GNU许可证 1&lt;br&gt;1.2.1 什么是...

    VC++Dos 命令接口2(操作系统课程设计)

    设计任务&lt;br&gt;(1)为Windows操作系统建立兼容的DOS命令接口,文件与目录命令&lt;br&gt;(2)具体命令:DIR,RD,CD,MD,DEL,MOVE,REN,XCOPY,命令格式可参考Windows的CMD.EXE或MS-DOS提供的命令格式&lt;br&gt;(3)设计命令的名称,参数等...

    【原创】【源代码】myshell:操作系统编程-自己用C语言写的Linux下的Shell

    【文件格式是Linux下的gz压缩包,在Windows下可以用WinRAR解压】 本人原创的操作系统上机作业(源代码),自己编写一个简单的Linux下的shell(a simple myshell)!原题见William Stallings写的《Operating Systems...

    uClinux源代码中Make文件完全解析

    &lt;br&gt;&lt;br&gt;目录:&lt;br&gt;前言&lt;br&gt;第1章 基于ARM的μClinux简介&lt;br&gt;1.1 嵌入式系统&lt;br&gt; 1.2 嵌入式系统与Unux&lt;br&gt; 1.3 Linux、μClinux与ARM&lt;br&gt; 1.4 Make文件的学习实验环境&lt;br&gt; 1.5 小结&lt;br&gt; 1.6 习题&lt;br&gt;第2章 ...

    Linux内核 内容很全

    的大小 82&lt;br&gt;7.2 虚拟文件系统 83&lt;br&gt;7.2.1 VFS文件系统的超级块 84&lt;br&gt;7.2.2 VFS文件系统的inode节点 84&lt;br&gt;7.2.3 注册文件系统 85&lt;br&gt;7.2.4 装配文件系统 85&lt;br&gt;7.2.5 在虚拟文件系统中查找文件 87&lt;br&gt;7.2.6 卸载...

    Linux 可卸载内核模块完全指南

    &lt;br&gt;1.8 创建你自己的设备 &lt;br&gt;&lt;br&gt;第二部分 渐入佳境 &lt;br&gt;2.1 如何截获系统调用 &lt;br&gt;2.2 一些有趣的系统调用 &lt;br&gt;2.2.1 发现有趣的系统调用(strace方法) &lt;br&gt;2.3 迷惑内核的系统表 &lt;br&gt;2.4 和文件系统有关的攻击 ...

    Linux相关资料

    &lt;br&gt;LINUX学习笔记--FTP服务器设置&lt;br&gt;Linux中文件查找技术大全&lt;br&gt;Linux中文件的压缩与解压缩&lt;br&gt;将Linux配置为代理防火墙用途&lt;br&gt;教你十种提高Linux系统安全性的招数&lt;br&gt;解析Linux操作系统文件目录&lt;br&gt;免费的Linux...

    Linux使用技巧集

    LINUX的引导过程 &lt;br&gt;Linux部分命令简介 Linux下即插即用设备的安装 &lt;br&gt;RedHatLinux用户管理经验点滴 如何编译Linux的内核 &lt;br&gt;对RedHat系统的一些概括性描述 Linux系统的简介及安装过程 &lt;br&gt;深入Linux的LILO ...

    Linux环境数据库管理员指南

    在 Linux上安装并运行 Oracle 40&lt;br&gt;3.1 引言 40&lt;br&gt;3.2 概念 41&lt;br&gt;3.2.1 系统全局区域 41&lt;br&gt;3.2.2 程序全局区域 42&lt;br&gt;3.2.3 表空间 42&lt;br&gt;3.2.4 数据文件 42&lt;br&gt;3.2.5 区 42&lt;br&gt;3.2.6 段 42&lt;br&gt;3.2.7 控制文件 ...

    linux系统教程(chm)

    一部不错的电子书籍,内容有:&lt;br/&gt;llinux先生&lt;br/&gt;前言&lt;br/&gt;问题解决之道 &lt;br/&gt;操作系统简述&lt;br/&gt;unix系统发展史 &lt;br/&gt;什么是Linux &lt;br/&gt;常见linux介绍&lt;br/&gt;Linux与其他操作系统的区别 &lt;br/&gt;linux文件系统&lt;br/&gt;...

    TCP-IP技术大全

    TCP/IP概述 20&lt;br&gt;3.1 TCP/IP的优点 20&lt;br&gt;3.2 TCP/IP的层和协议 21&lt;br&gt;...&lt;br&gt;3.7 网络文件系统(NFS) 26&lt;br&gt;3.8 简单网络管理协议(SNMP) 27&lt;br&gt;3.9 TCP/IP和系统结合 27&lt;br&gt;3.10 内部网概述 28&lt;br&gt;3.11 小结 28&lt;br&gt;第...

    Linux VFS 虚拟文件系统资料收集

    是我最近学习Linux VFS 虚拟文件系统时收集的,感觉是学习VFS 虚拟文件系统的好资料,特共享给和我相似的朋友们共同学习.&lt;br&gt;资料主要有三个:&lt;br&gt;1. 解析 Linux 中的 VFS 文件系统机制.doc&lt;br&gt;比较好,写出了文件系统的...

    linux内核修改,监控系统所有读写操作

    Linux内核修改,通过修改linux内核可以对系统的所有读写操作&lt;br&gt;&lt;br&gt;进行监控,通过对这些读写操作的监控,可以获取系统中所有读&lt;br&gt;&lt;br&gt;写操作的详细信息。这种做法也叫做“加塞子”,通过“加塞子&lt;br&gt;&lt;br&gt;”可以...

    Linux网站建设和维护全攻略 part3(共3部分 PDF)

    &lt;br&gt;&lt;br&gt;第1章 了解Linux及其网络结构 &lt;br&gt;第2章 服务器平台安装和设备管理 &lt;br&gt;第3章 配置TCP/IP网络 &lt;br&gt;第4章 Linux文件及系统管理 &lt;br&gt;第5章 Linux的网络设置 &lt;br&gt;第6章 建立Internet 站点 &lt;br&gt;第7章 超文本标记...

    mysql5.1中文手册

    MySQL支持的操作系统&lt;br&gt;2.1.2. 选择要安装的MySQL分发版&lt;br&gt;2.1.3. 怎样获得MySQL&lt;br&gt;2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性&lt;br&gt;2.1.5. 安装布局&lt;br&gt;2.2. 使用二进制分发版的标准MySQL安装&lt;br&gt;2.3. 在...

    LambdaProbe 中文包下载

    &lt;br&gt;&lt;br&gt; &lt;br&gt;&lt;br&gt;System monitoring 系统监控 &lt;br&gt;&lt;br&gt; &lt;br&gt;&lt;br&gt;Memory monitoring 内存监控 &lt;br&gt;&lt;br&gt; &lt;br&gt;&lt;br&gt;Cluster information 集群信息 &lt;br&gt;&lt;br&gt; &lt;br&gt;&lt;br&gt;Log file tailing 实时追踪log文件 &lt;br&gt;&lt;br&gt; &lt;br&gt;&lt;br...

    Linux网站建设和维护全攻略 part2(共3部分 PDF)

    &lt;br&gt;&lt;br&gt;第1章 了解Linux及其网络结构 &lt;br&gt;第2章 服务器平台安装和设备管理 &lt;br&gt;第3章 配置TCP/IP网络 &lt;br&gt;第4章 Linux文件及系统管理 &lt;br&gt;第5章 Linux的网络设置 &lt;br&gt;第6章 建立Internet 站点 &lt;br&gt;第7章 超文本标记...

    Linux网站建设和维护全攻略 part1(共3部分 PDF)

    &lt;br&gt;&lt;br&gt;第1章 了解Linux及其网络结构 &lt;br&gt;第2章 服务器平台安装和设备管理 &lt;br&gt;第3章 配置TCP/IP网络 &lt;br&gt;第4章 Linux文件及系统管理 &lt;br&gt;第5章 Linux的网络设置 &lt;br&gt;第6章 建立Internet 站点 &lt;br&gt;第7章 超文本标记...

Global site tag (gtag.js) - Google Analytics