Linux磁盘管理(分区,格式化,文件系统、VFS、mount、fstab)

Linux系统中数据存储在磁盘中,磁盘在冯诺依曼体系中属于输入输出外部存储对象,保存着重要的企业数据,对Linux系统中的磁盘管理尤其需要熟练掌握,由于企业目前使用的主流存储设备还是硬盘,所以这里只叙述硬盘的组织结构;

1.分区:

   (1)低级格式化:

      硬盘在出厂的时候厂家会做一次分区格式化,主要是划分磁道和的固定大小的扇区,这就是所谓的低级格式化,由厂商完成;


   (2)分区作用:

      厂家做完低级格式化后,整个磁盘是一个完成完整的物理边界,直接使用当发生故障后,要修复的范围是整个磁盘,同时在整个磁盘上实现对文件系统的管理效率是很低下的,尤其是大空间量的磁盘管理更加困难;可以通过划分分区,划分多个空间作为独立管理对象,在一个相对较小独立的空间中,即提高了故障修复速度,同时也提高了数据管理效率;

   (3)分区视角:

      通过上面的说明可以看出分区是磁盘空间的逻辑边界;

 

   (4)分区类型:

      MBR:主引导记录

      这种分区方式通过MBR记录各分区表的信息,开机引导操作系统的方式以及磁盘分区是否可以;具体如下

      MBR:总大小512个字节,不参与分区空间划分,记录在磁盘的最开始处;

      boot loader:引导加载器,前446byts;

      分区表:总大小64bytes,16bytes标识一个分区;所以最多四个分区;

      MBR分区类型:可以最多四个主分区或者三个主分区和一个扩展分区;

      GPT:GUID(globals unique identfiers)

      根据MBR划分主分区的数量限制,满足不了更大磁盘空间管理,所以有了GPT磁盘分区方式,GPT突破了传统可以最大划分128个分区,使用的是64位;分区结构如下:

      Protective MBR:GPT分区保护,防止不能识别GPT分区的从而破坏GPT分区数据;

      EFI:GPT头

      分区表

      GPT分区

      备份分区

   (5)分区工具:

      1.查看系统磁盘设备工具:要想管理,首先要知道系统有哪些磁盘可用;方式如下:

        lsblk:查看系统磁盘设备情况

[root@xia7 ~]# lsblk 
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda             8:0    0  200G  0 disk 
├─sda1          8:1    0  488M  0 part /boot
├─sda2          8:2    0   40G  0 part /
├─sda3          8:3    0   20G  0 part /usr
├─sda4          8:4    0    1K  0 part 
└─sda5          8:5    0    2G  0 part [SWAP]
sdb             8:16   0  100G  0 disk 
├─sdb1          8:17   0   10G  0 part 
├─sdb2          8:18   0   10G  0 part 
└─sdb3          8:19   0   20G  0 part /tmp/mnt

      

        cat /proc/partitions :查看系统识别的设备信息

[root@xia7 ~]# cat /proc/partitions 
major minor  #blocks  name
   8        0  209715200 sda
   8        1     499712 sda1
   8        2   41943040 sda2
   8        3   20971520 sda3
   8        4          1 sda4
   8        5    2098176 sda5
   8       32   20971520 sdc
   8       33   20970496 sdc1
   8       16  104857600 sdb
   8       17   10485760 sdb1
   8       18   10485760 sdb2
   8       19   20971520 sdb3
   8       48   20971520 sdd
   8       49   20970496 sdd1
  11        0    7587840 sr0
   8       64   20971520 sde
   8       65   20970496 sde1
   8       80   20971520 sdf
   8       81   20970496 sdf1
 253        0   73400320 dm-0

        ls -l /dev/sd* :查看系统读取的设备

