一、基础概念
文件系统是一种管理存储设备上所存储的文件的一种内生性软件。
能与硬件的存储设备进行交互的只有内核。在操作系统还没有启动的时候,内核也没有启动,由于内核必须依靠文件系统才能启动。然而文件系统由存放于内核中,内核启动前文件系统不存在。这样环绕的问题,类似一个“鸡生蛋,蛋生鸡”的问题。其实,在操作系统启动时,MBR中的Bootloader会自动识别根文件系统(/),随之根文件系统中的内核便会启动,操作系统启动完成。
二、文件系统类型
虚拟文件系统(VFS):可以识别其他不同的文件系统,并转换成本机可以识别的文件系统。
基本文件系统:ext2,ext3,ext4,xfs,jfs,ntfs等。
网络文件系统:NFS等。
光盘文件系统:iso9660。
集群文件系统:GFS,其分布于多台计算机上,计算机之间通过某种方式通行,将集群内所有存储空间的资源整合,并向外以统一的接口提供文件访问的一种文件系统等。
交换分区:swap。
三、ext4文件系统对于文件的管理方式
ext4是目前比较常用的文件系统,一下就该文件系统的管理做简单介绍。
block:文件系统管理文件的基本单元,block的大小通常是2^nK。
inode:存放文件的属主、属组、访问权限、时间戳。最重要的是存放文件所在的数据块信息。
inode位图:存放闲置的inode和已使用的inode信息。方便在存储文件时,为文件分配相应的inode。
block位图:与inode位图类似,存放闲置的block和已使用的block。方便为文件分配block,存储文件内容。
super block:存放inode、inode位图以及block位图的在文件系统中的存储位置。
日志记录区:防止在存储文件过程中,由于断电等硬件故障导致文件存储失败,再次开机时,删除该无效文件。在存储文件的时候,给文件分配一个inode之后,在inode区和日志记录区均有记载,如果存储成功,该inode会被删除,如果在存储过程中遇到故障,就会记录该inode,便于下次开机对文件系统的检测和清理。
四、文件系统操作:
1、分区只能由4个主分区,为什么?
启动操作系统的MBR一共含有512字节,前446字节存放Bootloader用于启动操作系统,接着64字节存放分区信息,每16个字节存放一个分区信息,所以一个操作系统只能由四个主分区,若想使用多个分区,可以将其中一个或者两个分区设置为扩展分区,然后再扩展分区中可以创建多个逻辑分区。
2、分区操作:
命令:fdisk <device-name>, 进入交互式界面。
交互式的常用Command:
n:增加新分区
d:删除分区
p:打印当前磁盘的分区信息
t:调整分区标记(分区ID)
L:列出所有分区的ID信息
w:保存分区信息并退出
q:不保存退出
m:获取帮助
新建的分区信息查看方式:
1、/proc/partition文件中保存所有存储设备的分区信息。
2、使用命令。fdisk -l <device-name>
2、格式化
命令:mke2fs [option] <device-name>、mkfs;
Option:
-t fs-type: 指定文件系统类型(常用)
-L label: 指定卷标
-b block-size: 指定数据块大小
-i byte_per_inode: 指定几个字节对应一个inode
-N inode-num; 指定inode数目
-I inode-size: 指定inode大小
创建ext4分区的不同方式(其他文件系统类似):
1、# mke2fs -t ext4 /dev/sdb1;
2、# mkfs.ext4
3、# mkfs -t ext4 /dev/sdb1
其他命令:
1、blkid <device-name> 查看存储设备的文件系统类型。
# blkid /dev/sdb1
2、dumpe2fs [option] <device-mname> 查看块组信息。
Option:-h 只显示super block中的信息。
3、tune2fs [option] <device-name> 调整超级块中的信息
Option:
-l :查看超级块信息
-L label :修改卷标信息
-j:如果原文件系统为ext2,则升级为ext3,并不影响数据。
-o mount-option:指定挂载属性
-O:调整分区特性
关闭某特性:tune2fs ^feature <device-path>
打开某特性:tune2fs feature <device-path>
4、fsck、e2fsck。检测文件系统。
3、挂载|卸载存储设备
挂载:mount <device-path> <destdir-name>
# mount /dev/sdb1 /mnt/sdb_data
自动挂载:将需要挂载的设备在/etc/fstab文件中进行编辑,然后执行命令“mount -a”即可。
卸载:umount {device-path | destdir-name}
# umount /dev/sdb1
# umount /mnt/sdb_data
4、查看磁盘使用情况
命令:df,du
df [option] <device-name>:查看挂在设备使用情况
Option:-h 换算成人容易识别的单位
-i 查看inode 使用情况
du [option] <file-name>:查看文件占用存储设备的情况
Option:-h human-readable
-s 整个目录在磁盘中的使用情况
五、交换分区的创建
1、调整分区类型:
2、格式化交换分区:
命令:mkswap <device-name>
# mkswap /dev/sdb1
3、启动|关闭交换分区
命令:swapon [option] <device-path>、swapoff [option] <device-path>
Option: -a :(启动|禁用)所有交换分区
-p # :启动时指定优先级
启动:# swapon /dev/sdb1
关闭:# swapoff /dev/sdb1
================= 以上就是我对文件系统的浅谈,如有不妥欢迎指出 =========================