[转]virtualbox 虚拟机迁移 和磁盘扩容
原文: https://www.cnblogs.com/coodream2009/p/8578216.html
https://www.cnblogs.com/jaysonteng/p/13443258.html
扩容: https://www.cnblogs.com/jeasonit/p/11684651.html
1. 迁移
2. 扩容
3. fdisk -l查看磁盘信息时报错:GPT PMBR size mismatch will be corrected by w(rite)错误
问题: 1. 是否可以写成脚本? 以后类似操作就更方便了?
————————————————————————————————————————
VirtualBox是常用的虚拟机管理软件,和VMware一样,用的很多。在使用过程中,有的时候需要对虚拟机进行迁移。比如我们原来的服务器,使用的win10操作系统,上面利用VirtualBox安装了多个虚机作为服务器,tomcat服务器,virtuoso数据库服务器,mysql服务器等,由于win10物理机出现了问题,需要将虚机迁出,所以尝试着将虚机迁移到另一台win2008的系统中。
VirtualBox保存虚机数据的是vdi文件,简单来说就是拷贝vdi文件,然后在新的物理机上,安装VirtualBox打开这个vdi文件。具体步骤如下。
1 获取vdi文件
每个虚机都对应一个或多个vdi文件,在VirtualBox中的全局设置,可以查看虚机vdi文件的存放目录,每个虚机的数据都保存在以虚机名称为文件夹里面。在这个虚机根目录可以看到vdi文件,这个vdi文件可以看作虚机的基础数据。如果虚拟保存了快照(备份),还有一个snapshot目录,里面保存的是虚机快照。快照的vdi可以看作是虚机的状态信息,基础数据和状态信息加在一起是虚机的所有数据,一般我们可以关闭虚机,然后再删除快照,这样就剩下根目录的vdi,也就是虚机的vdi数据,这个vdi就是我们要的vdi。
2 克隆vdi数据
如果直接拷贝vdi数据,在新的VirtualBox中不能打开,因为每个vdi文件都包含了一个uuid的数据,如果直接拷贝,uuid在新的VirtualBox中是不能用的,所以会打开失败,我们需要给在原来vdi的基础上,生成新的vdi数据,包含新的uuid,可以在VirtualBox中打开。这个包含新uuid的vdi数据可以通过VirtualBox命令生成。
此处用了克隆的方法,也可以直接拷贝过去,然后再通过VirtualBox命令处理。克隆的方法,进入cmd命令行,然后进入VirtualBox的安装目录,比如VitualBox的安装目录是C:\Program Files\Oracle\VirtualBox,原有vdi文件在d盘,生成新的vdi放到e盘。命令为C:\Program Files\Oracle\VirtualBox>vboxmanage.exe clonehd "d:\xxx.vdi" "e:\xxx.vdi" (注:双引号可以不用)。回车之后出现0%...,需要点时间才能生成vdi文件,10多G的数据可能要10来分钟时间。执行完成后会出现0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%类似的信息。这样克隆vdi数据文件的工作完成了。
3 利用vdi数据创建虚机
在新的VirtualBox中创建新的虚机,给虚机起个名字,选择操作系统。点击下一步,使用已有vdi文件创建虚机,选择刚生成的vdi文件创建。
这样虚机的迁移任务就完成了。
——————————————————————————————————————磁盘扩容-------
VirtualBox虚拟机在使用的过程中,有时会遇到磁盘大小不够用,如果设置了”动态分配存储“,可以通过下面的方法对磁盘的空间进行手动扩展。
1.启动CMD命令行,进入VirtualBox的安装目录。如
cd E:\Program Files\Oracle\VirtualBox
2.查看需要修改的虚拟硬盘:
----
我们看到共有三个虚拟磁盘,我们要修改图中第一个,它的空间大小为8G,UUID:e8e2c341-b3b1-49db-ad2d-ab4e6b08bc5a
2. 调整磁盘空间为15G:
E:\Program Files\Oracle\VirtualBox>VBoxManage.exe modifyhd e8e2c341-b3b1-49db-ad2d-ab4e6b08bc5a --resize 150000%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
——————————————————————————————
问题产生原因:
在对虚拟机扩容时候,由于linux系统没有对其磁盘信息进行更新,导致了磁盘实际容量和linux系统容量不一致
报错的地方:
1、使用sudo fdisk -l查看磁盘信息时报错:GPT PMBR size mismatch will be corrected by w(rite)错误
2、使用sudo fdisk /dev/sda 进行虚拟机磁盘分区扩容时报错:明明有多余的空间,却显示value out of range
解决办法:
# 执行命令:
sudo parted -l
# 然后输入:
Fix
再次执行sudo fdisk -l,可以看到问题解决。