virtualbox下载安装Arch Linux把当初分配的8G空间占满了, 所以需要对虚拟磁盘进行扩充.
本应该是很简单的操作, 但是由于我之前创建过快照, 所以有一个坑, 导致修改后在Gparted中不显示新增的空间, 下面会提到.
1、首先确认你当时创建的是动态分配空间的磁盘, 可以在虚拟机的”设置->存储”中选择控制器下的磁盘文件查看.
2、找到并复制该磁盘文件的路径,如:”F:GuestOSmanjaromanjaro.vdi”
3、找到你VirtualBox的安装目录, 里面有一个”VBoxManage.exe”程序
4、我假设你至少是Win7的系统了, 此时可以在VBox的目录空白处按住Shift单击鼠标右键, 选择”在此处打开命令窗口”.(如果你真的是xp, 请手动运行cmd然后cd到该目录吧..)
5、将命令 “VBoxManage modifyhd
VBoxManage modifyhd “F:GuestOSmanjaromanjaro.vdi” –resize 20480
要注意大小的单位只能是mb, 自己要先算好, 不需要单位只写数字.
PS: 如果你不是vdi格式的文件, 可以使用命令转换:
VBoxManage clonehd 源硬盘格式文件 目录硬盘格式文件 –format 目标格式后缀
6、回车执行命令, 很快进度就会到100%, 然后就完成了磁盘的扩容了, 不过这里有一个坑, 如果你建立过快照的话, 当前系统状态是基于你最后那个快照的, 所以你还需要对那个快照进行同样的扩容操作 ,如:
VBoxManage modifyhd “F:GuestOSmanjarosnapshots{xxxxxxxx-xxxx-xxxx-xxxx-xxxx}.vdi” –resize 20480
把里面的xxx换成你对应的文件名即可.
这可真是个大坑, 我当时在百度搜的五六篇文章都没有提到有快照时的情况, 导致我的vbox虽然提示我虚拟空间已经是20G了, 但在系统中查看未使用空间时总是显示一共就8G…然后又去百度vbox扩容后问题, 说的全是怎么用gparted分配空间, 最终在Google上搜vbox resize problem, 找到了一大堆官网的提问, 进去一看好多都是跟我一样的问题, 于是乎…问题解决.
附上参考:
https://www.virtualbox.org/ticket/9103
https://forums.virtualbox.org/viewtopic.php?f=35&t=50661
扩充完毕后, 就可以进行空间分配了, 即将新增的未使用空间添加到你要扩容的分区, 用gparted是一个不错的选择, 图形化, 方便快捷.
7、为虚拟机挂载一个有gparted的live光盘, 我直接用的ubuntu盘, 挂载之后选择live, 然后启动系统, 安装引导程序界面加载完后, 选择”Try Ubuntu”, 即可进入到Ubuntu live
8、打开终端, 运行
sudo gparted
9、选择你要扩容的分区, 我这里是 “/dev/sda1”, 右键 “Resize/Move”, 然后把上面的空间大小选择区域右侧拉到头, 点击 “Resize/Move”, 就可以了, 应该会有个提示提醒你如果操作不当可能会导致引导失败什么的, 点OK, 然后应用设置, 就可以了.
重启之后, 分区大小已扩增。