[root@xia7 ~]# ls -l /dev/sd*
brw-rw---- 1 root disk 8,  0 Aug 30 20:25 /dev/sda
brw-rw---- 1 root disk 8,  1 Aug 30 20:25 /dev/sda1
brw-rw---- 1 root disk 8,  2 Aug 30 20:25 /dev/sda2
brw-rw---- 1 root disk 8,  3 Aug 30 20:25 /dev/sda3
brw-rw---- 1 root disk 8,  4 Aug 30 20:25 /dev/sda4
brw-rw---- 1 root disk 8,  5 Aug 30 20:25 /dev/sda5
brw-rw---- 1 root disk 8, 16 Aug 31 09:45 /dev/sdb
brw-rw---- 1 root disk 8, 17 Aug 31 09:45 /dev/sdb1
brw-rw---- 1 root disk 8, 18 Aug 31 09:45 /dev/sdb2
brw-rw---- 1 root disk 8, 19 Aug 31 09:45 /dev/sdb3

        fdisk -l :查看设备详细信息

[root@xia7 ~]# fdisk -l
Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 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: 0x000f1359
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1001471      499712   83  Linux
/dev/sda2         1001472    84887551    41943040   83  Linux
/dev/sda3        84887552   126830591    20971520   83  Linux
/dev/sda4       126830592   419430399   146299904    5  Extended
/dev/sda5       126834688   131031039     2098176   82  Linux swap / Solaris
Disk /dev/sdc: 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: 0xa573c896
   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048    41943039    20970496   8e  Linux LVM

   (6)分区命令fdisk

      语法格式:fdisk -l device

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)
Command (m for help):

      常用选项解释说明:

       m:查看帮助菜单

       p:查看分区信息

       n:创建分区:其中有子命令  

         e:创建扩展分区

         p:创建主分区:

       t:改变其他分区类型;默认为Linux分区

           l|L :可以查看创建的分区的类型

       d:删除分区;需要指定分区编号,一个默认直接删除;

       o:转换磁盘类型为msdos也就是MBR分区

       w:保存修改退出

       q:不保存修改退出


     gdisk工具:专门创建GPT分区命令,使用格式跟fdisk命令使用类似,这里不再介绍;

  

   (7)系统重新读取修改配置命令:

       让系统读取设备命令

        partprobe [device]


        partx -a device 

       

       让系统删除已经改变的分区

        partx -d device 

     

   (8)高级分区parted命令:

       这是一个实时生效的非交互式操作命令,实现分区管理

      语法格式:

          parted [device] [command] [argument]

      常用选项:

          mklabel gpt|msdos :设置磁盘分区类型

          print :查看指定磁盘分区信息;

          mkpart parimary 分区编号 分区大小 :创建分区类型指定编号及大小;

          rm 分区编号:删除第几个分区

          -l :查看所有磁盘信息

文件系统

    文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统。

    从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,安全控制,日志,压缩,加密等。

    文件系统类型:

    这里主要简述常用的Linux系统支持的文件系统类型;

        ext系列:ext2,ext3,ext4

        xfs

        btrfs

        reiserfs

        光盘:iso9660

     上面除了ext2不支持journal日志功能,其他都持续日志功能,同时支持日志的方式也有所不同,这些方式分别有自己特性,不过总的区别是文件安全和性能之间的取舍;


VFS

    Linux系统能够支持众多的文件系统并存是因为Linux采用了虚拟文件系统(VFS)

    VFS工作原理:

    磁盘属于硬件,文件系统是Linux内核kernel的功能,能够真正操作硬盘(硬件)是Linux内核,硬件功能由系统调用systemcall提供,文件操作有open(),read(),write(),close(),create(),delete(),每个文件系统对文件的组织管理是不同的,说明调用方式也有所不同,也就是说管理文件系统的程序要想实现对不同文件系统中的文件操作,必须要把对所有文件系统的操作方式写到程序中,这就势必造成程序显得十分臃肿,为了解决这种现象,Linux

内核通过VFS来磨合多种差异,因为只要让VFS知道对每个文件系统的文件操作方式就行,以一个统一的接口提供给上层跟文件管理操作相关的程序,这就是Linux能够支持众多文件系统的原因;

     查看当前内核支持的文件系统:

       cat /proc/filesystems

[root@xia7 ~]# cat /proc/filesystems 
nodevsysfs
nodevrootfs
nodevbdev
nodevproc
nodevcgroup
nodevcpuset
nodevtmpfs
nodevdevtmpfs
nodevdebugfs
nodevsecurityfs
nodevsockfs
nodevpipefs
nodevanon_inodefs
nodevconfigfs
nodevdevpts
nodevramfs
nodevhugetlbfs
nodevautofs
nodevpstore
nodevmqueue
xfs
nodevrpc_pipefs
nodevnfsd
ext3
ext2
ext4


   

