问题和环境说明

环境:

  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文件名"
  2. 重新调整文件大小,打开终端进行*.vdi文件所在目录。例如,调整磁盘文件大小为60GB,即61440MB


    $ VBoxManage modifyhd "vdi文件名" --resize 61440
  3. 对于原先磁盘文件格式为vmdk的,则需要重新设置虚拟机的磁盘位置,将其路径改为新创建的磁盘文件*.vdi。虚拟机-设置-存储-控制器:SATA-右键*.vmdk文件-删除盘片-添加虚拟硬盘-选择你最新创建的*.vdi文件

  4. http://gparted.sourceforge.net/download.php下载"gparted-live-x.xx.x-x-ixxx.iso"文件,并且将其iso文件加载到虚拟机的光驱。虚拟机-设置-存储-控制器-添加最新下载的*.iso文件

  5. 运行虚拟机,虚拟机将会从光驱文件启动。一直选择Enter直到进入GPart系统桌面。启动gpart程序,默认是开机自启动的

  6. 按照下面的方法扩展分区:

    • 选择你要扩容的分区,右键点击Move/Resize

    • 简单的可以直接拖动上面的滑动块,将右边的所有空闲分区分配给当前分区。

      • 灵活地,可以调整下面的数字,第一个为前面要空闲的大小,中间为新的分区大小,后面为新分区后面空闲分区大小。

    • 点击上面工具栏的Apply按钮
    • 关闭虚拟机,并将*.iso光驱文件移除
    • 重新打开虚拟机,如果你的客户机为win7系统,则直接进入win7系统,系统会自动识别新增的分区,并且在自动合并后重启;否则进行第7步
  7. 如果客户机为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

【原创】VirtualBox 磁盘扩容教程的更多相关文章

  1. VirtualBox上Centos7磁盘扩容

    VirtualBox上Centos7磁盘扩容 非常实用 点击直达

  2. [CentOS7]Windows下VirtualBox虚拟机磁盘扩容

    目录 虚拟系统磁盘文件扩充 修改分区 LVM更新 扩容文件系统 参考资料 虚拟系统磁盘文件扩充 命令操作 命令行运行VBoxManage,modifyhd扩容需要文件格式为.vdi,如为.vmdk,需 ...

  3. 使用Oracle VM VirtualBox创建虚拟机教程

    使用Oracle VM VirtualBox创建虚拟机教程                                                                       ...

  4. VirtualBox下扩容vdi文件

    VirtualBox下扩容vdi文件 版本:VirtualBox 5.0.14 之前VirtualBox创建的虚拟机的vdi文件过小,无法满足新的实验需求,扩容vdi文件的方法如下: 比如我这里将RH ...

  5. 故障处理:磁盘扩容出错:e2fsck: Bad magic number in super-block while trying to open /dev/vdb1

    按照阿里云官网教程对云服务器进行磁盘扩容,使用fdisk重新分区,最后使用e2fsck和resize2fs来完成文件系统层面的扩容 在执行“e2fsck -f /dev/vdb1”命令时报错,如果你的 ...

  6. Oracle VM VirtualBox虚拟机导出教程

    Oracle VM VirtualBox虚拟机导出教程 | 浏览:583 | 更新:2015-01-31 11:21 1 2 3 4 5 6 7 分步阅读 有时我们需要把Oracle VM Virtu ...

  7. VMware下对虚拟机Ubuntu14系统所在分区sda1进行磁盘扩容

    VMware下对虚拟机Ubuntu14系统所在分区sda1进行磁盘扩容 一般来说,在对虚拟机里的Ubuntu下的磁盘进行扩容时,都是添加新的分区,而并不是对其系统所在分区进行扩容,如在此链接中http ...

  8. SQL Server 磁盘空间告急(磁盘扩容)转载

    一.背景 在线上系统中,如果我们发现存放数据库文件的磁盘空间不够,我们应该怎么办呢?新买一个硬盘挂载上去可以嘛?(linux下可以直接挂载硬盘进行扩容),但是我们的SQL Server是运行在Wind ...

  9. VirtualBox安装Ubuntu教程

    1.VirtualBox虚拟机安装,及VirtualBox安装Ubuntu教程VirtualBox版本为VirtualBox-4.3.12-93733-Win.exe,Ubuntu版本为ubuntu- ...

随机推荐

  1. php-fpm 配置中pm的选择

    另附豆瓣技术贴:https://www.douban.com/note/315222037/ 1.php-fpm优化参数介绍他们分别是:pm.pm.max_children.pm.start_serv ...

  2. Win7 VS2017编译PBR渲染引擎google filament

    按照官方说明 https://github.com/google/filament 前置工具包 Windows 10 SDKVisual Studio 2017Clang 6Python 3.7Git ...

  3. 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP

    不管是app的下载链接还是普通文件的链接在微信内置浏览器或者QQ内置浏览器都会被屏蔽.这是微信对第三方下载域名实施的拦截政策.被拦截了用户在微信内打开就会提示“已停止访问该网页”. 那么当我们遇到这个 ...

  4. Python开发——10.面向对象编程进阶

    一.isinstance(obj,cls)和issubclass(sub,super) 1.isinstance(obj,cls) 判断obj是不是由cls产生的类 2.issubclass(sub, ...

  5. idea实现自动sql-generator的使用

    1.实现步骤:  9.1 加载插件 <!-- mybatis逆向工程jar包 --> <dependency> <groupId>org.mybatis.gener ...

  6. [小结] 中山纪念中学2018暑期训练小结(划掉)(颓废记)-Day10

    [小结] 中山纪念中学2018暑期训练小结(划掉)(颓废记)-Day10 各位看众朋友们,你们好,今天是2018年08月14日,星期二,农历七月初四,欢迎阅看今天的颓废联编节目 最近发生的灵异事件有 ...

  7. 画PCB

    1.AD16Design中Boardshape没有redefine board shape选项来修改板子的形状:{ 解决办法:在英文输入模式下按“1”键整个界面会变绿,此时就会有redefine bo ...

  8. Node.js中实现套接字服务

    后端服务的一个重要的部分是通过套接字进行通信的能力. 套接字允许一个进程通过一个IP地址和端口与另一个进程通信 同一个服务器上的两个不同进程的进程间通信(IPC)或者访问一个完全不同 的服务器上运行的 ...

  9. java基础0615

    1. 1)2)   1)输出:Base  2)编译成功,但没有输出. 2. 编译成功,但没有输出. 3. 只有12行的话,不会新建文件.需要create~~ 4. public static void ...

  10. 如何高效地写CSS--等以后有空多加总结一下

    CSS写的并不多,如果从零开始的项目,自己一定想搬砖来得容易点.CSS编写一定有其工程化的方法,来时编写更加有效率. 考虑将CSS的预处理LESS.Sass或Stylus引入,或者将CSS的后处理Po ...