目录
问题描述
我们创建虚拟机的时候,创建引导会让我们设置硬盘的大小,但实际使用的时候经常会遇到磁盘空间使用完的情况。这篇文章就是我百度了各位大佬的操作后,用来记录如何扩充虚拟机的硬盘空间的步骤的,以便之后忘却时可以回顾。
扩充思路
1、向虚拟机申请扩充目标大小的空间
2、将新扩充的空间关联到一个新的分区
3、将新分区关联到目标磁盘
扩充步骤
1、查询当前的硬盘空间
查询语句:df -h
[root@kenny-centos8 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 888M 0 888M 0% /dev
tmpfs 904M 0 904M 0% /dev/shm
tmpfs 904M 8.6M 895M 1% /run
tmpfs 904M 0 904M 0% /sys/fs/cgroup
/dev/mapper/cl_kenny--centos8-root 17G 17G 880K 100% /
/dev/sda1 976M 127M 783M 14% /boot
tmpfs 181M 0 181M 0% /run/user/0
[root@kenny-centos8 ~]#
可以看到我挂在到根目录下的磁盘空间一共17GB,已经使用完了。
2、在虚拟机层面扩展虚拟硬盘的大小
关闭虚拟机,在VMware Workstation界面选中要扩容的虚拟机,点击【虚拟机】–>【设置】,或者快捷键【CTRL + D】,然后【硬盘】–>【扩展】,输入希望扩展到的硬盘空间大小。注意如果虚拟机没有关闭,此时的扩展按钮是不可选中的灰色状态。
需要知道的是,这里仅仅是扩展虚拟硬盘的大小,而分区和文件系统并不受影响,可以理解为让虚拟机重新划分出来一些硬盘空间,但是现在并没有将这些空间与文件系统相关联。
3、开启虚拟机,查看虚拟硬盘空间是否已按照需求进行了扩展
查询语句:fdisk -l
[root@kenny-centos8 ~]# fdisk -l
Disk /dev/sda: 40 GiB, 42949672960 bytes, 83886080 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb45bd429
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux
/dev/sda2 2099200 41943039 39843840 19G 8e Linux LVM
Disk /dev/mapper/cl_kenny--centos8-root: 17 GiB, 18249416704 bytes, 35643392 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/cl_kenny--centos8-swap: 2 GiB, 2147483648 bytes, 4194304 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
可以看到/dev/sda磁盘已经是40GB(扩展的目标大小)了,但是磁盘的两个分区/dev/sda1 + /dev/sda2一共才1G+19G = 20GB(扩展前的大小)。这也证明了第二步的意义,即新扩展的20GB并没有关联到硬盘。
这里指明了一个扇区大小为512bytes。下面新建分区时可能要用到扇区大小计算
4、新建分区
扩充语句:fdisk /dev/sda (/dev/sda是扩充目标磁盘的名称)
命令讲解:
fdisk:对磁盘进行管理维护的命令
/dev/sda:命令操作的磁盘
依次输入执行以下命令:
第一步 :n : 新建一个分区
第二步 :p: 指明新建的这个分区是主分区
第三步 :3: 指明新建分区的分区编号为3。这一步直接回车默认也是可以的。
第四步 : 回车默认。这一步是指明新建分区的起始扇区位置。
仔细观察的话可以看到这个默认值正好是/dev/sda2分区的结束位置+1扇区。
如果不想默认,希望自定义当前分区的开始位置,需要注意指定的位置是有范围的。
第五步 :回车默认。这一步是指明新建分区的结束扇区位置。
默认是虚拟硬盘的结束扇区位置,比如我这里是83886079。
如果不想默认,希望自定义当前分区的结束位置,需要注意指定的位置是有范围的。
最终的新建分区大小计算:(结束扇区位置 - 开始扇区位置 + 1)* 512 bytes
第六步 : t:修改分区的类型的命令
第七步 : 3:目标修改分区的分区号。这里指明要修改第3号分区的分区类型
第八步 : 8e: 目标分区类型的编号。
如果不清楚编号,可以键入L来查看所有的编号
第九步 : w:保存修改并退出fdisk
[root@kenny-centos8 ~]# fdisk /dev/sda
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition type
p primary (2 primary, 0 extended, 2 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (3,4, default 3): 3
First sector (41943040-83886079, default 41943040):
Last sector, +sectors or +size{K,M,G,T,P} (41943040-83886079, default 83886079):
Created a new partition 3 of type 'Linux' and of size 20 GiB.
Command (m for help): t
Partition number (1-3, default 3): 3
Hex code (type L to list all codes): L
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 hidden or c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx
5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data
6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility
8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt
9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access
a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi ea Rufus alignment
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD eb BeOS fs
f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ee GPT
10 OPUS 55 EZ-Drive a7 NeXTSTEP ef EFI (FAT-12/16/
11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f0 Linux/PA-RISC b
12 Compaq diagnost 5c Priam Edisk a9 NetBSD f1 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f4 SpeedStor
16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ f2 DOS secondary
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fb VMware VMFS
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fc VMware VMKCORE
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fd Linux raid auto
1c Hidden W95 FAT3 75 PC/IX bc Acronis FAT32 L fe LANstep
1e Hidden W95 FAT1 80 Old Minix be Solaris boot ff BBT
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'.
Command (m for help): w
The partition table has been altered.
Syncing disks.
5、告知系统重新读取分区表信息
执行语句:partprobe
6、查看分区信息,确定新分区已建立
执行命令:fdisk -l
[root@kenny-centos8 ~]# fdisk -l
Disk /dev/sda: 40 GiB, 42949672960 bytes, 83886080 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb45bd429
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux
/dev/sda2 2099200 41943039 39843840 19G 8e Linux LVM
/dev/sda3 41943040 83886079 41943040 20G 8e Linux LVM
Disk /dev/mapper/cl_kenny--centos8-root: 17 GiB, 18249416704 bytes, 35643392 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/cl_kenny--centos8-swap: 2 GiB, 2147483648 bytes, 4194304 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
这里可以看到新建的分区已经被系统查询到了。
7、格式化新分区
执行命令:mkfs.xfs /dev/sda3
分区建立后第一步就是格式化这个分区
[root@kenny-centos8 ~]# mkfs.xfs /dev/sda3
meta-data=/dev/sda3 isize=512 agcount=4, agsize=1310720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=5242880, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
新分区已经创建并格式化,现在的工作就是将它关联到目标磁盘上
8、查看要扩充的卷组名称
查看命令:vgdisplay
[root@kenny-centos8 ~]# vgdisplay
--- Volume group ---
VG Name cl_kenny-centos8
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <19.00 GiB
PE Size 4.00 MiB
Total PE 4863
Alloc PE / Size 4863 / <19.00 GiB
Free PE / Size 0 / 0
VG UUID oXKJs7-zCoX-MHU1-bMqZ-dJf9-6cnp-S1Qhrr
这里可以找到要扩充的物理卷的名称,我这里的目标名称为cl_kenny-centos8
9、查看要扩充的文件系统名称
查看命令:df -h
[root@kenny-centos8 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 888M 0 888M 0% /dev
tmpfs 904M 0 904M 0% /dev/shm
tmpfs 904M 8.7M 895M 1% /run
tmpfs 904M 0 904M 0% /sys/fs/cgroup
/dev/mapper/cl_kenny--centos8-root 17G 17G 736K 100% /
/dev/sda1 976M 127M 783M 14% /boot
tmpfs 181M 0 181M 0% /run/user/0
我需要将根目录扩充,根目录对应的文件系统(逻辑卷)名称为cl_kenny–centos8-root。
10、开始扩充
进入LVM命令:lvm
将新建物理硬盘分区初始化为物理卷:pvcreate /dev/sda3
向卷组中添加物理卷:vgextend cl_kenny-centos8 /dev/sda3
将卷组的所有可用容量分配给该逻辑卷:lvextend -l +100%FREE /dev/mapper/cl_kenny–centos8-root
quit:退出lvm
[root@kenny-centos8 ~]# lvm
lvm> pvcreate /dev/sda3
WARNING: xfs signature detected on /dev/sda3 at offset 0. Wipe it? [y/n]: y
Wiping xfs signature on /dev/sda3.
Physical volume "/dev/sda3" successfully created.
lvm> vgextend cl_kenny-centos8 /dev/sda3
Volume group "cl_kenny-centos8" successfully extended
lvm> lvextend -l +100%FREE /dev/mapper/cl_kenny--centos8-root
Size of logical volume cl_kenny-centos8/root changed from <17.00 GiB (4351 extents) to 36.99 GiB (9470 extents).
Logical volume cl_kenny-centos8/root successfully resized.
lvm> quit
Exiting.
11、查看物理卷信息
查看命令:pvdisplay
[root@kenny-centos8 ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name cl_kenny-centos8
PV Size <19.00 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 4863
Free PE 0
Allocated PE 4863
PV UUID vetJwb-BtKk-M7TO-cVQM-2zpl-PMOa-kVGM2c
--- Physical volume ---
PV Name /dev/sda3
VG Name cl_kenny-centos8
PV Size 20.00 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 5119
Free PE 0
Allocated PE 5119
PV UUID 4xRbbh-mFWJ-QDb1-bP4W-lynV-zQOg-mAl5hQ
可以看到物理分区/dev/sda3已经转化为物理卷添加到卷组cl_kenny-centos8中。
12、同步文件系统
同步命令:xfs_growfs /
[root@kenny-centos8 ~]# xfs_growfs /
meta-data=/dev/mapper/cl_kenny--centos8-root isize=512 agcount=4, agsize=1113856 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=4455424, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log 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 9697280
13、再次查看磁盘磁盘空间
查询命令:df -h
[root@kenny-centos8 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 888M 0 888M 0% /dev
tmpfs 904M 0 904M 0% /dev/shm
tmpfs 904M 8.7M 895M 1% /run
tmpfs 904M 0 904M 0% /sys/fs/cgroup
/dev/mapper/cl_kenny--centos8-root 37G 18G 20G 47% /
/dev/sda1 976M 127M 783M 14% /boot
tmpfs 181M 0 181M 0% /run/user/0
可以看到磁盘空间已经由17GB扩展为37GB了。
参考网址:
https://blog.csdn.net/qq_26192391/article/details/107533506
https://blog.csdn.net/liujinwei2005/article/details/78439452
https://www.runoob.com/linux/linux-command-manual.html