安利(一些废话)

由于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, 找到了一大堆官网的提问, 进去一看好多都是跟我一样的问题, 于是乎…问题解决.

附上参考:

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, 然后应用设置, 就可以了.

重启之后, 分区大小已扩增~

没有图的原因是因为我的Manjaro在扩容后就去更新了….一时半会儿好像更不完的样子, 所以就不重新操作截图了…如果有什么地方不明白可以在下方留言

如果觉得我的文章对你有用,请随意赞赏