网络操作系统-Linux基础
主讲人:王柯wangk@swnu.edu.cn
西南师范大学计算机科学系2005年春
Red Hat Linux 文件系统
第7章-第8章
第7章Linux文件系统
Linux的多级目录结构(树型目录)
问题:为什么UNIX/Linux中需要有I
节点(索引节点)?
文件目录改进
为加快目录检索可采用目录项分解法:把FCB分成两部分:
符号目录顶(次部)
文件名,文件号
基本目录项(主部)
除文件名外的所有项目
例子:一个FCB有48个字节
符号目录项占8字节
文件名6字节,文件号2字节
基本目录项占48-6=42字节
假设,物理块大小512字节
解:
分解前:占512/48=10个FCB
分解后:占512/8=64个符号目录项或
512/42=12个基本目录项
假设:目录文件有128个目录项
分解前:占13块
分解后:符号目录项占2块
基本目录项占11块
查找一个文件的平均访盘次数
分解前:(1+13)/2=7次
分解后:(1+2)/2 +1 =2.5次
减少了访问硬盘的次数,提高了检索速
度
问题:
在Linux中,有一纯文本文件/usr/wangk/source.txt
(1)如果用下面的命令序列
$ln /usr/wangk/source.txt /usr/zhang/new1.txt (建
立硬链接文件)
$rm /usr/wangk/source.txt (删除原来的文件)
$cat /usr/zhang/new1.txt (欲显示纯文本文件内容)
问:能正确显示出原纯文本文件内容吗?
请叙述其中原理。
/usr/wangk
硬链接
/usr/zhang
……
Source.txt
……
……
New1.txt
……
I-node
Southwes
t normal
university
/usr/wang
符号链接
/usr/zhang
……
Source.txt
……
……
New1.txt
……
I-node
I-node
Southwes
t normal
university
/usr/wang/source.txt
Device
DosDevices
...
...
A: ...
Floppy0
wang
Exam1.c
A:\wang\exam1.c
\Device\Floppy0
Exam2.c
\Device\Floppy0\wang\exam1.c
7.1 Linux文件系统
? 7.1.1 Linux与DOS文件系统的区别
? 7.1.2 Linux文件系统结构
7.2 Linux的文件
? 7.2.1 文件名点文件
? 7.2.2 文件类型
普通文件目录文件设备文件链接文件
? 7.2.3 文件权限
other
read write execution
group
user
all
7.3 ext3文件系统
? 7.3.1 文件系统的类型
? 7.3.2 ext2文件系统
? 7.3.3 ext3文件系统
7.3.2 ext2文件系统
?Ext2文件系统
– 1993年Remy Card开发Ext2(Second Extended File
System)
–由块组(block group)组成
– i-node:Linux中每个文件都用一个数据结构表
示,这就是i-node。i-node包含:文件类型、访
问权限、文件所有者、时间戳、文件大小、指
块的指针。
型的文件,是包含了一系列级录项的文件。每条记录
含了一个I-node号和相应的文件名。
7.3.2 ext2文件系统
?Ext2文件系统结构(外存盘卷结构)
7.3.2 ext2文件系统
? Ext2 super-block中的信息
7.3.2 ext2文件系统
? Ext2 块组描述符
7.3.2 ext2文件系统
? Ext2 i-node
7.3.2 ext2文件系统
?目录项信息
14
4
名称长度
(目录项名称的长度,
以字节为单位)
i2
i1
索引节点
(目录项的I-node)
名称
(目录项名称)
Very_long_name
file
7.3.2 ext2文件系统
?Ext2文件系统工具
– mke2fs:创建文件系统
– e2fsck:检查文件系统完整性
– tune2fs:修改文件系统参数
– dumpe2fs:备份文件系统
– debugfs:调试文件系统
7.3.2 ext2文件系统
?文件系统管理和维护
– mount、umount:安装和卸载文件系统
– df、du:检查文件系统使用情况
– mkdir、rmdir:建立删除目录
– ls:文件列表
– ln:建立链接
– find:查找文件
– fdisk:磁盘分区
?备份
– dump、restore
– tar
虚拟文件系统(VFS)
?VFS是一个中间层,它负责处理所有对
文件的系统调用,运行物理文件系统中
相应的过程来实现具体的I/O操作。
用户程序
Sytem call interface
VFS
Ext2 FSDos FS NTFS
Buffer
Cache
Device
Driver
Linux Kernel
Hareware
System call
I/O request
Disk Controler
虚拟文件系统(VFS)
?每个已经mount的文件系统由一个VFS super
block描述,它包含以下信息:
虚拟文件系统(VFS)
?VFS中的文件、目录等均由对应的I-node代表。VFS
I-node只存在于内核内存中,实际保存于VFS的I-
node高速缓存中。VFS I-node的数据域如下:
7.4 安装和卸载文件系统
? 7.4.1 用mount命令挂载文件系统
? 7.4.2 用umount命令卸载文件系统
? 7.4.3 手工编辑/etc/fstab文件,实现系统引导时自动挂载
文件系统
检查磁盘上的坏块和
文件系统的完整性
?检查磁盘上的坏块
– #badblocks /dev/hd0H1440 1440 > bad-blocks
?检查文件系统的完整性
– #fsck –t ext2 –l bad-blocks /dev/fd0H1440
注意:fsck只能检查尚未mount的文件系统,因为该命
令需要以原始方式读写磁盘。
挂载Windows下的硬盘分区
?手动挂载
– #mount –t vfat –o iocharset=gb2312 /dev/hda1 /mnt/G
?自动挂载
– #cd /root/.kde/Autostart
– #gedit mountwin.sh
–输入mount –t vfat –o iocharset=gb2312 /dev/hda1
/mnt/G
挂载CD-ROM
?手动挂载
– #mount –t iso9660 –o iocharset=cp936 /dev/cdrom
/mnt/cdrom
挂载Udisk
?手动挂载
– #mount –t vfat –o iocharset=cp936 /dev/sda1 /mnt/Udisk
挂载floppy
?手动挂载
#mount –t msdos –o iocharset=cp936 /dev/fd0 /mnt/floppy
?格式化软盘
# fdformat /dev/fd0H1440
?在软盘上建立ext2文件系统
# mkfs -t ext2 /dev/fd0
?在软盘上建立FAT16文件系统
# mkfs -t msdos /dev/fd0
7.5 创建ext3文件系统
? 7.5.1 使用parted mkpart创建磁盘分区
? 7.5.2 使用mkfs格式化分区
? 7.5.3 使用parted rm删除磁盘分区
? 7.5.4 使用parted resize重新划分分区大小
7.6 转换到ext3文件系统
? /sbin/tune2fs –j /dev/hdax
7.7 还原到ext2文件系统
7.8 交换文件与交换分区
? 7.8.1 交换文件
–创建交换文件
#dd if=/dev/zero of=/extra-swap bs=1024 count =1024
–创建交换文件
#mkswap /extra-swap 1024
–激活交换文件
#swapon /extra-swap
? 7.8.2 交换分区
–创建交换分区
#fdisk hda
–创建交换分区
#mkswap /hda4 1234
–激活交换分区
#swapon /hda4
7.8 交换文件与交换分区
? 7.8.3
–关闭交换文件
#swapoff /extra-swap
–关闭交换分区
#swapoff /hda4
7.9 查看磁盘使用情况
? #fdisk –l //List partition tables
? #du –hs //Disk Usage report
? #df -h //Disk Free report
无文件系统的磁盘
?不是所有的磁盘或分区都以文件系统的方式使用,如
Linux以原始方式使用交换分区;许多软盘中的数据也
是以原始方式组织的,如Linux的引导软盘中就没有文
件系统。
?避免使用文件系统的优点:
–可以充分利用磁盘空间,因为文件系统总是有一些额外开销。
–能提高磁盘在不同系统之间的兼容性。例如,利用tar备份的
数据,几乎可在任意操作系统中读取。
? Linux中使用无文件系统的原始磁盘主要是dd命令,例
如:
–将磁盘上的数据保存到文件系统的floppy-image文件中:
#dd if=/dev/fd0H1440 of=floppy-image
–将文件系统的floppy-image文件中的数据以原始方式保存到磁
盘上#dd if=floppy-image of=/dev/fd0H1440
? DOS中使用无文件系统的原始磁盘,主要工具是hd-
copy、rawrite等。
网络操作系统-Linux基础
主讲人:王柯wangk@swnu.edu.cn
西南师范大学计算机科学系2005年春
第8章常用的文件操作命令
8.1 Shell命令与DOS命令的区别
8.2 使用man命令获取帮助
8.3 浏览与阅读命令
? 8.3.1 浏览目录命令
–#ls
– #pwd
–#cd
– #dir
? 8.3.2 阅读与搜索文件命令
–#cat
–#more
–#ls
–#cut
–#find
– #locate
– #touch
– #split
– #head
– #tail
? 8.3.3 打印文件命令
–#lpr
–#lprm
–#lpd
–#lpq
8.4 操作与管理命令
? 8.4.1 子目录管理命令
–#mkdir
–#rmdir
? 8.4.2 文件操作命令
–#rm
–#mv
–#cp
–#ln
? 8.4.3 权限设置命令
–#chmod
– #chown
? 8.4.4 压缩与解压缩命令
–#tar
– #gzip
–#compress
8.4 浏览与阅读命令
? 8.3.5 权限设置命令
–#chmod
–#chown
? 8.3.6 操作与管理命令
– #mkdir
– #rmdir
–#rm
–#mv
–#cp
–#ln