1、描述GPT是什么,应该怎么使用。

在说GPT分区之前,先说一下MBR分区。

MBR分区是一种传统的分区机制,它适用于X86架构的32位和64位操作系统,位于磁盘的0号扇区(1扇区等于512字节)。MBR扇区分为以下四个部分:446bytes:引导代码,负责引导操作系统的程序。占据446字节64bytes:分区表,每16bytes标识一个分区,一共只能有4个分区4主分区3主1扩展n逻辑分区2bytes: MBR区域的有效性标识;55AA为有效。也是分区表的结束标志MBR的缺点:只能有4个主分区,并且只能处理不超过2T容量的磁盘。

GPT分区:

全局唯一标识分区表(GUID Partition Table,缩写:GPT)是另一种分区机制,针对MBR分区,它具有以下优点:突破MBR的4个分区,最多可以支持128个分区单个分区的容量几乎没有限制,最多支持1EB的容量
对于GPT来说,已经模糊了主分区,扩展分区以及逻辑分区的概念,很好的解决了在MBR中对分区数量的限制。接下来使用parted命令来创建GPT分区表吧。

我用的是CentOS7系统,所以针对CentOS系统进行演示。首先我加入了一块儿新的20G容量的硬盘,这个硬盘可以用来做MBR分区,也可以做GPT分区,这里只做GPT分区。

parted命令:
用法:parted [选项]… [设备 [命令 [参数]…]…]
将带有“参数”的命令应用于“设备”。如果没有给出“命令”,则以交互模式运行.
常用选项:
-h, –help 显示此求助信息
-l, –list 列出所有设别的分区信息
-i, –interactive 在必要时,提示用户
-s, –script 从不提示用户
-v, –version 显示版本

输入parted命令

[root@bogon ~]# parted
GNU Parted 3.1
使用 /dev/sda         
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help

输入help查看帮助信息,
简单说下几种常用子选项:

  help [COMMAND]                           帮助信息mklabel,mktable LABEL-TYPE               2个命令都是创建分区标签,并建立新的分区表mkpart PART-TYPE [FS-TYPE] START END     创建一个新的分区,后面参数为分区类型[文件系统] 开始位置  结束位置print [devices|free|list,all|NUMBER]     显示分区表或分区quit                                     退出rescue START END                         在开始和结束附近修复丢失的分区rm NUMBER                                删除指定编号的分区select DEVICE                            选择需要制作的设备set NUMBER FLAG STATE                    对指定编号 NUMBER 的分区设置分区标记 FLAG。对于 PC 常用的 msdos 分区表来说,分区标记 FLAG 可有如下值:”boot”(引导), “hidden”(隐藏), “raid”(软RAID磁盘阵), “lvm”(逻辑卷), “lba” (LBA,Logic Block Addressing模式)。 状态STATE 的取值是:on 或 offunit UNIT                                设置默认输出时表示磁盘大小的单位为 UNIT,UNIT 的常用取值可以为:‘MB’、‘GB’、‘%’(占整个磁盘设备的百分之多少)、‘compact’(人类易读方式,类似于 df 命令中 -h 参数的用)、‘s’(扇区)、‘cyl’ (柱面)、‘chs’ (柱面cylinders:磁头 heads:扇区 sectors 的地址)version                                  显示版本的详细信息
(parted)                                                                  

输入print命令

(parted) print                                                            
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 129GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos   #此处为分区表,msdos为MBR分区表

如果想让MBR分区转换成GPT分区,或者想让GPT分区转换成MBR分区,使用parted命令可以转换。但是千万不要拿sda主分区来进行转换,因为分区表格式不能转换。如果使用转换成功后,分区表会变成GPT,但是系统文件会损坏,所以千万不要进行如此操作。所以我们拿一个新增的硬盘sdc来进行分区

输入parted /dev/sdc 来创建分区

[root@bogon ~]# parted /dev/sdc
GNU Parted 3.1
使用 /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print                                                            
错误: /dev/sdc: unrecognised disk label
Model: VMware, VMware Virtual S (scsi)                                    
Disk /dev/sdc: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags: #由于是新硬盘,没有设置标签等,所以识别不出来标签,不用理会

输入mktable,选择分区表的格式,因为我们使用的是GPT分区表,所以输入gpt

