调整Virtual Box硬盘大小

时间:2022-09-23 09:13:16

我在Mac下使用Virtual Box安装Win7的虚拟机。因为之前装过Win7的32位版。现在因为机器内存升到8G,就可以划出4G来支持Win7虚拟机。所以就重新安装了Win7的64位版。在创建虚拟机的硬盘时,我选择了Virtual Box的默认容量20G。我看到Virtual Box告知的是这个硬盘容量是可以动态调整的,谁知道这其实是一个误导。这里所谓的动态调整并不能超过设置的值,即我设置的20G是存储分配的上限。所谓动态分配其实是一种节约磁盘空间的做法。意思是当我们在创建虚拟机的硬盘时,可以设置足够大。只要这个硬盘没有用完,这些空间是可以被主机所共享的。而Win7的64位版所占用的硬盘空间又远远超过了32位版。在安装了操作系统后,剩下的空间就不多了。在安装了SQL Server 2008后,再想完整安装Visual Studio 2010,空间就不够了。我之前认为硬盘容量可以动态调整,所以在Visual Studio提示空间容量不够时,我仍然选择“继续”,结果安装错误。

那么,该怎么解决这一问题呢?重新安装吗?那就实在太悲催了。虽然现在并没有安装什么软件,但安装操作系统和数据库就挺耗时的。于是,我试着调整Virtual Box的硬盘大小。可是在Virtual Box的管理工具中,并没有找到修改硬盘大小的选项。通过Google,我找到了通过命令行修改磁盘空间的办法,前提是Virtual Box的版本必须是4.0及以上。

这个命令:

VBoxManage modifyhd uuid –-resize 40960

这里的40960就是你要调整的容量,即40G。命令中的uuid也可以用vid文件名代替。不过我的文件名不幸包含了空格。或许通过双引号或"/“可以支持空格的文件名,但我没有尝试,因为使用uuid是更好的做法。至于命令行的输入,在Mac下,直接在Terminal下输入即可。因为安装了Virtual Box时,会将VBoxManage添加到路径中,Terminal是可以识别该命令的。

要使用uuid,则需要获得当前虚拟机的uuid。在管理工具中无法获得,因此,我们应通过命令行获得:

VBoxManage list hdds

该命令会显示所有的虚拟硬盘。你可以通过Location来判断你要调整的硬盘。获得uuid,就可以通过modifyhd调整硬盘大小了。注意,在调整硬盘之前,一定要先关闭该虚拟机。

CentOS下调整分区大小:

但是直接用extend命令扩展分区是不行的,会提示没有剩余空间。只是因为当初划分磁盘空间的时候逻辑卷组VolGroup00的大小已经固定了。卷组的大小确定后是不能更改的。只有通过往卷组中添加物理卷来扩大卷组的空间。而物理卷要由新的 分区/磁盘 来创建。

因为概念比较多,所以听起来有些乱。总结一下思路:

利用剩下的*空间 创建一个物理分区-->将这个物理分区装换为物理卷-->把这个物理卷添加到要扩展的卷组中-->然后才能用extend命令扩展此卷组中的逻辑卷 。。。还是有些乱。。。

结合上面的例子的具体操作步骤为:

1.首先要再创建一个物理分区

(使用fdisk   /dev/sda,选择n来创建一个新的分区比如sda3,主分区还是逻辑分区对此例子无所谓)

完成后需要重新启动。

可以用fdisk -l命令来查看已有分区

调整Virtual Box硬盘大小[root@localhost   ~]#   fdisk   -l 
调整Virtual Box硬盘大小 
调整Virtual Box硬盘大小 Disk   /dev/sda:   10.7   GB,   10737418240   bytes 
调整Virtual Box硬盘大小 255   heads,   63   sectors/track,   1305   cylinders 
调整Virtual Box硬盘大小 Units   =   cylinders   of   16065   *   512   =   8225280   bytes 
调整Virtual Box硬盘大小 
调整Virtual Box硬盘大小       Device   Boot             Start                   End             Blocks       Id     System 
调整Virtual Box硬盘大小 /dev/sda1       *                       1                     13             104391       83     Linux 
调整Virtual Box硬盘大小 /dev/sda2                             14                   522           4088542+     8e     Linux   LVM 
调整Virtual Box硬盘大小 
调整Virtual Box硬盘大小

用fdisk  /dev/sda命令,选择"n"创建新分区,主分区,逻辑分区对这个例子来说都可以,"w"保存。

重启机器生效。

#fdisk  /dev/sda

#n

#w

#reboot

