博客文章迁移: 2018-01-17 11:18
起因
由于windows上面使用npm的体验很不好(目录嵌套导致的长目录错误), 所以不得不用linux系统.
然而无论是Debian还是Red Hat的包管理器, 都不能及时的提供最新的软件版本, 如果去官网编译安装的话, 总会由于网络问题中断, 一度很苦恼.
直到有一天, 一位dalao(@anciety)向我推荐了基于Arch Linux的Manjaro, 我才找到了一个真正满意的一款系统(各种意义上)
最近由于安装了很多东西(主要是openvas的nvts feed), 把当初分配的8G空间占满了, 所以需要对虚拟磁盘进行扩充.
本应该是很简单的操作, 但是由于我之前创建过快照, 所以有一个坑, 导致修改后在Gparted中不显示新增的空间, 下面会提到.
正文
1.首先确认你当时创建的是动态分配空间的磁盘, 可以在虚拟机的”设置->存储”中选择控制器下的磁盘文件查看.
2.找到并复制该磁盘文件的路径,如:"F:\GuestOS\manjaro\manjaro.vdi"
3.找到你VirtualBox的安装目录, 里面有一个"VBoxManage.exe"程序
4.我假设你至少是Win7的系统了, 此时可以在VBox的目录空白处按住Shift单击鼠标右键, 选择”在此处打开命令窗口”.(如果你真的是xp, 请手动运行cmd然后cd到该目录吧..)
5.将命令 "VBoxManage modifyhd <vdi文件路径> –resize <文件大小(MB)>", 替换为你的, 比如这里我要把磁盘空间提升到20G, 就输入:
VBoxManage modifyhd "F:\GuestOS\manjaro\manjaro.vdi" –resize 20480
要注意大小的单位只能是mb, 自己要先算好, 不需要单位只写数字.
PS: 如果你不是vdi格式的文件, 可以使用命令转换:
VBoxManage clonehd 源硬盘格式文件 目录硬盘格式文件 –format 目标格式后缀
6.回车执行命令, 很快进度就会到100%, 然后就完成了磁盘的扩容了, 不过这里有一个坑, 如果你建立过快照的话, 当前系统状态是基于你最后那个快照的, 所以你还需要对那个快照进行同样的扩容操作 ,如:
VBoxManage modifyhd "F:\GuestOS\manjaro\snapshots\{xxxxxxxx-xxxx-xxxx-xxxx-xxxx}.vdi" –resize 20480
把里面的xxx换成你对应的文件名即可.
这可真是个大坑, 我当时在百度搜的五六篇文章都没有提到有快照时的情况, 导致我的vbox虽然提示我虚拟空间已经是20G了, 但在系统中查看未使用空间时总是显示一共就8G…然后又去百度vbox扩容后问题, 说的全是怎么用gparted分配空间, 最终在Google上搜vbox resize problem, 找到了一大堆官网的提问, 进去一看好多都是跟我一样的问题, 于是乎…问题解决.
附上参考:
扩充完毕后, 就可以进行空间分配了, 即将新增的未使用空间添加到你要扩容的分区, 用gparted是一个不错的选择, 图形化, 方便快捷.
7. 为虚拟机挂载一个有gparted的live光盘, 我直接用的ubuntu盘, 挂载之后选择live, 然后启动系统, 安装引导程序界面加载完后, 选择”Try Ubuntu”, 即可进入到Ubuntu live
8.打开终端, 运行
sudo gparted
9.选择你要扩容的分区, 我这里是 “/dev/sda1”, 右键 “Resize/Move”, 然后把上面的空间大小选择区域右侧拉到头, 点击 “Resize/Move”, 就可以了, 应该会有个提示提醒你如果操作不当可能会导致引导失败什么的, 点OK, 然后应用设置, 就可以了.
重启之后, 分区大小已扩增~
没有图的原因是因为我的Manjaro在扩容后就去更新了….一时半会儿好像更不完的样子, 所以就不重新操作截图了…如果有什么地方不明白可以在下方留言