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 或 off
unit 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 first
2 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/sda
Disk /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: 0x00099f9e
Device 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/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (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 name
8 0 125829120 sda
8 1 2048000 sda1
8 2 20480000 sda2
8 3 20480000 sda3
8 4 1 sda4
8 5 20480000 sda5
8 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.要挂载的设备:
设备文件
LABEL
UUID
伪文件系统;如:sysfs, proc ,tmpfs等
2、挂载点
swap类型设备的挂载点为swap
3、文件系统类型;
4、挂载选项:
defaults:使用默认挂载选项
如果要同时指明多个挂载选项,彼此之间以逗号分隔
例如defaults,acl,noatime
5、转储频率:
0:从不备份
1:每天备份一次
2:每隔一天备份
6:自检次序:
0:不自检
1、首先自检,通常只能是根文件系统可用1
2、次级自检,
,......
[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.sh
1 #!/bin/bash
2 #计算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.sh
1 #!/bin/bash
2 #如果主机名字为空,或者为localhost.localdomain,则改名字为mageedu.com
3 hostName=$(hostname)
4 if [[ -z "$hostName" ]]||[[ $hostName=="localhost" ]];then
5 hostname mageedu.com
6 fi
6、编写脚本,通过命令行参数传入一个用户名,判断id号是偶数还是奇数。
1 #!/bin/base
2 #假如对方给的用户不存在的话退出
3 user=$(grep "$1" /etc/passwd)
4 if [ -z "$user" ]; then
5 echo "no ueser"
6 exit 2
7 fi
8 #要求只给你一个用户的参数
9 if [ $# -ge 2 ]; then
10 echo "just one username"
11 exit 1;
12 fi
13 #给$1赋值uid数值
14 num1=$(id -u $1)
15 #将求余的值赋值给num2
16 num2=$[$num1%2]
17 #显示出输入用户名的id号
18 echo "$1's id is $num1"
19 #判断一个用户名的id号是否为奇数或者偶数
20 if [[ $num2 -eq 0 ]]; then
21 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 name
2 0 4 fd0
8 0 220200960 sda
8 1 512000 sda1
8 2 52428800 sda2
8 3 2113536 sda3
8 4 1 sda4
8 5 10520576 sda5
11 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 name
2 0 4 fd0
8 0 220200960 sda
8 1 512000 sda1
8 2 52428800 sda2
8 3 2113536 sda3
8 4 1 sda4
8 5 10520576 sda5
8 6 15728640 sda6
8 7 5242880 sda7
11 0 6896640 sr0
二、创建PV:
PV管理工具的几种常用命令:
pvs:简要pv信息显示
pvdisplay:显示pv的详细信息
pvcreate /dev/DEVICE: 创建pv
pvremove /dev/DEVICE:移除pv
[root@localhost ~]# pvcreate /dev/sda6
Physical volume "/dev/sda6" successfully created
[root@localhost ~]# pvcreate /dev/sda7
Physical 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/sda6
VG Name
PV Size 15.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV 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/sda7
VG Name
PV Size 5.00 GiB
Allocatable NO
PE Size 0 #由于目前还未创建VG卷组,所以此处的PE大小为0
Total PE 0
Free PE 0
Allocated PE 0
PV 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/sda7
Volume group "myvg" successfully created
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name myvg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 19.97 GiB
PE Size 16.00 MiB
Total PE 1278
Alloc PE / Size 0 / 0
Free PE / Size 1278 / 19.97 GiB
VG 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 myvg
Logical 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/testlv
LV Name testlv
VG Name myvg
LV UUID OYjlLR-GCMD-UCLt-FA1b-1e2z-BuEW-RpxiUH
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2019-03-09 06:46:48 +0800
LV Status available
# open 0
LV Size 5.00 GiB
Current LE 320
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block 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, 5120001
Allocating 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 GiB
Logical 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 ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
testlv 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/testlv
WARNING: Reducing active logical volume to 3.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce testlv? [y/n]: y
Reducing logical volume testlv to 3.00 GiB
Logical volume testlv successfully resized
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
testlv 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/testlv
Logical volume "mysnap" created
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
mysnap 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 ###