CentOS 7磁盘分区及文件系统管理

一、CentOS 7磁盘及文件系统特性

    在CentOS 7,不管是IDE硬盘还是SATA硬盘,在linux里面的硬盘设备文件标识都为/dev/sd[a-z]。(当然这一特性在CentOS 6中就已经实现)

    CentOS 7默认使用的文件系统为xfs。

二、磁盘分区管理工具

    磁盘分区管理工具有很多,在CentOS 7上也支持传统的fdisk工具,还有parted,sfdisk,本文以fdisk介绍,如果对parted、sfdisk等工具有兴趣可以看我的另外一篇博客:http://xinzong.blog.51cto.com/10018904/1750472 浅谈在Linux中磁盘超出2T的管理方式

 fdisk命令:

        fdisk -l [-u] [device...]

    1、查看分区表信息

        fdisk -l [device]  # 不加任何设备,默认查看所有

# fdisk -l /dev/sda
Disk /dev/sda: 128.8 GB, 128849018880 bytes, 251658240 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000b0d11
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048   251658239   125316096   8e  Linux LVM

    2、管理分区

        fdisk提供了一个交互式的借口来管理分区,他有许多子命令,分别实现不同管理功能;特点是在内存中完成,不直接同步到硬盘上,可通过w来保存。

        常用命令:

    n:创建新分区

    d:删除已有分区

    t:修改分区类型

    l:查看所有已经ID

    w:保存并退出

    q:不保存并退出

    m:查看帮助信息

    p:显示现有分区信息

CentOS 7磁盘分区及文件系统管理_第1张图片

CentOS 7磁盘分区及文件系统管理_第2张图片

    注意:使用w保存退出后,内核不会立即识别新分区,此处如果有需要,可以使用命令使内核强制读取。

     查看已经读取分区列表:

# cat /proc/partitions 
major minor  #blocks  name
   8       16   20971520 sdb
   8       17    5242880 sdb1
   8       18    5242880 sdb2
   8        0  125829120 sda
   8        1     512000 sda1
   8        2  125316096 sda2
  11        0    7413760 sr0
 253        0   52428800 dm-0
 253        1    2097152 dm-1
 253        2   70721536 dm-2

    通知内核强制重读磁盘分区表:

CentOS 5:partprobe [device]

CentOS 6,7:partx, kpartx

partx -a [device]

kpartx -af [device]

# partx -a /dev/sdb
partx: /dev/sdb: error adding partitions 1-4
# cat /proc/partitions 
major minor  #blocks  name
   8       16   20971520 sdb
   8       17    5242880 sdb1
   8       18    5242880 sdb2
   8       19    5242880 sdb3
   8       20          1 sdb4
   8        0  125829120 sda
   8        1     512000 sda1
   8        2  125316096 sda2
  11        0    7413760 sr0
 253        0   52428800 dm-0
 253        1    2097152 dm-1
 253        2   70721536 dm-2

三、文件系统管理

    创建文件系统,就是对分区进行格式化,格式化分为:低级格式化(分区之前进行,划分磁道)、高级格式化(分区之后对分区进行,创建文件系统),一般低级格式化都有硬盘厂商来完成。

文件系统管理工具:

    A、ext系列文件系统管理工具:

        1、创建文件系统工具

           mkfs系列(mkfs.ext2, mkfs.ext3, mkfs.ext4)

                # mkfs系列的使用方法比较简单,没有过多参数

CentOS 7磁盘分区及文件系统管理_第3张图片

           mke2fs:

                使用格式: mke2fs [OPTIONS] device

                常用命令参数:

                    -t {ext2|ext3|ext4}:指明要创建的文件系统类型

    mkfs.ext4 = mkfs -t ext4 = mke2fs -t ext4

                    -b {1024|2048|4096}:指明文件系统的块大小;

                    -L LABEL:指明卷标;

                    -j:创建有日志功能的文件系统ext3;

        # mke2fs -j = mke2fs -t ext3 = mkfs -t ext3 = mkfs.ext3


