件系统管理
格式化:低级格式化(分区之前,划分磁道) 高级格式化:在分区之后进行,创建文件系统 元数据(也是放在块上(block)):inode 大小,权限,属主,属组,时间戳... 数据块指针(文件位置,不是路径,指向数据区的块) Inode 固定大小 所以存储数据库指针的空间也是固定的,决定了最大文件的大小。inode数量可以规划。 block和inode之间的比率 数据区 单位是block(2的n次方扇区大小)可以设置块大小。一个块只能属于一个文件。(文件较小的可以设置块小一点(不浪费空间),大文件还是设置块大的好(读写性能好)。) 创建数据区域时,为管理员预留了一部分空间,以防止,磁盘空间满了以后,管理员可以操作磁盘。 链接文件:存储数据指针的空间当中存储的是真是文件的访问路径 设备文件:存储数据指针的空间当中存储的是设备号(主,次设备号) 目录:目录也是文件,文件名属于目录的的数据,目录不支持硬链接。
文件系统创建过程:先为整个分区规划块的大小(block)–>然后规划元数据区和数据区–>为元数据区创建inode
日志文件系统,
journal 创建文件时先写入到日志区域,写入完毕后再写入到元数据和数据区。
linux支持的文件系统
为了支持更多的文件系统,引入了vfs虚拟文件系统。实现了,程序员无需关心不同的文件系统的差异。vfs支持的系统如下: ext2,ext3,ext4,xfs,reiserfs,btrfs ISO9660光盘 nfs,cifs网络文件系统 GFS2,OCFS2集群文件系统 ceph,moosefs,mogilefs,GlusterFS 内核的分布式文件系统 swap交换文件系统 proc、sys伪文件系统 windows的vfat,ntfs文件系统 unix的文件系统:UFS,FFS.JFS 用户空间的分布式文件系统:mogilefs,moosefs,glusterfs 日志型文件系统: ext3,ext4,xfs 非日志文件系统: ext2,vfat 文件系统的组成部分: 内核中的模块:ext4, xfs, vfat ###就是驱动 用户空间的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat Linux的虚拟文件系统:VFS 查前支持的文件系统:cat /proc/filesystems
文件系统管理工具
查看系统支持文件系统类型
[root@yangyouwei ~]# cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev cgroup
nodev cpuset
nodev tmpfs
nodev devtmpfs
nodev binfmt_misc
nodev debugfs
nodev securityfs
nodev sockfs
nodev usbfs
nodev pipefs
nodev anon_inodefs
nodev inotifyfs
nodev devpts
nodev ramfs
nodev hugetlbfs
iso9660
nodev pstore
nodev mqueue
nodev selinuxfs
nodev drm
ext4
nodev autofs ###这个模块cenos7没有安装,需要软件支持,安装autofs
因linux支持的文件系统众多,所以工具也不尽相同,工具较多。 创建文件系统的工具 mkfs mkfs.ext2,mkfs.ext3,mkfs.ext4,mkfs.xfs,mkfs.btrfs,mkfs.vfat 检测及修复文件系统的工具 fsck fsck.ext2,fsck.ext3 查看属性的工具 dumpe2fs,tune2fs,blkid 调整文件系统属性特性: tune2fs
查看系统已经加载的模块
[root@localhost ~]# lsmod e1000 134863 0 vmware_balloon 7199 0 sg 29318 0 i2c_piix4 11232 0 shpchp 29130 0 ext4 379655 3 ###说明调用了3次有三个ext4分区 jbd2 93252 1 ext4 mbcache 8193 1 ext4 sr_mod 15049 0 cdrom 39085 1 sr_mod sd_mod 37158 5 crc_t10dif 1209 1 sd_mod ahci 43154 0
系统版本
lsb_release 查看系统lsb的发行版本 centos6
cat /etc/issue 查看系统的发行版本
uname -r 查看内核版本
创建文件系统
内核级文件系统的组成部分 内核是靠文件系统驱动识别其他文件系统的。 lsmod 查看内核加载的模块(有的驱动是直接编译进内核,此命令是看不到的。) cenos6默认不支持xfs 需要安装xfs软件支持。 yum install xfsprogs 后系统中就会有mkfs.xfs xfsgrogs也有很多工具,可以创建分区,查看分区信息,修复检测工具等。
件系统个管理工具(危险操作慎用!)
创建文件系统的工具主要为mkfs
mkfs mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.xfs mkfs.btrfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.vfat 查看文件系统类型 [root@localhost ~]# blkid /dev/sda1 /dev/sda1: UUID="a2e0a941-556c-4d99-ac0d-40034bb7581e" TYPE="xfs" UUID:全局唯一标识符
创建多种文件系统
mkfs命令:可创建多种文件系统。
(1) # mkfs.FS_TYPE/dev/DEVICE
ext4
xfs
btrfs
vfat
(2) # mkfs-t FS_TYPE /dev/DEVICE -L 'LABEL': 设定卷标
创建ext文件系统–功能强大针对ext文件系统–常用
mke2fs:ext系列文件系统专用管理工具---------ext系列的专用工具。 -t {ext2|ext3|ext4} -b {1024|2048|4096} -L 'LABEL' -j: 相当于-t ext3 mkfs.ext3 = mkfs-t ext3 = mke2fs -j = mke2fs -t ext3 -i#: 为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小 比率每多少个字节一个inode -N #: 为数据空间创建个多少个inode -m #: 默认5%,为管理人员预留空间占总空间的百分比 -O FEATURE[,...]: 启用指定特性 例如开启日志功能。 -O ^FEATURE: 关闭指定特性 文件系统选项(特性) 详见man ext4 FILE SYSTEM FEATURES
实例
[root@localhost ~]# mkfs.ext4 /dev/sda7 mke2fs 1.42.9 (28-Dec-2013) Filesystem label= ###卷标 OS type: Linux ###文件系统类型 Block size=4096 (log=2) ###块大小 Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1310720 inodes, 5242880 blocks ###总共多少个inode和多少个block 262144 blocks (5.00%) reserved for the super user ###为管理员预留的空间 First data block=0 Maximum filesystem blocks=2153775104 160 block groups ###一共多少个块组 32768 blocks per group, 32768 fragments per group ###每个块组有多少个块 8192 inodes per group ###每个块组有多少个inode Superblock backups stored on blocks: ###超级块备份在那些块上。 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done ###创建日志 Writing superblocks and filesystem accounting information: done
文件系统标签,查看与修改
指向设备的另一种方法 与设备无关
查看设备属性,卷标,uuid,设备名称,类型
blkid:块设备属性信息查看(分区)
blkid[OPTION]… [DEVICE]
-U UUID: 根据指定的UUID来查找对应的设备
-L LABEL:根据指定的LABEL来查找对应的设备
查看修改文件系统的lable卷标
e2label:管理ext系列文件系统的LABEL
[root@localhost ~]# e2label /dev/sda7 mydate ##设置卷标
[root@localhost ~]# e2label /dev/sda7 ##查看卷标
mydate
分区查找 根据uuid 、卷标查找设备
findfs:查找分区
findfs[options] LABEL=
findfs[options] UUID=<uuid>
======================================================================
调整文件系属性
针对ext文件系统的调整,其它文件系统使用其专用工具
[root@localhost ~]# btrfs
btrfs btrfs-find-root btrfs-show-super
btrfsck btrfs-image btrfstune
btrfs-convert btrfs-map-logical btrfs-zero-log
btrfs-debug-tree btrfs-select-super
[root@localhost ~]# xfs xfs_admin xfs_estimate xfsinvutil xfs_mkfile xfs_rtcp xfs_bmap xfs_freeze xfs_io xfs_ncheck xfs_copy xfs_fsr xfs_logprint xfs_quota xfs_db xfs_growfs xfs_mdrestore xfs_repair xfsdump xfs_info xfs_metadump xfsrestore
tune2fs 调整ext文件系统的某些属性,不能修改其他文件系统的属性。
tune2fs:重新设定ext系列文件系统可调整参数的值 -l:查看指定文件系统超级块信息;super block -L 'LABEL':修改卷标 -m #:修预留给管理员的空间百分比 -j: 将ext2升级为ext3 -O: 文件系统属性启用或禁用,–O ^has_journal -o: 调整文件系统的默认挂载选项,–o ^acl -U UUID: 修改UUID号; [root@localhost ~]# tune2fs -l /dev/sda7 tune2fs 1.42.9 (28-Dec-2013) Filesystem volume name: mydate Last mounted on: <not available> Filesystem UUID: dfc6560a-aad9-4df1-b79a-b5316620bc1e Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize Filesystem flags: signed_directory_hash Default mount options: user_xattr acl ######### Filesystem state: clean ########### Errors behavior: Continue Filesystem OS type: Linux Inode count: 1310720 Block count: 5242880 Reserved block count: 262144 Free blocks: 5116558 Free inodes: 1310709 First block: 0 Block size: 4096 Fragment size: 4096 Group descriptor size: 64 Reserved GDT blocks: 1024 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 8192 Inode blocks per group: 512 Flex block group size: 16 Filesystem created: Mon Aug 22 18:56:27 2016 Last mount time: n/a Last write time: Mon Aug 22 19:42:53 2016 Mount count: 0 ###########挂载次数,可以修改 Maximum mount count: -1 #######最大挂载次数,达到次数后触发文件系统检查 Last checked: Mon Aug 22 18:56:27 2016 Check interval: 0 (<none>) Lifetime writes: 132 MB Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 256 Required extra isize: 28 Desired extra isize: 28 Journal inode: 8 Default directory hash: half_md4 Directory Hash Seed: 9d4d3d1b-cad8-457f-8058-054bc83e71e0 Journal backup: inode blocks [root@localhost ~]# centos6默认用户自己挂在的文件系统不开启acl功能。需要自己打开。
===================================================================
查看超级块及块组信息
dumpe2fs: dumpe2fs - dump ext2/ext3/ext4 filesystem information ###仅针对ext系列文件系统 dumpe2fs [options] /DEV(分区) -h:查看超级块信息(分组信息),每个块组的信息。 -l 每个块组的信息。 Group 1: (Blocks 5210112-5242879) [INODE_UNINIT] Checksum 0xa706, unused inodes 8192 Block bitmap at 4718607 (bg #144 + 15), Inode bitmap at 4718623 (bg #144 + 31) Inode table at 4726304-4726815 (bg #144 + 7712) 32768 free blocks, 8192 free inodes, 0 directories, 8192 unused inodes Free blocks: 5210112-5242879 Free inodes: 1302529-1310720
========================================================================
文件系统检测和修复
因为进程意外终止或系统崩溃等原因导致定稿操作非正常终止时,可能会照成文件损坏;此时应该检测并修复文件系统;建议离线检查(umonut)。
挂载为文件系统标记为“dirty” fsck: ### 自动检测文件系统类型。 File System Check 各个文件系统都能使用--通用工具 fsck.FS_TYPE ### 与分区类型一定要一致 fsck-t FS_TYPE -a: 自动修复错误 不建议自动修复 -r: 交互式修复错误 注意: FS_TYPE一定要与分区上已经文件类型相同; e2fsck: ext系列文件专用的检测修复工具 只能检查ext2、3、4 -y:自动回答为yes -f:强制修复 e2fsck [options] /DEV(分区) [root@localhost ~]# e2fsck -f /dev/sda7 e2fsck 1.42.9 (28-Dec-2013) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information mydate: 11/1310720 files (0.0% non-contiguous), 126322/5242880 blocks
修复操作系统,是一个危险操作。
有进程在使用或其他用户的当前工作目录处于该设备,则不能卸载。需要查看,都是那些进程使用该设备。需要结束该进程,才可以卸载。
原创文章,作者:yyw,如若转载,请注明出处:http://www.178linux.com/40805