Vbox下linux虚拟机根分区扩容
前言
使用一段时间VBox中的linux后可能会显示根分区空间不足的情况,需要扩容。
通过查阅相关资料,VBox中linux扩容主要有两种办法:通过lvm扩容和通过gparted扩容
LVM条件:VBox中的linux系统使用LVM管理磁盘
gparted条件:自带gparted的linux系统映像(ISO)
判断能否通过lvm扩容:
终端输入“vgs”,显示“No volume groups found”则不能使用lvm扩容
显示如下则可以使用lvm扩容:
VG #PV #LV #SN Attr VSize VFree
xiaoluo 2 0 0 wz--n- 15.99g 15.99g
通过LVM扩容
关于LVM的基本知识可以参考以下两篇文章,只按照本文操作可以顺利完成
LVM逻辑卷基本概念及LVM的工作原理
LVM逻辑卷的创建及使用
第一步:添加虚拟硬盘
关闭虚拟机,在虚拟机的设置界面,选择“存储”选项卡,点击“添加虚拟硬盘”图标
按提示完成添加即可。
第二步:为新硬盘分区并格式化
添加新硬盘后在终端中键入"fdisk -l"即可看到新添加的硬盘,我这里显示为“/dev/sdb”
键入“fdisk /dev/sdb”开始对新硬盘分区
在新的命令行中键入“n”创建新分区
直接回车作为主分区
键入分区数字,或直接回车默认1
回车默认从2048作为此分区的开始扇区
回车默认最后扇区作为结束扇区
键入“w”保存并退出,现在得到/dev/sdb1分区,建议重启以下虚拟机
第三步:将新分区添加到lvm并扩容
键入“pvcreate /dev/sdb1”
Physical volume “/dev/hda4″ successfully created
键入“vgs”查看卷组名,如“xiaoluo”或“VolGroup00”
键入“vgextend VolGroup00 /dev/sdb1”将新分区添加到卷组中去
键入“lvs”查看要扩容的逻辑卷名称,如"LogVol00"
键入“lvextend -L +4096M /dev/VolGroup00/LogVol00”扩展逻辑分区,其中“+4096M”表示增加4G空间
键入“resize2fs -p /dev/VolGroup00/LogVol00”激活新空间
现在键入“df -h”即可查看扩容后的空间
通过gparted扩容
第一步:将vmdk格式虚拟硬盘转为vdi格式
(如果你的虚拟硬盘是vdi格式请跳到第二步)
找到Vbox的安装目录并进入cmd界面,我的是:H:\Program Files\Oracle\VirtualBox
键入“VBoxManage list hdds”查看现有的虚拟硬盘,找到要扩容的虚拟机的虚拟硬盘,记录下位置
键入 VBoxManage clonehd "H:\Users\liber\VirtualBox VMs\kali_iso\-disk1.vmdk" "H:\Users\liber\VirtualBox VMs\kali_iso\-disk1.vdi" --format vdi 将vmdk转化为vdi
然后在虚拟机的设置中将旧的vmdk卸载并挂在新的vdi即可
第二步:扩容vdi格式虚拟硬盘
键入“VBoxManage list hdds”查看要扩容的vdi文件的UUID并记录
键入“VBoxManage modifyhd 你的uuid --resize 40960”将其扩容为40G,其中40960表示新的大小
第三步:扩容linux根分区
在虚拟机的设置界面,选择“存储”选项卡,点击“添加虚拟光驱”,点击“选择磁盘”浏览linux的iso文件,我这里是kali-linux-1.1.0a-amd64.iso,然后确定
(这里如果有空的虚拟光驱要删除,否则启动的时候不会从光驱启动)
在“系统选项卡”将光驱调整为最优先启动
从虚拟光驱启动虚拟机,选择LiveCD模式,我这里是“Live (amd64)”,这种模式是不安装,仅体验
进入系统后在终端中输入gparted就会启动gparted的图形化界面
现在硬盘结构应该如下所示:
/dev/sda
|---/dev/sda1 (ext4,要扩容)
|---/dev/sda2 (extended,885M)
| |---/dev/sda5 (linux-swap,885M)
|---unallocated (unallocated,待分配)
unallocated就是我们未分配空间,/dev/sda2是linux中的虚拟内存,在大型程序无法一次装入内存的时候使用的
我们可以先删除/dev/sda5,然后删除/dev/sda2。然后就只剩下要扩容分区和未分配空间了
右击要扩容分区,选择resize即可进行扩容,但是注意这里要留下一部分空间作为linux-swap分区作为虚拟内存
分区扩容好之后在剩余的unallocated空间上右击新建linux-swap:
1.在新建窗口中的“create as”下拉菜单选择“extended partition”
2.在建好的extended partition中的unallociated空间右击,新建,“create as”选择“linux-swap”即可
点击上方的应用按钮即可生效。
然后删除iso光驱,进入虚拟机即可发现根分区已成功扩容
写文章不容易,转载请注明出处