zoukankan      html  css  js  c++  java
  • linux硬盘的分区、格式化、挂载以及LVM

    linux硬盘的分区、格式化、挂载以及LVM

     

      多块硬盘的组合:

      硬盘分两种:ide和scsi。

    ide硬盘:

    /dev/hda  第一块IDE硬盘

    /dev/hdb  第二块IDE硬盘

    ...

    /dev/hdn  第N块IDE硬盘

    scsi硬盘:

    /dev/sda  第一块SCSI硬盘

    /dev/sdb  第二块SCSI硬盘

    ...

    /dev/sdn  第N块SCSI硬盘

      硬盘分区:

    /dev/hda1  第一个分区

    /dev/hda2  第二个分区

    ...

    /dev/hdan  第N个分区

      分区的三种情况:

      一、主分区:一块硬盘只能分四个主分区;

      二、扩展分区:将一个主分区拿出来做扩展分区;

      三、逻辑分区:在一个扩展分区里再分的分区。

      分区表:用来记录有几个分区。在MBR(主引导记录,位于一个磁盘的0柱面,0扇区,0磁道)就是一个磁盘最开始的地方64byte个地方,记录一个分区需要使用16个字节。

      光盘外设:

      /dev/cdrom

      IDE:

      /dev/hd1

      /dev/hd2

      SCSI:

      /dev/scd1

      /dev/scd2

      软盘:

      /dev/fd1

      /dev/fd2

      硬盘:

      /dev/hda  /dev/hda1

      /dev/sda  /dev/sda1

      U盘:(默认为scsi硬盘)

      /dev/sdx   (abcdef)     

      /dev/sda

      /dev/sdb...

      分区方法:

      fdisk /dev/sdb:进入后按命令提示操作进行分区(p:打印分区表,n:新建分区->p/e->+10G分配分区大小)。

      格式化:

      分区后,只有格式化了才能使用。

      windows系统下,文件系统是FAT32或者NTFS。但是在linux下是ext(后续升级到ext2,ext3)。

      相关命令:使用fdisk -l可以查看到系统中连接的外部设备,比如有硬盘,U盘。

           使用df -l可以查看已经挂载上的分区。

      注:fdisk -T(T要大写)比fdisk多一个显示参数:挂载点。

      Disk /dev/sdb doesn't contain a valid partition table:表示第二块SCSI硬盘没有包含一个有效的分区表。

      格式化方法:mkfs -t ext4 /dev/sdb1

      挂载:

      挂载方法:mount /dev/sdb1 /mnt/one(将/dev/sdb1挂载到/mnt/one目录上,相当于访问/mnt/one实际上在访问/dev/sdb1)。

      注:在windows下接入外设(如插入U盘)就能自动识别,退出的时候,只要点击右下角的删除硬件即可。但是linux系统下,接入外设必须手动挂载。

    LVM:

    一、概念:

          LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现。LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。

          与传统的磁盘与分区相比,LVM为计算机提供了更高层次的磁盘存储。它使系统管理员可以更方便的为应用与用户分配存储空间。在LVM管理下的存储卷可以按需要随时改变大小与移除(可能需对文件系统工具进行升级)。LVM也允许按用户组对存储卷进行管理,允许管理员用更直观的名称(如"sales'、 'development')代替物理磁盘名(如'sda'、'sdb')来标识存储卷。

    如图所示LVM模型:


          由四个磁盘分区可以组成一个很大的空间,然后在这些空间上划分一些逻辑分区,当一个逻辑分区的空间不够用的时候,可以从剩余空间上划分一些空间给空间不够用的分区使用。

    二、LVM基本术语
    前面谈到,LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。首先我们讨论以下几个LVM术语:

    物理存储介质(The physical media):这里指系统的存储设备:硬盘,如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元。
    物理卷(physical volume):物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
    卷组(Volume Group):LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
    逻辑卷(logical volume):LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。
    PE(physical extent):每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
    LE(logical extent):逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

    简单来说就是:
    PV:是物理的磁盘分区
    VG:LVM中的物理的磁盘分区,也就是PV,必须加入VG,可以将VG理解为一个仓库或者是几个大的硬盘。
    LV:也就是从VG中划分的逻辑分区

    如下图所示PV、VG、LV三者关系:

    三、安装LVM
    首先确定系统中是否安装了lvm工具:

    [root@localhost /]# rpm -qa|grep lvm
    lvm2-2.02.87-6.el6.x86_64
    lvm2-libs-2.02.87-6.el6.x86_64

    如果命令结果输入类似于上例,那么说明系统已经安装了LVM管理工具;如果命令没有输出则说明没有安装LVM管理工具,则需要从网络下载或者从光盘装LVM rpm工具包。
    四、创建和管理LVM
           要创建一个LVM系统,一般需要经过以下步骤: 
    1、 创建分区

    使用分区工具(如:fdisk等)创建LVM分区,方法和创建其他一般分区的方式是一样的,区别仅仅是LVM的分区类型为8e。如下列图所示:

    clip_image006[8]

    查看磁盘分区表

    clip_image008[6]

    使用fdisk创建分区,根据设备文件的绝对路径(/dev/hda)进入分区管理

    clip_image010[6]

    clip_image012[6]

    一定要指定分区的格式为8e,这是LVM的分区格式

    2、 创建PV

    clip_image014[6]

    3、 创建VG

    clip_image016[6]

    clip_image018[6]

    创建完成VG之后,才能从VG中划分一个LV。

    4、 创建LV

    clip_image020[6]

    创建了一个名字为lvData,容量大小是100M的分区,其中:-L:指定LV的大小 -n:指定LV的名。Vo1Group00:表示从这个VG中划分LV;

    5、LV格式化及挂载

    下一步需要对LV进行格式化(使用mksf进行格式化操作),然后LV才能存储资料

    clip_image022[6]

    将格式化后的LV分区挂载到指定的目录下,就可以像普通目录一样存储数据了

    clip_image024[6]

    挂载之后,可以看到此LV的容量。

    如果要在系统启动的时候启动LV,最好是将lvData写入fstable 文件中,如下所示:

    clip_image026[6]

    使用Vim编辑器,打开/etc/fstab,在最后一行添加如图中所示,其中/dev/VolGroup00/lvData指定需要挂载的分区LV,/root/test指定要挂载的目录(挂载点),ext3分区文件系统格式,其它使用默认即可

     LVM备注:

    扩容当前分区

    一、首先创建一块新的分区:

    fdisk  /dev/hda

    n

    l        #选择逻辑分区,如果没有,则首先创建扩展分区,然后再添加逻辑分区(硬盘:最多四个分区P-P-P-P或P-P-P-E)

    6        #分区号(从5开始),/dev/hda6

    t      8e   #分区类型8e表示LVM分区

    w        #写入分区表

    partprobe   #重读分区表

    mkfs –t ext3 /dev/hda6 #格式化

    partx /dev/hda #查看当前硬盘的分区表及使用情况

    二、创建PV,扩容VG,LV

    pvcreate /dev/hda6

    vgdisplay #查看当前已经存在的VG信息,以存在VG:VolGroup00为例

    vgextend VolGroup00 /dev/hda6    #扩展VolGroup00

    lvdisplay #查看已经存在的LV信息,以存在LV:LogVol01为例

    lvextend –L +1G /dev/VolGroup00/LogVol01 #扩展LV (扩展后需执行下一条命令resize2fs生效)

    resize2fs /dev/VolGroup00/LogVol01 #执行该重设大小,对于当前正在使用的LogVol01有效

    df –h #查看挂载情况,已经扩容

    LVM操作的相关命令:    

    fdisk -l :查看系统中都认到了那些物理硬盘     
    pvdisplay:查看系统中已经创建好的物理卷     
    pvcreate:创建一个新的物理卷     
    pvremove:删除一个物理卷(也就是从物理卷中删除一个LVM标签)     
    vgdisplay:查看系统中的卷组     
    vgcreate:创建一个新的卷组     
    vgreduce:从卷组中删除一个物理卷(也就是缩小卷组)     
    vgremove:删除一个卷组     
    lvdisplay:查看系统中已经创建好的逻辑卷     
    lvcreate:创建一个新的逻辑卷     
    lvreduce:缩小逻辑卷(也就是从一个逻辑卷中减少一些LE)     
    lvremove:从系统中删除一个逻辑卷     
    mkfs:基于逻辑卷创建一个相应类型的文件系统     
    mkdir -p $mount_piont:创建一个挂载目录     
    创建好的文件系统位于:     /dev/$create_vg_name/$lv_name     
    mount /dev/$create_vg_name/$lv_name $mount_piont:挂载文件系统

    vgscan:读取系统中创建的所有卷组    
    vgchange -a y :激活所有卷组  (开机执行,redhat可在/etc/rc.d/rc.sysinit系统启动初始化脚本里可以找到)    vgchange -a n :关闭所有卷组(提示:必须在umount所有的文件系统后,才能成功执行

    裸设备使用:    
    1.先lvreate    
    2. raw /dev/raw/raw0 /dev/mapper/vgname-lvname    
    3.修改 /etc/sysconfig/rawdevices,添加:           /dev/raw/raw0 /dev/mapper/vgname-lvname     
    4.执行命令; service rawdevices restart,使得/etc/sysconfig/rawdevices文件中的裸设备配置生效     
    5.执行/sbin/schkconfig  rawdevices on 使得系统重启后,裸设备能自动加载     
    6.修改裸设备的属主,使得相应权限的用户对裸设备有读写权限       chown -R owner:group  /dev/raw/raw0     
    7.将修改裸设备属主修改命令加入到系统启动执行脚本/etc/rc.local中,使得系统启动后裸设备的属主保持不变.

    linux挂载原有LVM盘

    范例:

    1、pvs
      [root@localhost yuanbor]# /sbin/pvs 检查是否有重名的VG组
      2、vgrename
      [root@localhost yuanbor]#/sbin/vgrename [VG UUID] /dev/VolGroup01 #将重复的VG组 根据UUID改为 VolGroup01
      [root@localhost yuanbor]# /sbin/pvs #检查 修改结果
      3、lvscan
      [root@localhost sdb3]# /sbin/lvscan #检查 逻辑卷状态
      可以看到新修改的VolGroup01是inactive状态。
      4、vgchange
      [root@localhost sdb3]# /sbin/vgchange -ay /dev/VolGroup01 #激活改名后的VolGroup01
      [root@localhost mnt]# /sbin/lvscan #检查激活结果
      5、mount
      [root@localhost mnt]# mount /dev/VolGroup01/LogVol00 /mnt/sdb3 #挂载逻辑卷 挂载点可以自定义

    注意:1不一定能够显示错误,如果不报错可以使用vgdisplay命令查找 VG UUID
    找到后继续 2

    文章出处:http://www.cnblogs.com/aaron-agu/ 只有毅力和决心才能使人真正具有价值!
  • 相关阅读:
    python 的基础 学习 第六天 基础数据类型的操作方法 字典
    python 的基础 学习 第五天 基础数据类型的操作方法
    python 的基础 学习 第四天 基础数据类型
    ASP.NET MVC 入门8、ModelState与数据验证
    ASP.NET MVC 入门7、Hellper与数据的提交与绑定
    ASP.NET MVC 入门6、TempData
    ASP.NET MVC 入门5、View与ViewData
    ASP.NET MVC 入门4、Controller与Action
    ASP.NET MVC 入门3、Routing
    ASP.NET MVC 入门2、项目的目录结构与核心的DLL
  • 原文地址:https://www.cnblogs.com/aaron-agu/p/6934114.html
Copyright © 2011-2022 走看看