2.接下来创建sda3分区   建为物理卷   (pvcreate   /dev/sda3)

/dev/sda3这个路径可以参照 pvdisplay这个命令中sda1的路径,一般都是在dev下。

#pvcreate   /dev/sda3

3.为卷组VolGroup00添加新的物理卷sda3来增大卷组的容量   (vgextend   VolGroup00   /dev/sda3)

用vgdisplay来查看卷组名称。

#vgdisplay

#vgextend   centos   /dev/sda3

4.现在才能扩展逻辑卷的大小   (lvextend   -L   +2G   /dev/VolGroup00/LogVol00)

用lvdisplay查看逻辑卷绝对路径

#lvdisplay

#lvextend   -L   +2G   /dev/centos/root

*5.最后要使用resizefs2命令重新加载逻辑卷的大小才能生效。   (resize2fs   /dev/VolGroup00/LogVol00)或者(xfs_growfs /dev/VolGroup00/LogVol00)

#resize2fs   /dev/centos/root

如果不用这个命令的话,你会发现用df -h命令查看扩展的逻辑卷大小还是原来的值,没有发生变化。即使重启也不会变,所以一定要执行 resize2fs命令。

==================================================================

Xfs是CentOS7.0的默认文件系统类型,而不同文件系统类型对应的创建、检查、调整命令不同,要注意区分。

调整Xfs分区大小(只能增大):

lvextend -L 120G /dev/mapper/centos-root  # 增大至120G

lvextend -L +20G /dev/mapper/centos-root  # 增加20G

xfs_growfs /dev/mapper/centos-root        # 执行调整

注:ext2/ext3/ext4的调整命令是resize2fs,如下:

lvextend -L 120G /dev/mapper/centos-root  # 增大至120G

lvextend -L +20G /dev/mapper/centos-root  # 增加20G

lvreduce -L 50G /dev/mapper/centos-home   # 减小至50G

lvreduce -L -8G /dev/mapper/centos-home   # 减小8G

resize2fs /dev/mapper/centos-root         # 执行调整

修复命令:

xfs_repair   /dev/sdb1

注:以下分别是Jfs, Ext2, Ext3的修复命令:

fsck.jfs  -y /dev/sdb1

fsck.ext2 -y /dev/sdb1

fsck.ext3 -y /dev/sdb1

调整中遇到的问题:

1、对Xfs文件系统使用mke2fs命令后变为ext2,需要修改文件/etc/fstab中对应的文件系统类型

2、不同文件系统类型对应的创建、检查、调整命令不同,要注意区分

==================================================================

补记:当我通过modifyhd命令调整了磁盘空间后,通过管理工具查看vid文件,容量确实发生了变化,达到了预期的结果。于是我认为可以高枕无忧了。哪知道在Virtual Box下打开该虚拟机后,看到C盘的空间仍然是20G。这让我不禁郁闷不已。于是我想,可能在Virtual Box中还有什么设置。可是看了所有Virtual Box的管理菜单,都没有能够找到。我甚至在Storage中,移除对vid文件的引用,并重新加载,仍然没有变化。我又尝试着重新启动Virtual Box,甚至重新启动计算机,还是如此。究竟问题出在哪儿呢?正在百思不得其解,甚至打算删除该虚拟机,重新安装。可是想到还要去安装操作系统,以及相关软件,就不寒而栗。于是打算退而求其次,在Virtual Box中为其增加一块磁盘。结果,增加之后,启动虚拟机,发现并没有在计算机中增加新的磁盘。突然灵机一动,想到是否是计算机管理中的磁盘分区管理的问题呢。于是,打开Win7"计算机管理”中的“磁盘管理”,发现新增加的磁盘显示为未分配,而原来的磁盘容量赫然为40G,其中却有20G未曾分配。于是选择扩展磁盘,失踪的20G磁盘果然被找了回来。Virtual Box的硬盘大小调整终于取得成功。

因此,通过Virtual Box命令对磁盘进行调整后,一定要记得在Win7操作系统中扩展磁盘。这就好似你为你的计算机新添加了一块磁盘一样,需要进行同样的操作。