(parted) mktable gpt

接下来创建新的分区,输入mkpart来使用交互式的方式进行分区,如下:

(parted) mkpart
分区名称?  []? frist            #分区表名称,因为GPT分区,模糊了扩展分区,逻辑分区,主分区的概念,所以可以随便填写
文件系统类型?  [ext2]? ext4      #文件系统类型,这里使用的ext4的类型                                       
起始点? 0                       #起始位置                                      
结束点? 2000                    #结束位置,如果设置第一个分区的大小为2000M,则开始为0,结束设置成2000即可
警告: The resulting partition is not properly aligned for best performance.
#警告信息,这个意思是我们磁盘的存储没有达到最好的对齐方式,所以我们输入0的话就会出现这个警告,我们取消然后从1开始就可以。
忽略/Ignore/放弃/Cancel? cancel
(parted) mkpart
分区名称?  []? first
文件系统类型?  [ext2]? ext4                                              
起始点? 1                                                                
结束点? 2000                                                             
(parted) 

第一个分区已经建成,输入print显示出信息

(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: Number  Start   End     Size    File system  Name   标志1      1049kB  2000MB  1999MB               first

第二种非交互式方式建立分区

(parted) mkpart second 2000 4000
(parted) quit                                                             
信息: You may need to update /etc/fstab.

第二个分区已经建立好,使用print显示出已建好的分区

(parted) print                                                            
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: Number  Start   End     Size    File system  Name    标志1      1049kB  2000MB  1999MB               first2      2000MB  4000MB  2001MB               second(parted) quit

两个分区都已建立完毕,输入quit就是保存退出

2、创建一个10G的分区,并格式化为ext4文件系统。要求:
(1)block大小为2048,预留空间20%,卷标为MYDATA,
(2) 挂载至/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳。
(3)可开机自动挂载。

创建MBR分区使用fdisk命令即可,此处演示为Centos6系统:
fdisk命令使用:

1、查看磁盘的分区信息:
fdisk -l [-u] [device…]:列出指定磁盘设备上的分区情况;

以下为示例:

[root@ydong ~]# fdisk -l /dev/sdaDisk /dev/sda: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00099f9eDevice Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         256     2048000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2             256        2805    20480000   82  Linux swap / Solaris
/dev/sda3            2805        5355    20480000   83  Linux
/dev/sda4            5355       15666    82820096    5  Extended
/dev/sda5            5355        7905    20480000   83  Linux

可以看到,目前系统上3个主分区,1个扩展分区,建议使用centos6或centos7系统,按照3个主分区,1个扩展分区,n个逻辑分区来划分。

2.管理磁盘分区
fdisk device

fdisk提供了一个交互式接口来管理分区,它有许多子命令,分别用于不同的管理功能;所有的操作均在内存中完成,没有直接同步到磁盘,直到使用w命令保存才会生效
常用命令:
n:创建新分区
d:删除已有分区
t:修改分区类型
l:查看所有已知id
w:保存并退出
q:不保存退出
m:查看帮助信息
p:显示现有分区信息

接下来使用此命令来创建分区:

[root@ydong ~]# fdisk /dev/sdaWARNING: DOS-compatible mode is deprecated. It's strongly recommended toswitch off the mode (command 'c') and change display units tosectors (command 'u').Command (m for help): n

输入n来创建新分区:

Command (m for help): n
First cylinder (7905-15666, default 7905): 7906         
Last cylinder, +cylinders or +size{K,M,G} (7906-15666, default 15666): +10G

First cylinder:起始扇区,设置为7905靠后的扇区
Last cylinder:结束扇区,可以使用扇区值,也可以使用+K|M|G,这里使用的后者。
这样分区已经建立完成,使用wq进行保存退出。

Command (m for help): wq
The partition table has been altered!Calling ioctl() to re-read partition table.WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

注意:在已经分区并且已经挂载其中某个分区的磁盘设备上创建的新分区,内核可能在创建完成后无法直接识别;
查看分区设备:cat /proc/partitions
由于此前建过sda6的分区,所以使用此命令还可以看到sda6的盘,我们在新建一个分区sda7。


Command (m for help): n
First cylinder (7905-15666, default 7905): 9212
Last cylinder, +cylinders or +size{K,M,G} (9212-15666, default 15666): +10G    Command (m for help): wq
The partition table has been altered!Calling ioctl() to re-read partition table.WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@ydong ~]# cat /proc/partitions 
major minor  #blocks  name8        0  125829120 sda8        1    2048000 sda18        2   20480000 sda28        3   20480000 sda38        4          1 sda48        5   20480000 sda58        6   10490445 sda6

