文件系统基础
文件系统:一个可被挂在的数据为一个文件系统(U盘,分区什么都可以)
文件系统的特性
- super block:记录此文件系统的整体信息(包含inode,block总量,使用量,剩余量以及文件系统的格式与相关信息.inode与block映射表)
- inode:记录文件的属性.一个文件占用一个inode,同时记录此文件所在的block号码
- block:记录世纪文件的内容.若文件较大会占用多个block
索引式文件系统:inode记录所有的索引,效率高.
FAT格式:不存储inode,只能靠前一个block指向后一个block连接起来
Linux的Ext2文件系统(inode),块组
- data block:有1KB,2KB,4KB可以设置,无法修改,一个文件至少占用一个block,一个block也只能放置一个文件,多的空间浪费掉了
- inode table:每个文件都仅仅占用一个inode.inode仅有128bytes,所以会有直接,间接,双间接的方式来使用block作为号码记录拓展
- superblock:block与index总量,大小,使用情况
与目录树的关系
ext2文件系统新建一个目录,至少分配一个inode与一块block给该目录
其中inode记录该目录的相关权限与属性并记录分配给改目录的block号码,block则记录该目录下的文件名与该文件名占用的inode号码数据(通过这个可以看出来inode并不记录文件名,文件名是目录记录的)
日志文件系统
最初的普通文件访问时直接是修改inode和block和super block内容,那么如果在这个时候遇到突发情况则会导致文件损坏,这样每次开机时都需要检查全文件系统所有文件的状态,硬盘全检查,这导致相当的费时间.
为了避免这种情况,提出了日志文件系统概念,在写入文件时先记录日志,然后写文件,最后再记录写成功日志.这样在每次开机时只检查文件日志就可以判断当前文件系统状态
挂载点的意义
将文件系统与目录树结合的操作,我们称之为挂载
挂载点一定是目录,该目录为进入该文件系统的入口.
虚拟文件系统VFS
Linux内核用于管理所有的文件系统的功能(统一的对外表现)
相关命令
df 列出文件系统的整体磁盘使用量
-h 易读的方式
-T 显示文件系统名称
-i 显示inode数量
一般使用较多:df -hT
du 评估文件系统磁盘使用量
-h 易读的方式
-s 列出总量而已,不列出各个目录的比例
一般使用du -h或du -s /home/dir(这个命令是看某个文件夹的大小)
ln 创建连接文件
-s 符号链接
硬链接(通过记录inode号码寻找源文件,当源文件名被删除时依然可以读取到,因为自己记录了inode信息).
符号链接(快捷方式,通过记录文件名寻找源文件,依赖源文件.当源文件名被删除就读取不了了).
磁盘的分区,格式化,检验与挂载
1分区
fdisk [-l] 设备名
2格式化
mkfs -t ext3 /dev/hdc6
指定设备名和文件系统类型
3磁盘检查(可选)
fsck -C
不要随便使用这个命令,会造成磁盘损坏
4磁盘挂载与卸载
一个目录只应该挂载一个文件系统,并且挂载的目录应该是个空目录
mount /dev/hdc6 /mnt/hdc6
umount 设备名/挂载点
设置开机挂载
直接修改/etc/fstab就可以开机挂载
这个档案的内容共有六个字段,这六个字段非常重要,这里列一下
第一列:磁盘文件名或label名
第二列:挂载点
第三列:磁盘分区的文件系统
第四列:文件系统参数(没有特别设置就是defaults)
第五列:能否被dump(0不备份,1每天备份)
第六列:是否以fsck(0不检测,1检测2也检测,在1后面检测以此类推)
修改完之后使用mount -a即可载入,不要直接重启,有可能配错了会导致开机失败..
特殊设备挂载
mount -o loop /dir/aaa.iso /mnt/iso
通过-o loop参数可以直接将光盘,DVD镜像文件挂载,常用.
通过这个参数可以通过dd命令生成一个大文件然后mkfs格式化之后直接挂载使用,产生很特别的用法