17xie首页 > 综合 > 科学技术 > Debian学习笔记 回本书首页  |   放入书架  |   推荐本书  |   编辑本页  
2. 文件系统 2.1. 管理文件系统
 

Chapter 2. 文件系统

 

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

Table 2.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

IBMAIX使用的日志文件系统

ReiserFS filesystem

reiserfs

基于平衡树结构的文件系统

Zettabyte File System

zfs(暂定)

Zettabyte File System是随Solaris 10一起发布的最新的文件系统。它是第一个128位的文件系统,包含多项创新技术。据Sun公司介绍,这是他们的最后一个文件系统,可见Sun公司对该文件系统的自信。该文件系统现时Linux还不支持,所以上面介绍文件类型时说明是暂定zfsSun ZFS文件系统的对外移植许可方式采用了CDDL标准,Linux平台采用的GPL许可标准并不兼容 ,而导致了目前为止ZFS尚无法顺利地在Linux平台上使用。但开源社区启动了一个zfs on fuse项目,可以在Linux use space下使用zfs系统。

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

2.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,指定字符集,如utf8gb2312等。

·   ro,以只读方式挂载。

·   rw,以读写方式挂载。

现在U盘已代替传统的磁盘成为移动存储的主流设备,在Linux中加载U盘也很简单,LinuxU盘看成一个SCSI设备,设备名是/dev/sda。加载命令如下:

debian:~# mount /dev/sda /mnt/usb

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

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

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

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

使用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列,它是由逗号分隔的两个数字(30),第一个值代表主设备号(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指定设备的次编号
 
示例:
#  mknod -m 644 /dev/random c 1 8

使用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     #可用inode的数量
Block count:              7323624     #可用block的数量
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


 

本页地址:http://zonghe.17xie.com/book/10185671/54089.html
← →键盘左右键前后翻页,回车[enter]返回本书首页
Copyright©2007 17xie.com 互动写作和阅读平台 京ICP备08002671号