发现新建完成之后并未发现sda7分区,这就是因为内核无法直接识别新建分区,得使用partx命令来让内核强制重新读取一下硬盘。

[root@ydong ~]# partx -a /dev/sda
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2
BLKPG: Device or resource busy
error adding partition 3
BLKPG: Device or resource busy
error adding partition 4
BLKPG: Device or resource busy
error adding partition 5
BLKPG: Device or resource busy
error adding partition 6[root@ydong ~]# partx -a /dev/sda
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2
BLKPG: Device or resource busy
error adding partition 3
BLKPG: Device or resource busy
error adding partition 4
BLKPG: Device or resource busy
error adding partition 5
BLKPG: Device or resource busy
error adding partition 6
BLKPG: Device or resource busy
error adding partition 7#第一次内核强制执行时,并未发现sda7,所以我们得多执行几遍,直到sda7的出现才行。

挂载之前,我们需要先格式化文件系统,如果不创建文件系统的话,则会提示你必须指定文件系统。使用mke2fs文件系统来进行创建格式化文件系统:
mke2fs命令:
mke2fs [OPTIONS] device
-t {ext2|ext3|ext4}:指明要创建的文件系统类型
-b{1024|2048|4096}:用于指明文件系统的块大小
-L LABEL:指定卷标
-j:创建有日志功能的文件系统etx3
-i #:指明每多少字节创建一个inode号
-N #:直接指明要给此文件系统创建的inode的数量
-m #: 指定预留的空间,是一个百分比数值。不需要加号
-O【^】FEATURE:以指定的特性创建目标文件系统; 加^字符,关闭此特性,不加,开启

按照要求我们创建(1)block大小为2048,预留空间20%,卷标为MYDATA,


[root@ydong ~]# mke2fs -L MYDATA -b2048 -m 20 -t ext4 /dev/sda6
mke2fs 1.41.12 (17-May-2010)
文件系统标签=MYDATA         #卷标
操作系统:Linux
块大小=2048 (log=1)            #块大小
分块大小=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
657408 inodes, 5245222 blocks
1049044 blocks (20.00%) reserved for the super user   #预留空间显示的地方
第一个数据块=0
Maximum filesystem blocks=543162368
321 block groups
16384 blocks per group, 16384 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104, 2048000, 3981312正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成This filesystem will be automatically checked every 35 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
.

创建完文件系统后,就可以进行挂载操作啦。使用mount命令来进行挂载以及查看
按要求 挂载至/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳。

[root@ydong ~]# mount -o noexec,noatime /dev/sda6 /tmp/mydata
[root@ydong ~]# mount
/dev/sda3 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/sda5 on /home type xfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sr0 on /media/CentOS_6.8_Final type iso9660 (ro,nosuid,nodev,uhelper=udisks,uid=500,gid=500,iocharset=utf8,mode=0400,dmode=0500)
/dev/sda6 on /tmp/mydata type ext4 (rw,noexec,noatime)

(3)可开机自动挂载
设定除根文件系统以外的其它文件系统能够开机自动挂载:/etc/fstab文件

每行定义一个要挂载的文件系统及相关属性;6个字段:自左向右1.要挂载的设备:设备文件LABELUUID伪文件系统;如:sysfs, proc ,tmpfs等2、挂载点swap类型设备的挂载点为swap3、文件系统类型;4、挂载选项:defaults:使用默认挂载选项如果要同时指明多个挂载选项,彼此之间以逗号分隔例如defaults,acl,noatime5、转储频率:0:从不备份1:每天备份一次2:每隔一天备份6:自检次序:0:不自检1、首先自检,通常只能是根文件系统可用12、次级自检,,......
[root@ydong ~]# vim /etc/fstab
UUID="7e110d2e-028b-40ca-9caf-616d52f0d44b"  /tmp/mydata  ext4 defaults 0 0

