问题和环境说明

环境:

  1. 主机:Ubuntu 15.10
  2. 客户机:Windows 7 x64
  3. VirtualBox:5.0.10
  4. 虚拟机磁盘类型:VDI(VirtualBox磁盘映像)

问题:

在虚拟机里,win7系统C盘空间不足,且虚拟机的磁盘映像为动态磁盘映像VDI,可以后期修改磁盘大小,问题是如何扩大原本的磁盘文件?

简要步骤

  1. 如果原先的磁盘文件为VMDK格式的,则需要使用VBox管理工具转换为VDI格式
  2. 使用VBox管理工具调整磁盘大小,以便后面的分区扩容
  3. 使用GParted工具修改文件系统,将空闲的空间分配给磁盘分区

详细步骤

  1. 查看虚拟机的磁盘的文件格式,如果不是*.vdi,则将磁盘格式从*.vmdk转为*.vdi。打开Ubuntu终端,进入VBox磁盘文件所在文件夹

说明:虚拟机所在的磁盘文件位置查看方式为设置-存储下的明细位置,因为我的系统之前是做了快照,所以不仅在明细位置存在一个*.vdi文件,而且在磁盘文件所在目录下的Snapshots文件夹也存在多个备份的*.vdi文件,我修改的是位于Snapshots目录下最新的*.vdi文件

$ cd VirtualBox\ VMs/win7_linux/Snapshots/

$ VBoxManage clonehd --format VDI "vmdk磁盘文件名" "要创建的vdi文件名"
  1. 重新调整文件大小,打开终端进行*.vdi文件所在目录。例如,调整磁盘文件大小为60GB,即61440MB
$ VBoxManage modifyhd "vdi文件名" --resize 61440
  1. 对于原先磁盘文件格式为vmdk的,则需要重新设置虚拟机的磁盘位置,将其路径改为新创建的磁盘文件*.vdi。虚拟机-设置-存储-控制器:SATA-右键*.vmdk文件-删除盘片-添加虚拟硬盘-选择你最新创建的*.vdi文件
  2. 到http://gparted.sourceforge.net/download.php*下载"gparted-live-x.xx.x-x-ixxx.iso"文件,并且将其iso文件加载到虚拟机的光驱。虚拟机-设置-存储-控制器-添加最新下载的\.iso文件
  3. 运行虚拟机,虚拟机将会从光驱文件启动。一直选择Enter直到进入GPart系统桌面。启动gpart程序,默认是开机自启动的
  4. 按照下面的方法扩展分区:
  • 选择你要扩容的分区,右键点击Move/Resize
  • 简单的可以直接拖动上面的滑动块,将右边的所有空闲分区分配给当前分区。
  • 灵活地,可以调整下面的数字,第一个为前面要空闲的大小,中间为新的分区大小,后面为新分区后面空闲分区大小。
  • 点击上面工具栏的Apply按钮
  • 关闭虚拟机,并将*.iso光驱文件移除
  • 重新打开虚拟机,如果你的客户机为win7系统,则直接进入win7系统,系统会自动识别新增的分区,并且在自动合并后重启;否则进行第7步
  1. 如果客户机为Linux系统则需要手动合并新分区
  • lvm vgdisplay
$ lvm vgdisplay
=> Free  PE / Size       122880 / 480.00 GiB
  • lvm lvdisplay
$ lvm lvdisplay /dev/VolGroup/lv_root
=> Current LE             3978
  • 计算上面值的和,此时,122880 + 3978 = 126858,126858将会在下一条命令中用到
  • lvm lvresize
$ lvm lvresize -l 126858 /dev/VolGroup/lv_root
  • resize2fs
$ resize2fs     /dev/VolGroup/lv_root
  • lsblk
$ lsblk
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
NAME                        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sr0                          11:0    1  1024M  0 rom  
sda                           8:0    0   500G  0 disk 
+¦sda1                        8:1    0   500M  0 part /boot
L¦sda2                        8:2    0 499.5G  0 part 
  +¦VolGroup-lv_root (dm-0) 253:0    0   480G  0 lvm  /
  L¦VolGroup-lv_swap (dm-1) 253:1    0     4G  0 lvm  [SWAP]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  • 通过创建一个大的文件检查文件系统是否扩容成功
$ fallocate -l 480G /test_file
  • 移除测试文件
$ rm -rif /test_file