文件系统

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文件系统

mke2fsext系列文件系统专用管理工具

-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一定要与分区上已经文件类型相同

 ve2fsckext系列文件专用的检测修复工具

 -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/mtabmount不可见     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 mountfsck和其它程序使用

 v 系统重启时保留文件系统体系

 v 可以在设备栏使用文件系统卷标

 v 使用mount  -a 命令挂载/etc/fstab中的所有文件系统带  defaults(默认挂载选项)立即生效,试用于一般挂载 不适合文件、目录、 swap。要使用mount -o remount /dev/sdd 重挂立即生效

 v 设备名、卷标 、UUID都可以描述设备    由于设备名位置可能发生变化以及卷标可能重复性 ,在设备的配置文件中描述设备最好用UUID,文件系统的通用唯一标识符UUID



以上是关于文件系统的主要内容,如果未能解决你的问题,请参考以下文章

Linux文件系统的文件系统

Linux里面文件系统都有哪些?

常见的文件系统都有哪些?

Android 文件系统中添加文件及添加系统属性

docker联合文件系统

深究NTFS文件系统