创建文件系统:

      mkfs命令工具:

      语法

         mkfs.filesystem_type /dev/device 

         mkfs [option] /dev/device

      常用选项:

         -t:指定文件系统类型

         -L:指定LABEL,卷标

         -i:inode

         -N:创建多少个inode

         -m:预留空间百分比,默认%5,留个系统管理员可操作空间;

   

     mke2fs:创建ext系列文件系统命令工具:

     语法格式:

          mke2fs [option]…/dev/device

     常用选项:

         -j:创建ext3相当于-t ext3 

         -t:创建ext文件系统类型

         -L:LABEL

         -m:预留空间百分比,默认%5,留个系统管理员可操作空间;

         -b:指定block的大小,1024,2048,4096

 

   查看分区文件系统信息:

       blkid命令:

       语法格式:

    blkid [option] /dev/device

[root@xia7 ~]# blkid 
/dev/sda1: UUID="385fe9f8-1da7-427c-8796-a43a39ea3908" TYPE="xfs" 
/dev/sda2: UUID="0af6d0c7-d33b-4807-85c1-eb43f2abd6a0" TYPE="xfs" 
/dev/sda3: UUID="8c33aaa4-511b-443d-b6f8-ef18fc432f48" TYPE="xfs" 
/dev/sda5: UUID="6cfe3bb8-08ff-450a-957e-dba4ba41ab09" TYPE="swap" 
/dev/sdb1: UUID="b5feec83-8838-4be8-9dbd-a7e63de2c699" TYPE="ext4" 
/dev/sdb2: UUID="aee25a1d-1e43-4b33-9a88-625e7d8a2bf6" TYPE="ext4" 
/dev/sdb3: UUID="60134f39-d392-4f35-a9ef-1eb63db73b0c" TYPE="ext4" 
/dev/sdd1: UUID="tKcKfd-l4zR-Z930-hyKP-szq8-eLae-usPI4l" TYPE="LVM2_member" 
/dev/sr0: UUID="2015-12-09-22-36-30-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/myvg/mylv: UUID="ec682d89-d8dc-4f96-8d59-ba30f1b8a6f6" TYPE="ext4"

       e2label命令:管理ext系列文件系统卷标命令

       语法格式:

           e2label [option] /dev/device

[root@xia7 ~]# e2label /dev/sdb3 mydate1
[root@xia7 ~]# e2label /dev/sdb3
mydate1
[root@xia7 ~]#

       tune2fs命令:调整ext系列文件系统属性命令

       语法格式:

           tune2fs [option]… /dev/device

       常用选项:

            -o:acl

           -o:^acl

           -L:LABEL

           -l:查看设备详细属性

[root@xia7 ~]# tune2fs -o acl /dev/sdb3
tune2fs 1.42.9 (28-Dec-2013)
[root@xia7 ~]# tune2fs -l /dev/sdb3
tune2fs 1.42.9 (28-Dec-2013)
Filesystem volume name:   mydate1
Last mounted on:          <not available>
Filesystem UUID:          60134f39-d392-4f35-a9ef-1eb63db73b0c
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

       

       findfs :根据分区的UUID和LABEL查分区

       findfs [option] LABEL=

       findfs [option] UUID=

[root@xia7 ~]# findfs LABEL=mydate1
/dev/sdb3

       uuidgen 生成UUID命令

[root@xia7 ~]# uuidgen 
4dee18b8-d127-4210-9173-7e8dd02c2e3e

       dumpe2fs:查看ext系列文件系统详细信息 

       语法格式:

            dumpe2fs [option] /dev/device


文件系统修复工具:

       fsck:修复文件系统命令:

       语法格式:

            fsck.filesystem_type /dev/device

            fsck [option] /dev/device

       常用选项:

           -r:交互式修复

           -a:自动修复

           -t:指定文件系统类型

[root@xia7 ~]# fsck.ext4 /dev/sdb2
e2fsck 1.42.9 (28-Dec-2013)
mydatedb: clean, 11/655360 files, 83137/2621440 blocks
[root@xia7 ~]#

        e2fsck:修复ext系列文件系统命令:

         语法格式:

         e2fsck option [device]

         常用选项:

            -p:查看文件系统是否正常

            -f:强制检查

            -y:自动修复

         

