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)
上一篇 2016-09-02 08:48
下一篇 2016-09-02 08:48

相关推荐

  • openssl+http实现https

    openssl详解及实现https OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。 秘钥算法和协议: 对称加密: 加密和解密使用同一个密钥,原始数据分成固定大小块,算法不同 秘钥过多,秘钥分发困难 DES,3DES  AES  Blowfi…

    Linux干货 2016-10-24
  • history          每打开一个终端都会从文件(.bash_history)中加载历史记录           不同终端历史记录不同彼此终端不共享 …

    2017-07-15
  • Linux文本处理三剑客之一grep

            终于又到了一周一篇博客的日子 在这学习已经三周了,慢慢养成了写博客的好习惯,也慢慢的懂得了怎么写博客。这周给我印象最深刻的就是正则表达式,原本打算要写前几天所学的内容,但是昨天学到正则表达式让我有点懵,所以我今天会用一天的时间去给大家详细讲解正则表达式,争取让那些和我一样困解的人能够豁然开朗,也正是因为…

    2017-07-29
  • nmap ncat tcpdump浅析

    nmap 的使用 nmap — 网络探测工具和安全/端口扫描器 Usage:nmap [ <扫描类型> …] [ <选项> ] { <扫描目标说明> } 扫描目标说明 -iL inputfilename (从列表中输入) 从 inputfilename中读取目标说明 [root@localhost&…

    Linux干货 2017-03-15
  • 优云老王(三)谈埋点:人生处处有埋点

    说到埋点,的确是用户最感兴趣的话题之一,优云Web产品在内测阶段便收到了用户的各种反馈,反复问我无码埋点是怎么做的。在此我专门与大家聊聊埋点以及各种实现方案的利弊。 1、埋点的来历 先说下埋点的来历,其实在互联网没流行起来之前,埋点并不是用来分析用户行为的,技术人员为了解决某些问题,就在代码里面加入了些行为逻辑代码,如果用户使用产品的过程中出了问题,就生成一…

    2016-09-19
  • 第五周

      第五周 1 显示/boot/grub/grub.conf中以至少一个空白字符开头的行;      grep "^[[:space:]]\+" /boot/grub/grub.conf 2 显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至…

    Linux干货 2017-01-02