3、创建一个大小为1G的swap分区,并启用。

使用mkswap命令来创建一个交换分区,swapon来开启,swapoff来关闭

[root@ydong ~]# mkswap /dev/sda8
Setting up swapspace version 1, size = 1060252 KiB
no label, UUID=147dcaee-a218-4a62-b896-53c29c426e86
[root@ydong ~]# swapon /dev/sda8     #开启
[root@ydong ~]# swapoff /dev/sda8    #关闭

4、编写脚本计算/etc/passwd文件中第10个用户和第20个用户id号之和。

[root@bogon ~]# vim sum.sh1 #!/bin/bash2 #计算passwd文件中第10个用户和第20个用户的id号之和3 user1_id=$(head -10 /etc/passwd | tail -1 | cut -d':' -f3)4 user2_id=$(head -20 /etc/passwd | tail -1 | cut -d':' -f3)5 #显示两个变量值6 echo "$user1_id"7 echo "$user2_id"8 #计算两个之和9 echo "$[user1_id+user2_id]"[root@bogon ~]# bash sum.sh
11
59
70

5、将当前主机名保存至hostName变量中,主机名如果为空,或者为localhost.localdomain则将设置为www.magedu.com

[root@bogon ~]# vim name.sh1 #!/bin/bash2 #如果主机名字为空,或者为localhost.localdomain,则改名字为mageedu.com3 hostName=$(hostname)4 if [[ -z "$hostName" ]]||[[ $hostName=="localhost" ]];then5 hostname mageedu.com6 fi

6、编写脚本,通过命令行参数传入一个用户名,判断id号是偶数还是奇数。

 1 #!/bin/base2 #假如对方给的用户不存在的话退出3 user=$(grep "$1" /etc/passwd)4 if [ -z "$user" ]; then5         echo "no ueser"6         exit 27 fi8 #要求只给你一个用户的参数9 if [ $# -ge 2 ]; then10         echo "just one username"11         exit 1;12 fi13 #给$1赋值uid数值14 num1=$(id -u $1)15 #将求余的值赋值给num216 num2=$[$num1%2]17 #显示出输入用户名的id号18 echo "$1's id is $num1"19 #判断一个用户名的id号是否为奇数或者偶数20 if [[ $num2 -eq 0 ]]; then21         echo "$1's id is odd number"22 else

7、lvm基本应用以及扩展缩减实现。
LVM是基于物理卷,卷组层上实现对磁盘分区进行动态管理的一种机制。其创建过程式:
创建磁盘分区(PV)→创建卷组(VG)→创建逻辑卷(LV)
PV(Physical Volume):物理卷,也就是磁盘分区或者硬盘
PE(Physical Extend):物理区域,PV中可用于分配的最小存储区域,默认为4M。只有当创建了VG时,才会有PE的值,创建PV时,PV当中并没有PE。
VG(Volume Group):卷组,由一个PV或者多个PV组成。也可以理解为由多个PE组成。
LV(Logical Volume):逻辑卷,建立在VG之上,也相当于一个磁盘分区,可以对其进行格式化文件系统并挂载,最重要的是可以扩展空间和缩减空间。实现动态管理。

**存储地方:dev/mapper/VG_NAME-LV_NAME 或 dev/VG_NAME/LG_NAME **

一、创建分区:

[root@localhost ~]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。命令(输入 m 获取帮助):n
All primary partitions are in use
添加逻辑分区 6
起始 扇区 (131155968-440401919,默认为 131155968):
将使用默认值 131155968
Last 扇区, +扇区 or +size{K,M,G} (131155968-440401919,默认为 440401919):+15G   
分区 6 已设置为 Linux 类型,大小设为 15 GiB命令(输入 m 获取帮助):n
All primary partitions are in use
添加逻辑分区 7
起始 扇区 (162615296-440401919,默认为 162615296):
将使用默认值 162615296
Last 扇区, +扇区 or +size{K,M,G} (162615296-440401919,默认为 440401919):+5G
分区 7 已设置为 Linux 类型,大小设为 5 GiB命令(输入 m 获取帮助):w
The partition table has been altered!Calling ioctl() to re-read partition table.WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。
[root@localhost ~]# cat /proc/partitions 
major minor  #blocks  name2        0          4 fd08        0  220200960 sda8        1     512000 sda18        2   52428800 sda28        3    2113536 sda38        4          1 sda48        5   10520576 sda511        0    6896640 sr0
[root@localhost ~]# partx -a /dev/sda
partx: /dev/sda: error adding partitions 1-5
[root@localhost ~]# partx -a /dev/sda
partx: /dev/sda: error adding partitions 1-7
[root@localhost ~]# cat /proc/partitions 
major minor  #blocks  name2        0          4 fd08        0  220200960 sda8        1     512000 sda18        2   52428800 sda28        3    2113536 sda38        4          1 sda48        5   10520576 sda58        6   15728640 sda68        7    5242880 sda711        0    6896640 sr0