文件系统挂载mount

    linux的其他分区文件系统要想使用必须关联至rootfs根文件系统目录下,作为其他分区文件系统的访问入口,关联的目录称为挂载点,关联过程称为挂载,需要使用的命令工具是mount,关机重启时会失效,要想永久有效,需要写入到配置文件/etc/fstab;

    mount:挂载命令:

    语法格式

          mount [option][-o[option]…] 挂载设备 挂载点(目录)

    挂载设备

         设备名

         UUID="UUID"

          LABEL="label"

    挂载点

        注意挂载目录必须事先存在,同时确认挂载目录中没有其他文件,否则挂载成功会隐藏文件

    常用选项:

        -a:自动挂载/etc/fstab文件中的配置

        -n:挂载成功后不把配置信息写入/etc/mtab文件中;

        -t:指定挂载设备类型

        -r:只读挂载

        -w:读写挂载

        -o:这个选项有很多其他子命令,列出常用选项

             remount:重新挂载

             ro:只读挂载

             rw:读写挂载

             sync/nosync:磁盘写入数据方式,同步还是异步;

             suid/nosuid:是否启用suid、sgid特殊权限位;

             –bind:简写-B,可以挂载目录

/etc/fstab配置文件语法格式

fstab.png

   

 

 

     

   

   

原创文章,作者:xiashixiang,如若转载,请注明出处:http://www.178linux.com/42599

(1)
xiashixiangxiashixiang
上一篇 2016-09-02 08:48
下一篇 2016-09-02 08:48

相关推荐

  • 正则表达式—grep的用法详解

    grep与sed、awk共称为文字处理三剑客,支持正则表达式语句,具体用法如下: grep [options] PATTERN [file]     #常用选项:     –color=auto  #对匹配到的文本着色显示 &n…

    Linux干货 2016-07-04
  • 计算机组成及Linux初识

    拼一载春秋,搏一生无悔 1. 计算机简介 2. Linux发行版简介 3. Linux哲学思想简介 4. Linux系统上获取命令帮助 5. Linux「12」个基础命令简介 6. Linux发行版基础目录及功能简介 1.计算机简介 电子计算机(英语:computer),亦称电脑,是一种利用「电子学…

    Linux干货 2016-10-27
  • 马哥教育网络班19期+第七周课程练习

    1、创建一个10G分区,并格式为ext4文件系统;   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;         mke2fs -b 2048 -m 2 -L 'MYDATA' -o defau…

    Linux干货 2016-06-21
  • 揭开链接文件的面纱——从根本上剖析硬链接与软链接异同

    在linux的学习过程中,链接文件的学习让不少人头疼,很多同学往往分不清什么是硬链接,什么是软链接,对于两者的概念和区别常常容易混淆、搞不清楚。今天我们就从原理、从根本上为大家辨析一些两者之间的区别,相信大家在看完这篇文章之后对链接文件会有一个清晰正确的认识。 1、在实现原理上不同 硬链接,涉及到文件的底层模式,因此被称为硬链接文件。硬链接文件只是一个指针指…

    Linux干货 2016-10-20
  • tar ,cpio打包解压. shell脚本for,while,until循环. rpm包管理,循环的特殊用法. select循环菜单,函数function,rpm包查询,yum

    tar  tar -cf 路径+文件名字后续.tar  +路径 创建归档压缩 tar cf /testdir/etc.tar /etc/ tar cvf 可以查看解压过程 tar tvf 预览作用 tar xvf 解压文件  tar zcvf /testdir/etc2.tar.gz /etc/ 解压再压缩到指定路径,文件格式 …

    Linux干货 2016-08-21
  • 第五次作业

    1、当用户xiaoming 对/testdir  目录无执行权限时,意味着无法做哪些操作?   由于/testdir为目录,意味着xiaoming用户对此目录至少不能用cd命令跳转进入目录内,但是可以用ls -l命令查看此目录下的文件列表详细信息 2、当用户xiaoqiang 对/testdir  目录无读权限时,意味…

    Linux干货 2016-08-07