linux文件系统管理
格式化:低级格式化(分区之前进行,划分磁道)、高级格式化(分区之后对分区进行,创建文件系统)
元数据区,数据区
元数据区:
文件元数据:inode (index node)
大小、权限、属主属组、时间戳、数据块指针
符号链接文件:存储数据指针的空间当中存储的是真实文件的访问路径;
设备文件:存储数据指针的空间当中存储的是设备号(major, minor);
bitmap
index:位图索引
VFS: Virtual
File System 虚拟文件系统
Linux的文件系统:
ext2(无日志功能), ext3(centos5), ext4(centos6), xfs(centos7), reiserfs,
btrfs(测试阶段)
光盘:iso9660
网络文件系统:nfs,
cifs
集群文件系统:gfs2,
ocfs2
内核级分布式文件系统:ceph
windows的文件系统:vfat, ntfs
伪文件系统:proc,
sysfs, tmpfs, hugepagefs
Unix的文件系统:UFS, FFS, JFS
交换文件系统:swap
用户空间的分布式文件系统:mogilefs, moosefs, glusterfs
超级块:
超级块(superblock)的作用是存储文件系统的大小、有多少是空的和已经填满的占多少,以及他们各自的总数和其他诸如此类的信息。要使用一个分区来进行数据访问,那么第一个要访问的就是超级块。所以如果超级块坏了,那磁盘也就基本没救了。
超级块占用第1号物理块,是文件系统的控制块,超级块包括:文件系统的大小、空闲块数目、空闲块索引表、空闲i节点数目、空闲i节点索引表、封锁标记等。超级块是系统为文件分配存储空间、回收存储空间的依据。
所以为了防止超级块数据损坏,就需要对超级块数据进行备份,以便于损坏时可以恢复。
swap:
Linux中Swap(即:交换分区),类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存、容量不足的情况。Android是基于Linux的操作系统,所以也可以使用Swap分区来提升系统运行效率[1]
。
交换分区,英文的说法是swap,意思是“交换”、“实物交易”。它的功能就是在内存不够的情况下,操作系统先把内存中暂时不用的数据,存到硬盘的交换空间,腾出内存来让别的程序运行,和Windows的虚拟内存(pagefile.sys)的作用是一样的。
内核级文件系统的组成部分:
文件系统驱动:由内核提供
文件系统箮理工具:由用户空间的应用程序提供
创建文件系统:
文件系统管理工具:mkfs
:即make file system
创建文件系统的工具
mkfs
mkfs.ext2, mkfs.ext3, mkfs.ext4, mkfs.xfs, mkfs.vfat,
...
检测及修复文件系统的工具
fsck
fsck.ext2, fsck.ext3, ...
查看卷标或块设备
e2label, blkid
查看其属性的工具
dumpe2fs, tune2fs
调整文件系统特性:
tune2fs
1、mkfs命令:mkfs
即:make file system的缩写
mkfs.ext2(没有日志), mkfs.ext3, mkfs.ext4
mkfs
[options] [-t type] [fs-options] device [size]:
-t FSTYPE [DEVICE]: ext2, ext3. ext4等
mkfs -t FSTYPE=mkfs.FSTYPE
例:~]# mkfs -t ext2 = mkfs.ext2
-L 'LABEL' :设定卷标
2、ext系列文件系统专用管理工具:mke2fs
mke2fs
[OPTIONS] device
-t
{ext2|ext3|ext4}:指明要创建的文件系统类型
mkfs.ext4 = mkfs -t ext4 = mke2fs -t
ext4
-b
{1024|2048|4096}:指明文件系统的块大小;默认都是4096
-L
LABEL:指明卷标;
-j:创建有日志功能的文件系统ext3;
mke2fs -j = mke2fs -t ext3 = mkfs -t ext3 =
mkfs.ext3
-i
#:bytes-per-inode,指明inode与字节的比率;即每多少字节创建一个Indode;
-N #:直接指明要给此文件系统创建的inode的数量;
-m #:指定预留的空间,百分比;默认5%
-O [^]FEATURE:以指定的特性创建目标文件系统;
对于交换分区使用特定的工具mkswap来创建交换分区,但前提是要先调整设备分区类型为8e
3、e2label命令:卷标的查看与设定
查看:e2label device
设定:e2label device
LABEL
4、blkid命令:查看块设备
blkid device
blkid -L
LABEL:根据LABEL定位设备
blkid -U
UUID:根据UUID定位设备
5、tune2fs命令:查看或修改ext系列文件系统的某些属性
adjust
tunable filesystem parameters on ext2/ext3/ext4
filesystems;
注意:块大小创建后不可修改;
tune2fs
[OPTIONS] device
-l:查看超级块的内容;
修改指定文件系统的属性:
-j:ext2 --> ext3;
-L LABEL:修改卷标;
-m #:调整预留空间百分比;
-O [^]FEATHER:开启或关闭某种特性;
-o [^]mount_options:开启或关闭某种默认挂载选项
acl
^acl
6、dumpe2fs命令:显示ext系列文件系统的属性信息:不能用于xfs
dumpe2fs
[-bfhixV] [-o superblock=] [-o blocksize=] device
7、文件系统检测的工具:
因进程意外中止或系统崩溃等原因导致定稿操作非正常终止时,可能会造成文件损坏;此时,应该检测并修复文件系统;
建议,离线进行;
ext系列文件系统的专用工具:
e2fsck :
check a Linux ext2/ext3/ext4 file system
e2fsck
[OPTIONS] device
-y:对所有问题自动回答为yes;
-f:即使文件系统处于clean状态,也要强制进行检测;
fsck:check
and repair a Linux file system
-t fstype:指明文件系统类型;
fsck -t ext4 = fsck.ext4
-a:无须交互而自动修复所有错误;
-r:交互式修复;
8、CentOS
6如何使用xfs文件系统:
# yum
-y install
xfsprogs
事先:
# cd /etc/yum.repos.d/
# wget
http://172.16.0.1/centos6.7.repo
# mv CentOS-Base.repo CentOS-Base.repo.bak
创建:mkfs.xfs
检测:fsck.xfs
9、swap文件系统:
Linux上的交换分区必须使用独立的文件系统;
且文件系统的System
ID必须为82;
创建swap设备:mkswap命令
mkswap [OPTIONS] device
-L LABEL:指明卷标
-f:强制
Windows无法识别Linux的文件系统;因此,存储设备需要两种系统之间交叉使用时,应该使用windows和Linux同时支持的文件系统:fat32(vfat);
# mkfs.vfat device