Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tanchao90/f85b5ffd140795fc11d1c8ec04b4100c to your computer and use it in GitHub Desktop.
Save tanchao90/f85b5ffd140795fc11d1c8ec04b4100c to your computer and use it in GitHub Desktop.
扩展VirtualBox中Ubuntu虚拟机的分区大小,通过增加新分区的方式
## 参考:
[VirtualBox如何扩展虚拟机Ubuntu的硬盘容量?](http://blog.csdn.net/ouyang_peng/article/details/53261599)
下面是按上述教程的实践总结;
## 我的环境:
- Windows 10
- VirtualBox 5.1.6 r110634 (Qt5.5.1)
- Ubuntu 16.04 LTS
## 通过增加新分区扩展
1. 修改虚拟机文件,增加容量
```cmd
# 以下命令在 Windows 10 x64 测试ok
# 下面用 VBoxManage 代替 "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
# 用于运行 VirtualBox 的相关命令
# 路径中有空格时需要用 “双引号” 括起来
# 列出注册路径下所有的虚拟机
> VBoxManage list hdds
# vmdk 文件转 vdi 文件
> VBoxManage clonehd "path\filename.vmdk" "path\new_filename.vdi" --format vdi
# 扩容 resize 50G
> VBoxManage modifyhd UUID --resize 51200
# vdi 文件转 vmdk 文件
> VBoxManage clonehd "path\filename.vdi" "path\new_filename.vmdk" --format vmdk
# 修改完之后,在 VirtualBox 中 “修改存储”,切换到修改之后的 vmdk 文件
# 此时物理扩容完成,需要进入下一步,进入系统进行磁盘分区和格式化
```
2. 磁盘分区和磁盘格式化
这一步需要开机进入系统,在系统内操作
- Windows虚拟机,进入之后使用系统内置的 **磁盘管理** 工具分配
- Linux虚拟机,通过后面的命令操作
```shell
# 查看硬盘使用情况
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 21G 13G 7.0G 64% /
...
# 查看分区信息
$ sudo fdisk -l /dev/sda
...
# 1. 新建分区
$ sudo fdisk /dev/sda
首先输入命令:n(添加新分区),之后回车
接着输入命令: p(表示添加主分区)
剩下步骤全按回车默认,注意分区号的选择,记住分区号,后面会用到
最后输入命令: w,保存分区信息
# 2. 再次查看分区信息,就会看到刚才新建的分区
$ sudo fdisk -l /dev/sda
# 3. 此时需要 `重启系统`
# 这样系统才能识别到新建的分区,否则后面的格式化会失败
# 也可以试着执行 `partprobe` 命令,不过我这边没起作用
# 4. 格式化分区
# 注意 `sda4` 是刚才新建的分区,4 就是刚才选的分区号,避免搞错
$ sudo mkfs -t ext4 /dev/sda4
# 5. 挂载分区
# 创建目录: /home/username/sda4
$ sudo mkdir sda4
# 将分区 /dev/sda4 挂载到 /home/username/sda4
$ sudo mount /dev/sda4 /home/username/sda4
# 6. 设置开机自动挂载
# vim 修改 /ect/fstab 文件
$ sudo vim /etc/fstab
# 增加下面一行内容
/dev/sda4 /home/username/sda4/ ext4 defaults 0 1
# 7. 扩容完成
# 再次查看硬盘使用情况,即可看到刚才新建的分区
$ df -h
...
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment