文件系统
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件系统相关的知识,希望对你有一定的参考价值。
文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的 系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,安全控制,日志,压缩, 加密等。对磁盘进行格式化
显示支持的文件系统: ls/lib/modules/`uname –r`/kernel/fs
根据其是否支持"journal"功能:
日志型文件系统: ext3,ext4, xfs, ...
非日志型文件系统: ext2,vfat
文件系统的组成部分:
内核中的模块:ext4, xfs,vfat
用户空间的管理工具:mkfs.ext4,mkfs.xfs,mkfs.vfat
1.创建文件系统
mkfs命令:
v(1) mkfs.FS_TYPE /dev/DEVICE
ext4
xfs
btrfs
vfat
(2) mkfs -t FS_TYPE /dev/DEVICE -L ‘LABEL‘: 指明文件类型并设定卷标
-b {1024|2048|4096} 块大小 mkfs.xfs -b 1024 /dev/sdc 里面文件至少占1024
块大小为磁盘扇区(512字节) 的整数倍
2.创建ext文件系统
mke2fs:ext系列文件系统专用管理工具
-t{ext2|ext3|ext4}
-b {1024|2048|4096} 创建后无法更改
-L ‘LABEL‘ 卷标 一般为挂载目录 mkdir/mnt/ss4 mount /dev/sdd1 /mnt/ss4
-j: 相当于 -t ext3
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs-t ext3
-i #: 为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小
-N #:指定分区中创建多少个inode
-I 一个inode记录占用的磁盘空间大小,128---4096
-m #: 默认5%,为管理人员预留空间占总空间的百分比
-O FEATURE[,...]:启用指定特性
-O ^FEATURE:关闭指定特性
3.ext系列文件系统参数调整 不能调整block大小
tune2fs:重新设定ext系列文件系统可调整参数的值
-l:查看指定文件系统超级块信息;super block
-L ‘LABEL‘:修改卷标
tune2fs /dev/sdd1 -L /mnt/ss4
-m #:修预留给管理员的空间百分比
-j: 将ext2升级为ext3
-O: 文件系统属性启用或禁用, –O ^has_journal
-o: 调整文件系统的默认挂载选项,–o ^acl
-U UUID: 修改UUID号
4.文件系统标签
blkid:块设备属性信息查看
vblkid [OPTION]... [DEVICE]
-U UUID: 根据指定的UUID来查找对应的设备
-L LABEL:根据指定的LABEL来查找对应的设备
ve2label:管理ext系列文件系统的LABEL
e2labelDEVICE [LABEL]
vfindfs :查找分区
findfs [options] LABEL=<label>
findfs LABEL=/mnt/ss4
findfs [options] UUID=<uuid>
findfsUUID=9e141ad2-0d2f-4668-963e-bf2c4d01c4d2
5.文件系统检测和修复
常发生于死机或者非正常关机之后
挂载为文件系统标记为“noclean”
注:一定不要在挂载状态下修复
vfsck: File System Check fsck.FS_TYPE fsck -tFS_TYPE
-p: 自动修复错误
-r: 交互式修复错误 FS_TYPE一定要与分区上已经文件类型相同
ve2fsck:ext系列文件专用的检测修复工具
-y:自动回答为yes
-f:强制修复
注:*fsck扫描文件系统时一定要在单用户模式、修复模式或把设备umount后进行
*文件系统的修复 顶多修复的是文件系统的元数据 并不能修复其内容
dumpe2fs DEVICE: 查看文件系统详细信息
块分组管理,32768块一组
-h:查看超级块信息,不显示分组信息
[[email protected]~]$dumpe2fs /dev/sdd1 |grep -i "superblock"
dumpe2fs1.42.9 (28-Dec-2013)
Primary superblock at 0, Group descriptors at1-1
Backup superblock at 32768, Group descriptorsat 32769-32769
Backup superblock at 98304, Group descriptorsat 98305-98305
Backup superblock at 163840, Group descriptorsat 163841-163841
Backup superblock at 229376, Group descriptorsat 229377-229377
Backup superblock at 294912, Group descriptorsat 294913-294913
[[email protected] ~]$dd if=/dev/zero of=/dev/sdd1 bs=1M count=1 破坏sdd1 主要超快0 (Reserved GDT blocks at 2-256) 256x4(块大小)=1M 全局描述符表GDT损坏
[[email protected] ~]$dumpe2fs /dev/sdd1
dumpe2fs1.42.9 (28-Dec-2013)
dumpe2fs:Bad magic number in super-block while trying to open /dev/sdd1
Couldn‘tfind valid filesystem superblock.
[[email protected] ~]$fsck /dev/sdd1 未挂载状态下修复
[[email protected] ~]$dumpe2fs /dev/sdd1 | grep -i"superblock
Backup superblock at 163840,Group descriptors at 163841-163841
6.用mount命令挂载文件系统
挂载:将额外文件系统与根文件系统某现存的目录建立起关联 关系,进而使得此目录做为其它文件访问入口的行为,无文件系统无法挂载
v 挂载点下原有文件在挂载完成后会被临时隐藏
v 挂载点目录一般为空
v卸载时:可使用设备, 也可以使用挂载点 umount 但当挂载设备被访问时,不能取消该设备挂载
v 多个设备分区不允许同1个挂载点
v 1个设备分区可以多个挂载点
mount[-fnrsvw] [-t vfstype] [-o options] device dir
-n: 不更新/etc/mtab,mount不可见 cat /proc/mounts可查看
-B, --bind: 绑定目录到另一个目录上
给文件创建文件系统
[[email protected] ~]#dd if=/dev/zero of=/app/cantest bs=1M count=100 文件
[[email protected]~]mke2fs -t ext4 /app/cantest
[[email protected] ~]#blkid /app/cantest 在centos6中 cantest为文件 查看属性需要跟详细路径
/app/cantest:UUID="50955518-b925-4b14-b127-7b13d671ca62" TYPE="ext4"
对文件挂载目录
[[email protected]~]#mkdir one
[[email protected]~]#mount /app/file one
mount: /app/file is not a block device (maybe try `-o loop‘?) 不是块设备不能定义block大小
[[email protected] ~]#mount -o loop /app/file one 对文件进行挂载 需要使用loop设备进行挂载 ls /dev/loop*
[[email protected]~]#mount
/app/fileon /root/one type ext4 (rw,loop=/dev/loop0)
在centos6中 /dev/loop*设备不够可手动创建
[[email protected]~]#ll /dev/loop*
brw-rw----.1 root disk 7, 7 Aug 1 21:14/dev/loop7
[[email protected]~]#mknod /dev/loop8 b 7 8
[[email protected]~]#cp /app/file{,1}
[[email protected]~]#blkid /app/file{,1}
/app/file:UUID="add5eca5-be19-4603-bd20-ba40f28017a0" TYPE="ext4"
/app/file1: UUID="add5eca5-be19-4603-bd20-ba40f28017a0"TYPE="ext4" 复制保留文件系统特性
目录挂载目录
[[email protected]~]#mount -B /etc/app
[[email protected]~]#ls /app
abrt drirc latrace.conf pinforc screenrc
acpi enscript.cfg latrace.d pkcs11 securetty
[[email protected]~]#ls /etc
abrt drirc latrace.conf pinforc screenrc
acpi enscript.cfg latrace.d pkcs11 securetty
像文件的硬链接但实现了跨分区
7.挂载点和/etc/fstab
v 配置文件系统体系
cat /etc/fstab
v 被mount、fsck和其它程序使用
v 系统重启时保留文件系统体系
v 可以在设备栏使用文件系统卷标
v 使用mount -a 命令挂载/etc/fstab中的所有文件系统带 defaults(默认挂载选项)立即生效,试用于一般挂载 不适合文件、目录、 swap。要使用mount -o remount /dev/sdd 重挂立即生效
v 设备名、卷标 、UUID都可以描述设备 由于设备名位置可能发生变化以及卷标可能重复性 ,在设备的配置文件中描述设备最好用UUID,文件系统的通用唯一标识符UUID
以上是关于文件系统的主要内容,如果未能解决你的问题,请参考以下文章