CentOS 7磁盘分区及文件系统管理_第4张图片       

        2、卷标查看与设定

           e2label

# e2label /dev/sdb2
MYDATA
# e2label /dev/sdb2 DATA
# e2label /dev/sdb2
DATA

        3、检查及修复文件系统工具

           e2fsck

                -y:对所有问题自动回答为yes; 

        -f:即使文件系统处于clean状态,也要强制进行检测;

# e2fsck /dev/sdb2
e2fsck 1.42.9 (28-Dec-2013)
DATA: clean, 11/655360 files, 204238/10484736 blocks
# e2fsck -yf /dev/sdb2
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
DATA: 11/655360 files (0.0% non-contiguous), 204238/10484736 blocks

           fsck:

                -t fstype:指明文件系统类型;

         fsck -t ext4 = fsck.ext4

                -a:无须交互而自动修复所有错误;

                -r:交互式修复;

# fsck -t ext4 /dev/sdb1
fsck from util-linux 2.23.2
e2fsck 1.42.9 (28-Dec-2013)
/dev/sdb1: clean, 11/196608 files, 31036/786432 blocks

        4、查看修改ext系列文件的某些属性

           dumpe2fs:             

 # dumpe2fs /dev/sdb1

           tune2fs:

                命令格式:tune2fs [OPTIONS] device

                常用参数: 

                    -l:查看超级块的内容;              

# tune2fs -l /dev/sdb1

                    -j:启用日志系统,在ext3以上默认启用,此处仅针对ext2文件系统

                    -L LABEL:修改卷标;

# e2label /dev/sdb1
MYDATA
# tune2fs -L TESTDATA /dev/sdb1
tune2fs 1.42.9 (28-Dec-2013)
# blkid /dev/sdb1
/dev/sdb1: LABEL="TESTDATA" UUID="2ca4b66c-3e37-460d-a300-022e916413a8" TYPE="ext4"

                    -m #:调整预留空间百分比,默认为5%;

CentOS 7磁盘分区及文件系统管理_第5张图片

CentOS 7磁盘分区及文件系统管理_第6张图片

        # 此操作一般在硬盘比较大的场景中适用

                    -O [^]FEATHER:开启或关闭某种特性;

CentOS 7磁盘分区及文件系统管理_第7张图片

CentOS 7磁盘分区及文件系统管理_第8张图片

                    -o [^]mount_options:开启或关闭某种默认挂载选项

    B、xfs文件系统管理工具:         

        创建文件系统工具:

            1、mkfs.xfs     

# mkfs.xfs -f /dev/sdb1
meta-data=/dev/sdb1              isize=256    agcount=4, agsize=655360 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=2621440, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

        修复文件系统工具:

            2、fsck

                 -t fstype:指明文件系统类型;

         -a:无须交互而自动修复所有错误;

                 -r:交互式修复;

# fsck -t xfs -a /dev/sdb1
fsck from util-linux 2.23.2
/sbin/fsck.xfs: XFS file system.

    C、其他文件系统管理工具

        swap管理工具:

            # 注意:swap需要在分区时文件系统类型改为82

# fdisk -l /dev/sdb

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos

Disk identifier: 0x7a37859b
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux
/dev/sdb2        20973568    41943039    10484736   82  Linux swap / Solaris

            格式化:mkswap

            启用/禁用:swapon、swapoff

# mkswap /dev/sdb2
mkswap: /dev/sdb2: warning: wiping old ext4 signature.
Setting up swapspace version 1, size = 10484732 KiB
no label, UUID=f21d2d05-a2c7-49ab-b7fd-202ceceb182c

# free -m
              total        used        free      shared  buff/cache   available
Mem:            977         136         673           6         167         685
Swap:          2048           0        2048

# swapon /dev/sdb2

# free -m
              total        used        free      shared  buff/cache   available
Mem:            977         144         666           6         167         677
Swap:         12287           0       12287

# swapoff /dev/sdb2

# free -m
              total        used        free      shared  buff/cache   available
Mem:            977         136         673           6         167         685
Swap:          2048           0        2048