二、创建PV:
PV管理工具的几种常用命令:
pvs:简要pv信息显示
pvdisplay:显示pv的详细信息
pvcreate /dev/DEVICE: 创建pv
pvremove /dev/DEVICE:移除pv

[root@localhost ~]# pvcreate /dev/sda6Physical volume "/dev/sda6" successfully created
[root@localhost ~]# pvcreate /dev/sda7Physical volume "/dev/sda7" successfully created
[root@localhost ~]# pvdisplay"/dev/sda6" is a new physical volume of "15.00 GiB"--- NEW Physical volume ---PV Name               /dev/sda6VG Name               PV Size               15.00 GiBAllocatable           NOPE Size               0   Total PE              0Free PE               0Allocated PE          0PV UUID               uAQdID-svD7-ZPzx-6qVE-nkrW-rZg1-be0pTD"/dev/sda7" is a new physical volume of "5.00 GiB"--- NEW Physical volume ---PV Name               /dev/sda7VG Name               PV Size               5.00 GiBAllocatable           NOPE Size               0              #由于目前还未创建VG卷组,所以此处的PE大小为0Total PE              0Free PE               0Allocated PE          0PV UUID               7CV7J1-epZ1-IgTM-tCg0-OrjD-2k7R-K93gQl

三、创建卷组
VG管理工具常用命令:

vgs:简要显示VG卷组信息
vgdisplay:显示VG卷组信息
vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…] :创建含有PE大小、卷组名、 一个或多个pv的VG卷组
vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…] 扩展
vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…] 缩减,后面的参数为卷组名,和要去除的PV
先做pvmove,将pe转移至其它pv上,
vgremove
移除VG卷组

[root@localhost ~]# vgcreate -s 16M myvg /dev/sda6 /dev/sda7Volume group "myvg" successfully created[root@localhost ~]# vgdisplay--- Volume group ---VG Name               myvgSystem ID             Format                lvm2Metadata Areas        2Metadata Sequence No  1VG Access             read/writeVG Status             resizableMAX LV                0Cur LV                0Open LV               0Max PV                0Cur PV                2Act PV                2VG Size               19.97 GiBPE Size               16.00 MiB   Total PE              1278Alloc PE / Size       0 / 0   Free  PE / Size       1278 / 19.97 GiBVG UUID               cuIljC-anwW-VncF-vxfB-3Rdu-fUWP-5gpMqz

三、创建LV逻辑卷:
lv管理工具:
lvs:简要显示lv逻辑卷的信息
lvdisplay:显示lv逻辑卷的详细信息
lvcreate -L #[mMgGtT] -n NAME VolumeGroup:创建设定存储大小、名字的逻辑卷
lvremove /dev/VG_NAME/LV_NAME:移除逻辑卷

[root@localhost ~]# lvcreate -L 5G -n testlv myvgLogical volume "testlv" created
[root@localhost ~]# ls /dev/mapper
control  myvg-testlv    
[root@localhost ~]# ls /dev/myvg/
testlv
[root@localhost ~]# lvdisplay--- Logical volume ---LV Path                /dev/myvg/testlvLV Name                testlvVG Name                myvgLV UUID                OYjlLR-GCMD-UCLt-FA1b-1e2z-BuEW-RpxiUHLV Write Access        read/writeLV Creation host, time localhost.localdomain, 2019-03-09 06:46:48 +0800LV Status              available# open                 0LV Size                5.00 GiBCurrent LE             320Segments               1Allocation             inheritRead ahead sectors     auto- currently set to     8192Block device           253:0