调整Virtual Box硬盘大小的更多相关文章

  1. 调整KVM虚拟机硬盘大小

    KVM虚拟机的硬盘映像默认存放在“/var/lib/libvirt/images/”中,先查看你的硬盘映像格式是不是RAW格式: qemu-img info /var/lib/libvirt/imag ...

  2. virtual box硬盘扩容 不是加一块硬盘

    先执行 VirtualBox list hdds 查看当前 VirtualBox 管理的虚拟磁盘. 获取磁盘的 uuid. 结果如下 D:\Program Files\Oracle\VirtualBo ...

  3. virtual box 改变已经创建的虚拟系统分配的硬盘

    启动cmd,进入virtualbox安装的目录 :cd E:\Program Files\Oracle\VirtualBox 然后输入VBoxManage.exe list hdds ,可以看到 D: ...

  4. Virtual Box常用指令

    以下操作需在命令行里将当前路径设为 Virtual Box安装目录 1. 调整磁盘大小(只能调整动态分配的.vdi格式文件) VBoxManage modifyhd "xxx.vdi&quo ...

  5. Linux入门搭建可视化桌面环境小合集virtual box centOS7.10

    常用命令: 关联主机与虚拟机(方便文件共享): # sudo mount -t vboxsf share(主机文件夹名) /usr/share(虚拟机内自创) Linux shell进入root模式: ...

  6. Virtual box中Ubuntu虚拟机磁盘碎片整理和空间清理方法

    虚拟机中,随着不断的使用,增加大文件(例如日志,视频和软件版本),虽然在虚拟机中手动删除了,但是虚拟机占用的空间并不会随之减少,需要手动清理一下. 这里介绍一种Virtual box中Ubuntu碎片 ...

  7. Virtual Box下安装Oracle Linux 6.3

    Oracle Linux 6.3已经公布快2年了,其功能有非常大的提升,增强了KVM,文件卷的在线resizing,LVM支持 raid4, 5, 6.支持很多其它的虚拟CPU数以及更大内存,详细能够 ...

  8. Virtual Box 新建一个虚拟机安装系统(补充:WIN7 64 bit 系统虚拟机无法安装 64 bit 系统问题)

    1.安装Virtual Box好后,点击新建 2.配置内存大小,这个根据自己需要配置就好 3.创建虚拟硬盘 这里选择固定分配.动态分配都可以,接下来就分配硬盘大小了 4.新建好后我们点击刚才建立的虚拟 ...

  9. 为 Virtual Box 中的 CentOS 6.6 配置本地DVD光盘做yum软件源

    因为virtual box 中的centos配置host-only共享win7上网,配置失败,所以只能使用Centos的 DVD 光盘来配置yum软件源.不然就没得完了. 1. 首先要在virtual ...

随机推荐

  1. Servlet和CGI的区别

    Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销 ...

  2. java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice

    今天在使用动态代理时,遇到了如下问题,报错 java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice 下面是完整的报错信息: 一月 , :: ...

  3. Hibernate日常应用的相关问题

    1.在控制台中显示Hibernate打印的SQL中的参数 默认情况下,hibernate的sql中都是以问号代表参数,并没有显示参数的真实值,但是也不是做不到,只需要两步配置就可以显示出参数的真实值了 ...

  4. 记redis的一个测试

    现有020的系统架构走库存,取券通过Fetch前n条来实现买n张优惠券,但此做法在高并发时有严重的性能问题,性能问题主要体现在数据库. 为了优化此性能,系统改为redis,走队列模式,即生产者消费者. ...

  5. poj 1149 pigs(最大流)

    题目大意:迈克在农场工作,农场有 m 个猪舍,每个猪舍有若干只猪,但是迈克不能打开任何一间猪舍.有 n 个顾客前来购买,每个顾客有最大的购买数量,每个顾客可以购买某些猪舍的猪,且顾客可以打开这些猪舍, ...

  6. hdu1507最大匹配

    题意:给出n*m的矩阵方块,某些方块是ponds,这些方块不能出售,然后能出售的是1*2的方块 要求求出有多少块1*2的方块能够出售,并输出这些方块的坐标(specia judge) 关键是怎么建出二 ...

  7. Android 短信模块分析(三) MMS入口分析

    MMS入口分析:      在Mms中最重要的两个Activity,一个是conversationList(短信列表) ,另一个就是ComposeMessageActivity(单个对话或者短信).每 ...

  8. js在关闭页面前弹出确认提示【转载】

    最近项目中出现个bug,就是导出数据后,会提示确认导航,其实实际需求并不需要这个提示,可能是之前遗留的问题.查了下资料是在触发了onbeforeunload事件,那么剩下的就是代码组织问题了. 众所周 ...

  9. es索引管理工具-curator

    elasticsearch-curator  是官方收购的开源社区周边产品,用来管理es的索引和快照. 官方文档:https://www.elastic.co/guide/en/elasticsear ...

  10. UVA1626-Brackets sequence(动态规划基础)

    Problem UVA1626-Brackets sequence Time Limit: 4500 mSec Problem Description Input The input begins w ...