磁盘及文件系统管理(二)

上篇说到磁盘的管理,工作原理,分区以及操作系统中文件系统的定义和工作原理。第二篇承接上面第一篇讲解Linux下的文件系统类型,并以redhatcentos)中ext文件系统为例来具体看一下怎么创建和管理一个文件系统。本篇以命令介绍和举例为主,主要涉及到的命令有mkfsfsckdumpe2fstune2fse2labelmountdfdu等。嗯,先从mkfs开始吧。

一、创建文件系统

 创建文件系统即在已经分区完的磁盘上格式化磁盘分区。要格式化成某种文件系统,需要满足两个条件:

    1、内核中,支持此种文件系统;/lib/modules/2.6.32-573.el6.x86_64/kernel/fs目录中罗列了系统支持的文件系统类型

    2、用户空间,有文件系统管理工具;命令有mkfs,以及ext系列文件系统的专用工具mke2fs

1、mkfs 

格式:mkfs [-V] [-t fstype] [fs-options] filesys [blocks]

    -V /dev/DEVICE:详细显示模式

    -t fstype:需要的文件系统类型,必须是系统内核所支持的文件系统类型

    -c /dev/DEVICE:对未分区的磁盘进行检测

 

2、mke2fs

格式:mke2fs [OPTION]... DEVICE

    -t {ext2|ext3|ext4}:文件类型

    -b {1024|2048|4096}:块设备大小

    -L 'LABEL':标签

    -j: 等同于mke2fs -t ext3,创建ext3类型的文件系统

    -i #:指定多少个字节分配一个inode

    -N #:创建#inode

    -m #: 预留磁盘空间占据多大百分比的空间为后期管理使用;

3、e2label

    e2label /dev/DEVICE   查看卷标

    e2label /dev/DEVICE LABEL   设置卷标

4、Blkid

    blkid:显示所有分区信息,uuidtypelabel

    blkid /dev/DEVICE:显示选定分区信息

    -L:根据label查询分区

    -U:根据uuid查询分区

5、tune2fs

    -l:查看文件系统信息

    -j:将ext2文件系统转换为ext3类型的文件系统

    -L volume-label:修改文件系统标签

    -o mount-option:设置或清除默认挂载的文件系统选项

二、分区挂载

1、mount挂载

    mount:显示当前系统已经挂载的所有文件系统的相关信息

    -r:只读挂载

    -w:读写挂载

    -t FSTYPE:指定被挂载的设备上的文件系统类型,省略,mount会自动使用blkid命令判断

    -L LABEL:以卷标的方式指定要挂载的设备,此时DEVICE可省略

    -U UUID:以UUID的方式指定要挂载的设备,此时DEVICE可省略

    -a:自动挂载所有/etc/fstab中指定开机自动挂载的设备

    -n:默认情况下,设备挂载的改变结果会被保存于/etc/mtab中一份;此选项用于变动时不更新此文件

    -o OPTION,挂载选项:

        async:异步写入

        sync:同步写入

        atime/noatime:文件或目录被访问时更新/不更新时间戳

        diratime/nodiratime:目录被访问时更新/不更新时间戳

        auto/noauto:设备是否支持mount命令使用-a选项时自动挂载

        dev/nodev:此设备上是否创建设备文件

        exec/noexec:是否允许执行此文件系统上的程序文件

        suid/nosuid:是否支持此设备上的文件使用suid权限

        remount:重新挂载

        acl:支持使用facl

            #mount -o acl 

            #tune2fs -o acl /dev/DEVICE打开acl为默认挂载选项

        ro:只读

        rw:读写

        user/nouser:是否允许普通挂载此文件系统

        所有挂载选项均未指明时,其默认为:

        default

            Use default optionrw,suid,dev,exec,auto,nouser,async,relatime

        将某目录绑定至指定目录下,作为临时访问入口:

        mount  --bind 源目录 目标目录

查看所有已经挂载设备的方法:

    #mount

    #cat /etc/mtab 

    #cat /proc/mounts

2、umount卸载

    umount DEVICE

    umount MOUNT_POINT

注意:正在被某进程访问的设备无法被卸载,需要查看被什么进程所占用使用的命令,终止进程后才能卸载。

    #lsof MOUNT_POINT

    #fuser -v MOUNT_POINT

    #fuser -km MOUNT_POINT   终止正访问挂载点的进程

截图

三、查询信息

1、df

    -l:仅显示本地文件系统的相关系统

    -h:单位换算

    -i:显示inode的使用情况而非磁盘块的

    -T:显示文件系统类型

2、du

    -s:统计整个目录及内部所有文件总体大小

    -hhuman-readable

四、开机自动挂载

linux系统开机启动会根据配置文件/etc/fstab中指定开机自动挂载的设备信息来挂载文件系统。文件具体内容及字段含义。如下:

UUID=069d1634-3473-4ee6-bc0e-6864066766bc    /   ext4   defaults  1 1

6个字段:

    (1)挂载设备 表示挂载设备的3种类型,例:

        /dev/hda1   设备名称

        LABEL设备卷标

        UUID 设备号

        伪文件系统:如sysfsproctmpfs

    (2)挂载点

        注意:swap的挂载点仍然为swap

    (3)文件系统类型

    (4)挂载选项

        defaults表示使用默认挂载选项

        多个挂载选项之间使用逗号分隔:如defaultsaclnoatime

    (5)转储频率

        0:表示从不备份

        1:每天备份

        2:每隔一天备份

    (6)自检次序

        0:不自检

        1:首先自检,通常只有根文件系统使用

        2:次级自检

        ...

五、练习

创建一个10G的文件系统,类型为ext4,要求开机可自动挂载至/mydata目录

1、查看空盘信息

2、磁盘分区

3、查看分区信息

下面是今天的正题

4、格式化

5、查看信息

6、写入开机自动挂载文件

这样,6个步骤就OK了。然后机器重启验证下,命令df -hT是否有sdb1分区的挂载信息。