前提
我所要修改的vmdk文件的存储设置是单个文件和动态分配的,也就是不论我给定的磁盘大小上限是多少,vmdk文件大小都只会根据真正的空间需求变化,所以需要这篇教程来实现具体的扩容。
准备工作
首先虚拟磁盘一定是要扩展到需求大小的,vmdk就我目前理解,只能使用VMWare进行扩展,如果你是用VirtualBox打开的vmdk文件,那还是得通过VMWare操作一下。
用VMWare创建一个所用镜像相同其他随意的虚拟机,然后用需要扩容的vmdk文件替换掉新建的虚拟机存储所指向的vmdk文件,最后在设备信息设置里的存储里扩展一下就好了。具体过程就不赘述了。
我这边是打算将10G扩展到30G
挂载新分区
其实在扩展完毕后就会弹窗提醒我们要在虚拟机内部进行内存分配了,毕竟我们只是允许了虚拟磁盘的大小上限,虚拟机内部还什么都不知道。这里可以看到在配置界面我已经完成扩展了。
启动虚拟机,输入df -h查看文件系统硬盘使用情况,先记录下主磁盘路径,
比如我的就是红色框起来那个。这里可以看到我们的所有磁盘加起来也就不到10G,刚刚在外面扩展的空间完全没有体现。
这时候我们输入fdisk -l看看我们都有哪些分区,
可以看到我目前就只有2个分区,那么一会新增分区的时候我们就可以将新分区挂载到sda3上了。
输入fdisk /dev/sda回车,然后输入n回车,再输入p回车,这时候我们来到这一步,
这一步就有点像Windows在选盘符了,因为我1和2已经挂载分区了,所以选1和2是会报错的,那么我们就选3,然后回车,接着也回车,也就是选择默认值,这样系统会直接将余下所有空间分配给sda3分区;然后再回车,再选择默认值,就回到选择指令的地方,
这次我们选择w后回车,写入保存。
这时候它提醒我们新的表会在重启或者键入对应指令后生效,我们直接键入reboot回车重启。
用新分区给主磁盘扩容
使用vgscan查询物理卷,
可以看到本机物理卷名称,即红色框选处。
键入命令vgextend vg_zhyh /dev/sda3使用新增物理卷扩展本机物理卷vg_zhyh。
接着扩展主磁盘,键入lvextend -L +19.9G /dev/mapper/vg_zhyh-lv_root后回车,/dev/mapper/vg_zhyh-lv_root即我们一开始df -h记录下的主磁盘路径。
这里如果输刚刚好20G会因为剩余空间少了1而失败,至于为什么我也不知道==
接着用 df -h,发现实际容量并没有变化,因为我们的系统还不认识刚刚添加进来的磁盘的文件系统,所以还需要对文件系统进行扩容。
键入resize2fs -f /dev/mapper/vg_zhyh-lv_root然后回车。
最后键入df -h再次查看主磁盘容量,
拿下!