四、文件系统使用

    在Linux中文件系统想要使用,需要挂载,挂载分为临时挂载(重启后不能继续使用,需要重新挂载)、永久挂载(卸载配置文件中)。

    1、临时挂载

        说mount之前说一下umount,因为期间可能会用到,方便朋友们理解

        a、umount:卸载

          umount  {dir|device}

            查看被哪个或哪些进程所战用:

# lsof  MOUNT_POINT

# fuser -v  MOUNT_POINT

         终止所有正在访问某挂载点的进程:

# fuser  -km  MOUNT_POINT



        2、mount命令:

    mount  [-nrw]  [-t vfstype]  [-o options]  device  dir

            选项:

                -r:readonly,只读挂载; 

# mount -r /dev/sdb2 /mnt/
# mkdir /mnt/test
mkdir: cannot create directory ‘/mnt/test’: Read-only file system

                -w:read and write, 读写挂载,默认为读写挂载

# mount -w /dev/sdb2 /mnt/
# mkdir /mnt/testfile
# ls /mnt/
lost+found  testfile

               -t vfstype:指明要挂载的设备上的文件系统的类型;多数情况下可省略,此时mount会通过blkid来判断要挂载的设备的文件系统类型;

# mount -t xfs /dev/sdb2 /mnt
# df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda2      xfs        40G  247M   40G   1% /
devtmpfs       devtmpfs  475M     0  475M   0% /dev
tmpfs          tmpfs     489M     0  489M   0% /dev/shm
tmpfs          tmpfs     489M  6.8M  483M   2% /run
tmpfs          tmpfs     489M     0  489M   0% /sys/fs/cgroup
/dev/sda3      xfs        20G  2.6G   18G  13% /usr
/dev/sda1      xfs       497M  138M  359M  28% /boot
tmpfs          tmpfs      98M     0   98M   0% /run/user/0
/dev/sdb2      xfs        10G   33M   10G   1% /mnt

                -L LABEL:挂载时以卷标的方式指明设备;

# blkid /dev/sdb2
/dev/sdb2: LABEL="MYDATA" UUID="ddbd612d-3830-49ba-86ce-65ba1519f6ae" TYPE="xfs" 
# mount -L MYDATA /mnt
# df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda2      xfs        40G  247M   40G   1% /
devtmpfs       devtmpfs  475M     0  475M   0% /dev
tmpfs          tmpfs     489M     0  489M   0% /dev/shm
tmpfs          tmpfs     489M  6.8M  483M   2% /run
tmpfs          tmpfs     489M     0  489M   0% /sys/fs/cgroup
/dev/sda3      xfs        20G  2.6G   18G  13% /usr
/dev/sda1      xfs       497M  138M  359M  28% /boot
tmpfs          tmpfs      98M     0   98M   0% /run/user/0
/dev/sdb2      xfs        10G   33M   10G   1% /mnt

                -U UUID:挂载时以UUID的方式指明设备;

# umount /dev/sdb2
# blkid /dev/sdb2
/dev/sdb2: LABEL="MYDATA" UUID="ddbd612d-3830-49ba-86ce-65ba1519f6ae" TYPE="xfs" 
# mount -U ddbd612d-3830-49ba-86ce-65ba1519f6ae /mnt
# df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda2      xfs        40G  247M   40G   1% /
devtmpfs       devtmpfs  475M     0  475M   0% /dev
tmpfs          tmpfs     489M     0  489M   0% /dev/shm
tmpfs          tmpfs     489M  6.8M  483M   2% /run
tmpfs          tmpfs     489M     0  489M   0% /sys/fs/cgroup
/dev/sda3      xfs        20G  2.6G   18G  13% /usr
/dev/sda1      xfs       497M  138M  359M  28% /boot
tmpfs          tmpfs      98M     0   98M   0% /run/user/0
/dev/sdb2      xfs        10G   33M   10G   1% /mnt

                -o options:挂载选项

            sync/async:同步/异步操作;

            atime/noatime:文件或目录在被访问时是否更新其访问时间戳;

            diratime/nodiratime:目录在被访问时是否更新其访问时间戳;

            remount:重新挂载; 

            acl:支持使用facl功能;

                 # mount -o acl  device dir 

                 # tune2fs  -o  acl  device 

            ro:只读 

            rw:读写 

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

            exec/noexec:是否允许运行此设备上的程序文件;

            auto/noauto:

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

            suid/nosuid:是否允许程序文件上的suid和sgid特殊权限生效;               有一个默认选项:defaults 其中包含: rw, suid, dev, exec, auto, nouser, async, and relatime.

