1 使用VMware工具扩容分配的硬盘空间
vmware 提供一个命令行工具,在Windows下为vmware-vdiskmanager.exe 位于 vmware 的安装目录下,比如 C:Program FilesVMwareVMware Workstationvmware-vdiskmanager.exe。在Linux下有直接的vmware-vdiskmanager指令。
操作:
- 在 windows 下运行 CMD , 转到 vmware 的安装目录,可执行vmware-vdiskmanager.exe;
## -x 表示要扩展虚拟机硬盘空间
## 16GB 表示磁盘总量,包含了原先的磁盘容量
## CDH01.vmdk 指定要操作的虚拟机磁盘的具体文件,要是路径名中有空格,必须以双引号括起来
vmware-vdiskmanager.exe -x 16Gb H:\CDH01\CDH01.vmdk
- 在Linux下,直接敲入可执行该指令:
vmware-vdiskmanager -x 16Gb H:\CDH01\CDH01.vmdk
按回车键开始执行,执行完毕,退出命令提示符窗口,重启 VMware ,会发现虚拟机硬盘空间已变成 16GB 了。但进入 linux 系统后,用 df -h
查看发现硬盘空间还是原先那么大。虽然已经扩大了磁盘,但是由于还没有经过分区,指定文件系统,所以 linux 操作系统无法识别。其实就相当于你的硬盘虽然大了,但是你并没有对其进行分区是一个道理。
2 使用fdisk/gdisk工具进行分区
**注意:**MBR分区用fdisk,GPT分区用gdisk
- 以root身份登录系统;
- 打印当前的磁盘分区表,这时我们可以看到磁盘的总量的确增加到16GB 了,但是分区只有以前的那几个原有的分区;
fdisk -l
- 添加一个新的分区;已经通过
fdisk -l
得知是/dev/hda
还是/dev/sda
## 新建分区命令
[root@localhost ~]# fdisk /dev/sda
## 键入命令,会执行以下选项:
Command (m for help): m ## 查看操作帮助
Command (m for help): n ## 添加一个新的分区
## Partition type:
## p primary (3 primary, 0 extended, 1 free)
## e extended
Select (default e): p ## 选择创建主分区
Selected partition 4 ## 主分区编号,编号网上累加
First sector (37771264-83886079, default 37771264): ## 回车,默认分区开始值
Last sector, +sectors or +size{K,M,G} (37771264-83886079, default 83886079): ## 回车,默认分区结束值
Command (m for help): w ## 保存所有并退出,分区划分完毕
- 再次查看磁盘分区表
[root@localhost ~]# fdisk -l
Disk /dev/sda: 42.9 GB, 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
Disk label type: dos
Disk identifier: 0x000dd5e7
Device Boot Start End Blocks Id System
/dev/sda1 2048 6143 2048 83 Linux
/dev/sda2 * 6144 2103295 1048576 83 Linux
/dev/sda3 2103296 37771263 17833984 8e Linux LVM
/dev/sda4 37771264 83886079 23057408 83 Linux
...
如果发现/dev/sda4
分区类型不是LVM,则需要更改分区类型
3 更改分区类型
[root@localhost ~]# fdisk /dev/sda
Command (m for help): m ## 查看操作帮助
Command (m for help): t ## 更改分区类型
Partition number (1-4, default 4): 4 ## 选择要更改的分区编号 /dev/sda[4]
Hex code (type L to list all codes): L ## 查看所有的分区类型
Hex code (type L to list all codes): 8e ## 选择LINUX LVM类型
Command (m for help): w ## 保存所有并退出,更改分区类型完毕
查看磁盘情况
[root@localhost ~]# fdisk -l
Disk /dev/sda: 42.9 GB, 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
Disk label type: dos
Disk identifier: 0x000dd5e7
Device Boot Start End Blocks Id System
/dev/sda1 2048 6143 2048 83 Linux
/dev/sda2 * 6144 2103295 1048576 83 Linux
/dev/sda3 2103296 37771263 17833984 8e Linux LVM
/dev/sda4 37771264 83886079 23057408 8e Linux LVM
...
到此,就已经成功新建了一个分区/dev/sda4
,接下来就可以通过“挂载”命令来使用这个新的空间。
本文主要目的是用新建的分区来扩展根目录的空间,而目前已经有分区挂载到根目录"/"上了,无法再次讲新增的分区挂载到“/”上,只能通过扩展已知挂载到“/”的分区的容量来达到扩展“/”空间的目的。
4 扩展已知挂载到"/"的分区容量
4.1 查看当前的逻辑卷
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home centos -wi-ao---- 5.00g
root centos -wi-ao---- 31.00g
swap centos -wi-ao---- 2.00g
记住VG列的内容(即“centos”)
4.2 创建一个物理卷
用pvcreate
将新增的分区创建一个物理卷
pvcreate /dev/sda4
4.3 追加物理卷到VG
vgextend centos /dev/sda4
追加成功后,通过df -lh
查看到“/”的容量还没有增加
4.4 根目录扩展容量
先用vgdisplay
查看系统当前的VG,主要观察Free PE / Size 254 / 1016.00 MiB;这一行说明最多可以有多少的扩展空间。然后使用lvextend
给根目录扩展容量
## /dev/centos/root: 挂载点“/”对应的“文件系统”的值
## /dev/sda4:新建的分区
lvextend -L +可扩展容量 /dev/centos/root /dev/sda4
4.5 “/”的容量刷新
采用xfs_growfs
通知系统“/”的容量增加了
xfs_growfs
最后,用df -lh
查看空间情况。
5 参考资料
- 扩大VMware虚拟机中linux硬盘空间
- linux 根目录扩容
- CentOS 7 增加磁盘分区挂载(lvm)