linux文件系统创建

件系统管理

格式化:低级格式化(分区之前,划分磁道)

        高级格式化:在分区之后进行,创建文件系统

        元数据(也是放在块上(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

(0)
yywyyw
上一篇 2016-08-29 08:49
下一篇 2016-08-29 08:49

相关推荐

  • corosync + pacemaker + iscsi实现高可用mysql (上)

    一、实验图   二、准备实验环境:  1)确保sql服务器之间可以基于主机名通信 [root@SQL1 ~]# vim /etc/hosts 172.16.2.13  SQL1.linux.com  SQL1 172.16.2.14  SQL2.li…

    Linux干货 2015-07-09
  • grep简述

    grep(Globel Search Regular Expression and Printing out the line) 它能使用正则表达式搜索文本,并把匹配的行打印出来。 grep包括grep、egrep和fgrep。 egrep表示扩展的grep,相比grep支持更多的匹配模式, “grep -E”相当于egrep。 fgrep是fast gre…

    2017-04-06
  • CentOS7安装Zabbix3.0版本应用

    一、Zabbix介绍        zabbix 简介   Zabbix 是一个高度集成的网络监控解决方案,可以提供企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利  &n…

    Linux干货 2016-11-03
  • 重定向和管道

    重定向和管道 今天一起来学习一下重定向的一些相关命令及用法: 我们都知道程序=指令+数据 ,那么我们的数据的输入(Input)和输出(Output)是如何实现的呢?!跟小编君一起来看一下吧: 本博文小编君分成了四部分:1.重定向的讲解 2.管道符的讲解 3.涉及到的一些其他命令 4.练习题 一:重定向 重定向的本质是改变文件的默认位置,即换个地方存储数据。 …

    2017-08-04
  • YUM 的使用和YUM源的配置

    简介     yum(Yellow dog Updater Modified)是CentOS中属于RPM前端软件包管理器,能从指定的服务器中下载RPM包,并自动分析和处理RPM包之间的依赖关系,最后将依次所依赖的软件包都安装了,而无需繁琐的一个一个安装。 一 yum repository:yum仓库 yum仓库的组成部…

    Linux干货 2016-02-14
  • 聊聊CentOS6的启动过程

    前言:     作为一个合格的运维人员,系统的启动过程我们需要牢记在心,此文不深入探讨,只求大致理解CentOS6的启动过程。 一张图带你了解CentOS6的启动过程 注意:图片放大查看效果更佳 上图各阶段详解 POST:计算机开机时BIOS对其各硬件的简单测试,测试各硬件的完整性 BootSqunce:加电自检后根据…

    Linux干货 2016-03-14