1.创建分区
要先扩分区,首先我们需要创建分区,所以我们先去看看又没有可用的硬盘来支持我们去创建新的分区。
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 792M 0 rom
我们发现只有一个硬盘,并且这个硬盘已经被根分区和swap分区占用,没有多余的硬盘供我们去创建分区,所以我们首先去创建新的硬盘。
[root@localhost ~]# reboot now
#添加完新的硬盘后重启或者你先挂起再去添加硬盘(推荐)
[root@localhost ~]# lsblk #再次查看我添加了两个
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sr0 11:0 1 792M 0 rom
创建分区,先创建主分区,主分区只能创建四个。默认分区号是1-4,再创建扩展分区。扩展分区不能直接用,必须将其分为逻辑分区才能用。所有逻辑分区的大小之和等于扩展分区,而主分区与扩展分区的总和是整个硬盘的大小,也就是说你给主分区分的多,扩展分区的大小就会变小。
[root@localhost ~]# fdisk /dev/sdb #给sdb分区
命令(输入 m 获取帮助):n #n代表创建新的分区
Partition type:
p primary (0 primary, 0 extended, 4 free) #p代表主分区
e extended #e代表扩展分区
Select (default p): p #在这里选择p,创建主分区
分区号 (1-4,默认 1): #回车
起始 扇区 (2048-41943039,默认为 2048): #回车
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G #给主分区选择大小
分区 1 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):n #再输入n,创建新分区
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e #创建扩展分区
分区号 (2-4,默认 2):
起始 扇区 (10487808-41943039,默认为 10487808):
将使用默认值 10487808
Last 扇区, +扇区 or +size{K,M,G} (10487808-41943039,默认为 41943039): #这里面我直接回车了,默认会将剩下的15G全给扩展分区
将使用默认值 41943039
分区 2 已设置为 Extended 类型,大小设为 15 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l #创建扩展分区
添加逻辑分区 5
起始 扇区 (10489856-41943039,默认为 10489856):
将使用默认值 10489856
Last 扇区, +扇区 or +size{K,M,G} (10489856-41943039,默认为 41943039):
将使用默认值 41943039
分区 5 已设置为 Linux 类型,大小设为 15 GiB
命令(输入 m 获取帮助):w #最后一定要w保存,否则无效
[root@localhost ~]# lsblk #再次查看发现我们创建成功
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 5G 0 part
├─sdb2 8:18 0 1K 0 part
└─sdb5 8:21 0 15G 0 part
sdc 8:32 0 20G 0 disk
sr0 11:0 1 792M 0 rom
#因为主分区只能创建4个,扩展分区和逻辑分区默认从5开始,所以是sdb5
2.扩大swap分区
先创建主分区,扩展分区和逻辑分区。因为这些我们都已经创建好了,所以直接扩分区就行了。
[root@localhost ~]# fdisk /dev/sdb
命令(输入 m 获取帮助):t #修改分区ID
分区号 (1,2,5,默认 5):5 #将第一个逻辑分区(即第五块盘)给swap
Hex 代码(输入 L 列出所有代码):82 #将分区ID改为82(linux swap类型)
已将分区“Linux”的类型更改为“Linux swap / Solaris”
命令(输入 m 获取帮助):w #保存退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# mkswap /dev/sdb5 #格式化分区为swap分区
正在设置交换空间版本 1,大小 = 15726588 KiB
无标签,UUID=9c04eb58-52c3-4823-bd65-3abe0f7a3527
[root@localhost ~]# swapon /dev/sdb5 #启用这个swap分区
[root@localhost ~]# swapon -s #查看系统中的swap分区
文件名 类型 大小 已用 权限
/dev/dm-1 partition 2097148 0 -1
/dev/sdb5 partition 15726588 0 -2
#我们发现sdb5已经是swap分区了
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 5G 0 part
├─sdb2 8:18 0 1K 0 part
└─sdb5 8:21 0 15G 0 part [SWAP]
sdc 8:32 0 20G 0 disk
sr0 11:0 1 792M 0 rom
3.扩大根分区
我们扩根是用LVM(逻辑卷)来扩的,所以我们需要了解他们是干什么用的。
- LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。
- 卷组(volume group,VG)类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。
- 物理卷(Physical Volume,PV)指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
因为LVM不能跨越VG,只有在同一个VG里面的LVM才能相互扩充,所以我们需要看一下根分区属于哪个VG。
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 5G 0 part
├─sdb2 8:18 0 1K 0 part
└─sdb5 8:21 0 15G 0 part [SWAP]
sdc 8:32 0 20G 0 disk
sr0 11:0 1 792M 0 rom
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
我们发现根分区在centos卷组里面,而且我们的根分区大小是17G
[root@localhost ~]# pvcreate /dev/sdc #将整个sdc硬盘物理卷
Physical volume "/dev/sdc" successfully created.
[root@localhost ~]# vgextend centos /dev/sdc 给centos卷组扩容
Volume group "centos" successfully extended
[root@localhost ~]# lvextend -L +5G /dev/centos/root #给根分区扩大5G
Size of logical volume centos/root changed from <17.00 GiB (4351 extents) to <22.00 GiB (5631 extents).
Logical volume centos/root successfully resized.
[root@localhost ~]# xfs_growfs /dev/centos/root #上面只是对逻辑卷扩容,还需要同步到文件系统,实现对根目录的扩容
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=1113856 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=4455424, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 4455424 to 5766144
[root@localhost ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 22G 2.2G 20G 10% /
devtmpfs devtmpfs 478M 0 478M 0% /dev
tmpfs tmpfs 489M 0 489M 0% /dev/shm
tmpfs tmpfs 489M 6.8M 482M 2% /run
tmpfs tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 125M 890M 13% /boot
tmpfs tmpfs 98M 0 98M 0% /run/user/0
现在我们的根分区已经是22G了。