四、格式化逻辑卷文件系统并挂载

[root@localhost ~]# mke2fs -t ext4 -b 1024 /dev/myvg/testlv
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 5242880 blocks
262144 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=38797312
640 block groups
8192 blocks per group, 8192 fragments per group
512 inodes per group
Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409, 663553, 1024001, 1990657, 2809857, 5120001Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成   
[root@localhost ~]# mount /dev/myvg/testlv /mnt/
[root@localhost ~]# mount
/dev/mapper/myvg-testlv on /mnt type ext4 (rw,relatime,seclabel,data=ordered)

五、扩展tsetlv
1、 ~# lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
2、~# resize2fs /dev/VG_NAME/LV_NAME
使用扩展命令时,需要在扩展完空间后,重新resize一下。即可刷新存储空间。

[root@localhost ~]# lvextend -L 7G /dev/myvg/testlv Extending logical volume testlv to 7.00 GiBLogical volume testlv successfully resized
[root@localhost ~]# resize2fs /dev/myvg/testlv
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/myvg/testlv is mounted on /mnt; on-line resizing required
old_desc_blocks = 40, new_desc_blocks = 56
The filesystem on /dev/myvg/testlv is now 7340032 blocks long.[root@localhost ~]# lvsLV     VG   Attr       LSize Pool Origin Data%  Move Log Cpy%Sync Converttestlv myvg -wi-ao---- 7.00g 

六、缩减lv:
步骤

# umount /dev/VG_NAME/LV_NAME :撤销挂载
# e2fsck -f /dev/VG_NAME/LV_NAME 做文件系统的强制检测与修复
# resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]:重新设置文件系统大小,缩减的时候,已有文件的存储空间必须小于LV缩减后的存储空间。 否则,缩减无意义。
# lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME:缩减#容量的lv
# mount

 [root@localhost ~]# umount /dev/myvg/testlv 
[root@localhost ~]# e2fsck -f /dev/myvg/testlv 
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/myvg/testlv: 13/458752 files (0.0% non-contiguous), 153733/7340032 blocks
[root@localhost ~]# resize2fs /dev/myvg/testlv 3G 
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/myvg/testlv to 3145728 (1k) blocks.
The filesystem on /dev/myvg/testlv is now 3145728 blocks long.[root@localhost ~]# lvreduce -L 3G /dev/myvg/testlvWARNING: Reducing active logical volume to 3.00 GiBTHIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce testlv? [y/n]: yReducing logical volume testlv to 3.00 GiBLogical volume testlv successfully resized[root@localhost ~]# lvsLV     VG   Attr       LSize Pool Origin Data%  Move Log Cpy%Sync Converttestlv myvg -wi-a----- 3.00g            

七、快照:
快照:snapshot
lvcreate -L #[mMgGtT] -p r -s -n snapshot_lv_name original_lv_name

创建含有大小、权限、名字的快照卷。快照卷也是一个逻辑卷,当原文件产生变化时,则原文件复制一份到快照卷中,当原文件未发生变化时,快照卷则利用指针指向原始文件,并不复制。

[root@localhost ~]# lvcreate -s -n mysnap -p r -L 512M /dev/myvg/testlvLogical volume "mysnap" created
[root@localhost ~]# lvsLV     VG   Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convertmysnap myvg sri-a-s--- 512.00m      testlv   0.00                          testlv myvg owi-aos---   3.00g            [root@localhost ~]# mount /dev/myvg/mysnap /tmp/backup
#复制test文件到/mnt目录中
[root@localhost ~]# cp test.txt /mnt
[root@localhost ~]# ls /mnt
functions  grub2.cfg  issue  lost+found  test.txt
#当复制完成后发现并未出现test文件,当一个新文件在创建快照后添加进来,则不会在快照中出现
[root@localhost ~]# ls /tmp/backup
functions  grub2.cfg  issue  lost+found
#在/mnt的grub2.cfg原文件末尾添加一行newline,快照卷中的grub2.cfg则不会出现
[root@localhost ~]# vim /mnt/grub2.cfg 
fi
#new line
### END /etc/grub.d/41_custom ###[root@localhost ~]# vim /tmp/backup/grub2.cfg 
fi
### END /etc/grub.d/41_custom ###