[转]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,可以看到问题解决。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2016-11-30 SCP测试服务器的上行/下行带宽
2016-11-30 编写Linux/Unix守护进程
2016-11-30 Setup a private http/nginx based GIT server