# mount -o remount,ro,rw,auto,atime /dev/sdb2

# mount |tail -1
/dev/sdb2 on /mnt type xfs (rw,relatime,attr2,inode64,noquota)

# mount -o remount,defaults /dev/sdb2

# mount |tail -1
/dev/sdb2 on /mnt type xfs (rw,relatime,attr2,inode64,noquota)

    2、永久挂载既:设定除根文件系统以外的其它文件系统能够开机时自动挂载

        自动挂载文件:/etc/fstab

# cat /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Fri Mar  4 08:36:03 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=ad88b2e2-0eac-45e8-80b3-742a642827d7 /                       xfs     defaults        0 0
UUID=756954a4-022d-4da1-abe5-ed3dc587c95a /boot                   xfs     defaults        0 0
UUID=19dba320-753d-45b3-9071-85ae514f46e0 /usr                    xfs     defaults        0 0
UUID=67ffa57f-07e6-426f-8914-f04154a11b47 swap                    swap    defaults        0 0
/dev/sdb2       /mnt        xfs     defaults    0 0

        /etc/fstab下面分为6个字段:

            1、要挂载的设备(可以使用LABEL、UUID、设备文件)

            2、挂载点

            3、文件系统类型

            4、挂载选项(defaults使用默认挂载选线,如需同时指明,则:defaults,acl)                    5、转储频率

                0:从不备份

                1:每天备份

                2:每隔一天备份

            6、自检次序

                0:不自检

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

                2:次级自检

            mount -a:可自动挂载定义在此文件中的所支持自动挂载的设备;

    实例:     

# df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda2      xfs        40G  247M   40G   1% /
devtmpfs       devtmpfs  475M     0  475M   0% /dev
tmpfs          tmpfs     489M     0  489M   0% /dev/shm
tmpfs          tmpfs     489M  6.8M  483M   2% /run
tmpfs          tmpfs     489M     0  489M   0% /sys/fs/cgroup
/dev/sda3      xfs        20G  2.6G   18G  13% /usr
/dev/sda1      xfs       497M  138M  359M  28% /boot
tmpfs          tmpfs      98M     0   98M   0% /run/user/0

# vim /etc/fstab  #此处使用vim进行编辑,结果如下输出

# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Fri Mar  4 08:36:03 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=ad88b2e2-0eac-45e8-80b3-742a642827d7 /                       xfs     defaults        0 0
UUID=756954a4-022d-4da1-abe5-ed3dc587c95a /boot                   xfs     defaults        0 0
UUID=19dba320-753d-45b3-9071-85ae514f46e0 /usr                    xfs     defaults        0 0
UUID=67ffa57f-07e6-426f-8914-f04154a11b47 swap                    swap    defaults        0 0
/dev/sdb2       /mnt        xfs     defaults    0 0

# mount -a

# df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda2      xfs        40G  247M   40G   1% /
devtmpfs       devtmpfs  475M     0  475M   0% /dev
tmpfs          tmpfs     489M     0  489M   0% /dev/shm
tmpfs          tmpfs     489M  6.8M  483M   2% /run
tmpfs          tmpfs     489M     0  489M   0% /sys/fs/cgroup
/dev/sda3      xfs        20G  2.6G   18G  13% /usr
/dev/sda1      xfs       497M  138M  359M  28% /boot
tmpfs          tmpfs      98M     0   98M   0% /run/user/0
/dev/sdb2      xfs        10G   33M   10G   1% /mnt




    

你可能感兴趣的:(linux,centos,磁盘管理)