分区挂载
前提:安装完centos7系统后发现需要重新调整分区大小,并且需要规划新的分区挂载目录
1、安装LVM
如果你的Centos 7是最小化安装,一般需要自己安装LVM:(Logical Volume Manager) 逻辑卷管理器。
yum -y install lvm2
查看磁盘使用情况
fdisk -l
查看磁盘挂载情况
lsblk
查看挂载磁盘详情
df -hT
挂载流程:磁盘–>物理卷–>卷组–>逻辑卷–>挂载目录
2、根据磁盘分区 /dev/vdb1
创建物理卷,使用pvcreate命令可以将物理磁盘分区初始化创建为物理卷。(一般磁盘初始化就会生成,跳过)
pvcreate /dev/vdb1
查看物理卷信息
pvdisplay # pvdisplay [物理卷名]
# 或使用
pvscan
# 或使用
pvs
磁盘分区,以Disk /dev/sdb为例
[root@huoshi-111 ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x774b38c4.
Command (m for help): #输入n回车,添加新分区,如果需要更多,请输入m回车看帮助
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): # 输入p回车,P的意思是主分区
Partition number (1-4): # 输入数字1回车,分区数量
First sector (2048-20971519, default 2048): #默认回车
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-419430399, default 419430399): # 默认回车
Using default value 419430399
Partition 1 of type Linux and of size 200GiB is set
Command (m for help): # 输入w保存
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
3、创建卷组
# 自动分配所有空间
vgcreate vg1 /dev/vdb1
# 指定大小分配
vgcreate -s 16M vg1 /dev/vdb2
或是指定多个物理卷
vgcreate vg1 /dev/vdb1 /dev/vdb2
查看卷组
vgdisplay # vgdisplay [卷组名]
3.1 将物理卷从卷组中移除即缩小卷组:
vgreduce vg1 /dev/vdb1
3.2、从物理卷扩展到卷组(添加物理卷到卷组中):
vgextend vg1 /dev/vdb1
3.3、删除卷组
vgremove vg1
4、逻辑卷的创建与管理。
4.1、创建逻辑卷-L
指定大小(如果空间不足可以先缩容其中一个逻辑卷,参考4.2)
lvcreate -L 50G -n leotest-lvm vg1
leotest-lvm:逻辑卷 vg1:卷组
查看逻辑卷
lvdisplay
# 或使用
lvcan
结果:
# lvscan
ACTIVE '/dev/centos/swap' [4.00 GiB] inherit
ACTIVE '/dev/centos/home' [23.87 GiB] inherit
ACTIVE '/dev/centos/root' [50.00 GiB] inherit
ACTIVE '/dev/centos/leotest-lvm' [50.00 GiB] inherit
4.2、增加/缩小逻辑卷
4.2.1、增加:
# 指定大小用下面的命令
lvextend -L +100M /dev/centos/leotest-lvm
#如果想要将逻辑卷的大小增加到物理卷上所有可用空间的大小,使用如下命令
#lvextend -l +100%FREE /dev/centos/leotest-lvm
# 操作立即生效:仅适用于 ext2、ext3 和 ext4 文件系统
resize2fs /dev/centos/leotest-lvm
# 操作立即生效:用于扩展 XFS 文件系统以利用未使用的空间
# xfs_growfs /dev/centos/leotest-lvm
4.2.2、缩小以home为例:
卸载挂载逻辑卷的路径
umount /home
查看需要缩小的路径
cat /etc/fstab
缩小逻辑卷:
lvreduce -L -1G /dev/mapper/centos-home
resize2fs /dev/centos/leotest-lvm (使上面的操作立即生效,缩容并不管用)
查看结果
lvscan
在此会有一个问题,缩小后无法重新挂载之前的目录,如下:
[root@leojiang-test ~]# mount /dev/centos/home /home
mount: /dev/mapper/centos-home: can't read superblock
首先想到使用fsck进行修复下,并没有用,看到错误信息,才知道xfs文件要使用xfs_repair进行修复,然后修复失败:
[root@leojiang-test ~]# fsck /dev/centos/home
fsck from util-linux 2.23.2
If you wish to check the consistency of an XFS filesystem or
repair a damaged filesystem, see xfs_repair(8).
然后尝试修复下,然而并没有用,我们是缩容所以还是不行:
[root@leojiang-test ~]# xfs_repair -L /dev/centos/home
Sorry, could not find valid secondary superblock
Exiting now.
最后格式化文件系统覆盖重设就好用了。
-f 覆盖强行修改
[root@leojiang-test ~]# mkfs.xfs -f /dev/mapper/centos-home
meta-data=/dev/mapper/centos-home isize=512 agcount=4, agsize=1564416 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=6257664, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=3055, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
重新挂载卸载的/home
mount /dev/mapper/centos-home /home
结论——如果文件格式为xfs:1、xfs不支持缩容,可以不卸载;2、进行此操作之前需要备份挂载的目录文件
df -hT # 查看已经缩容完成
5、格式化逻辑卷,创建xfs文件系统
mkfs.xfs /dev/centos/leotest-lvm
6、查看文件系统及分区的UUID
blkid
结果:
# blkid
/dev/mapper/centos-root: UUID="afc56ee4-489d-4777-a40c-f26698f427ac" TYPE="xfs"
/dev/sda2: UUID="Sh9wCr-XwDl-9XBA-1gcF-eP2-HjuT-TVHu" TYPE="LVM2_member"
/dev/sda1: UUID="876399c9-40fe-4df8-bcc1-f5b8c4" TYPE="xfs"
/dev/mapper/centos-swap: UUID="dab1a-474c-4b8-9679-cff60ef882b" TYPE="swap"
/dev/mapper/centos-home: UUID="369585-231b-40fb-95d-fa07a9b047b" TYPE="xfs"
/dev/mapper/centos-leotest--lvm: UUID="58b79be-147-4e41-9ec1-02b138c54" TYPE="xfs
7、挂载文件系统 (文件夹挂载逻辑卷)
7.1、临时挂载
mount /dev/mapper/centos-leotest--lvm /var/opt
7.2、永久挂载
vim /etc/fstab
行尾添加:
/dev/mapper/centos-leotest--lvm /var/opt xfs defaults 0 0
生效
mount -a
确认挂载:
df -hT
大于2T的磁盘使用GPT分区
disk–>分区–>物理卷–>卷组–>逻辑卷–>格式化
在使用fdisk建立分区时,我们最大只能建立2TB大小的分区。如需建立超过2T的分区需要采用GPT磁盘模式。
MBR与GPT对比
类别 | 主引导方式 | 主分区数量 | 最大容量 | 支持多少位系统 | 分区方法 |
---|---|---|---|---|---|
MBR | BIOS+MBR | 4 | 2T | 32和64 | fdisk |
GPT | UEFI+GPT | 128 | 18EB(1EB=1024PB=1048576TB) | 64 | parted |
1、查看磁盘名
fdisk -l
以磁盘名为/dev/sdb 为例
2、输入parted就会进入交互式模式
parted /dev/sdb
# 将MBR磁盘格式化为GPT
(parted) mklabel gpt
# 分区1
(parted) mkpart /dev/sdb1
File system type? [ext2]? ext4 //文件系统类型
Start? 0 //分区开始位置
End? 1T //分区结束位置 可使用GB/T
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? Ignore
#分区2
(parted) mkpart /dev/sdb2
File system type? [ext2]? ext4 //分区文件类型
Start? 1T //分区开始位置
End? 2.5T //分区结束位置
# 打印当前分区
(parted) print
# 退出
(parted) quit
查看物理卷
pvs
创建卷组把物理卷添加到卷组中
# 自动分配所有空间 卷组名vg0 物理卷/dev/sdb1 /dev/sdb2
vgcreate vg0 /dev/sdb1 /dev/sdb2
# 查看卷组
vgdisplay
创建逻辑卷指定卷组分配大小
# 逻辑卷名lvm0 卷组vg0
lvcreate -L 2.5T -n lvm0 vg0
3、格式化逻辑卷
# 查看需要格式化的逻辑卷
lvdisplay
--- Logical volume ---
LV Path /dev/vg0/lvm0
LV Name lvm0
VG Name vg0
# 格式化,只有格式化后才可以进行挂载
mkfs.ext4 逻辑卷名