Virtualbox Vagrant 迁移与恢复

news2024/9/22 5:26:53

前 言

window10电脑重新安装C盘。重装前正常使用的VirtualBox虚拟机,启动失败,先是启动报各种找不到{uuid.vmdk}文件的错误,使用原来的虚拟机配置文件虽然能正常启动,但是关闭虚拟机后,xxx.vbox配置文件的快照顺序又被自动清掉,导致又不能正常使用。 折腾了好久,特此记录一下。

恢复过程

1、备份文件:

  1. 备份C盘VirtualBox.xml全局配置文件,比如我的目录:C:\Users\HZL\.VirtualBox\VirtualBox.xml
  2. 备份虚拟机文件,比如我的: E:\Program Files (x86)\Oracle\VirtualBox VMs\HZL_default_1591694534017_91720\
  3. 如果使用vagrant up的方式启动的VirtualBox,则还需要备份C:\Users\HZL\.vagrant
    C:\Users\HZL\.vagrant.d
    C:\Users\HZL\.Vagrantfile vagrant 配置文件
    备份目录

备份的虚拟机文件目录

2、重新安装Virtualbox后,将 VirtualBox.xml文件拷贝覆盖原文件

C:\Users\HZL\.VirtualBox
C:\Users\HZL\.vagrant
C:\Users\HZL\.vagrant.d

3、Virtualbox界面,选择"管理——虚拟介质管理器",手动添加注册虚拟介质

注意: 有快照的话,需要按照层级先后顺序,依次注册。如果不记得顺序的话,顺序可以参考 “HZL_default_1591694534017_91720.vbox”配置文件或者

C盘的VirtualBox.xml全局配置文件,里面有写原来的介质顺序。

类似这样:

virtualBox.xml全局配置文件片段

按照顺序注册添加后,直接点击关闭(不要点“刷新”,否则白填),效果如下:

注册介质
注册时完成,示意图如下,状态显示“已关闭”,右侧注册的快照信息正常显示,代表成功。注册虚拟机
(我之前缺少了注册的这一步,导致我的虚拟机只能正常启动一次,等关闭了虚拟机后,我的“HZL_default_1591694534017_91720.vbox”配置文件快照顺序,就会被覆盖掉,丢失了快照绑定顺序就报错各种找不到{uuid.vmdk},导致启动不了。"xxx.vbox"配置文件注释也说明了,不要手动修改该文件,还是要以图形化界面管理来自动修改xxx.vbox配置文件比较好靠谱,所以这一步不能缺少。)

4、Virtualbox界面,选择"控制-注册”,注册虚拟机

如果你有提前打开VirtualBox.xml文件,注册完成之后,你就会发现此时C:\Users\HZL\.VirtualBox\VirtualBox.xml VirtualBox.xml全局配置文件也会随之修改更新。

5、Virtualbox界面,选择"设置——存储 & 系统启动顺序 "【缺少这步,启动虚拟机会报错FATAL:NO bootable medium found!System halted.】

左侧选中某个虚拟机,点击“设置”,进入虚拟机设置图形化界面,存储——控制器——添加。

设置存储介质硬盘

选中,刚才注册添加的虚拟介质硬盘

添加注册虚拟介质硬盘
我这里添加绑定了2块虚拟硬盘
控制器添加虚拟硬盘,绑定关联

设置 ——系统 ,设置系统启动加载顺序。VirtualBox默认光盘、软盘启动优先,建议:设置为硬盘启动优先。

设置系统加载顺序

6、启动虚拟机成功

配置完成以上步骤以后,就算完成了,就算反复重启虚拟机,也能正常启动,关键还是图形化界面把快照和介质相关的信息固定到了
HZL_default_1591694534017_91720.vbox”和C:\Users\HZL\.VirtualBox\VirtualBox.xml 文件中。

7、恢复 vagrant up 方式启动虚拟机

  1. 安装 vagrant
  2. 拷贝并覆盖
    C:\Users\HZL\.vagrant
    C:\Users\HZL\.vagrant.d
    C:\Users\HZL\.Vagrantfile vagrant 配置文件

如果没有覆盖这些文件,你发现vagrant up 启动的是新的虚拟机示例,跟你原来的虚拟机无法绑定。

# 启动默认的虚拟机
$ vagrant up 

# 启动指定虚拟机
$ vagrant up web1

# 关闭指定虚拟机
$ vagrant halt web1

设置 vagrant 多实例启动的配置模板。

备份C:\Users\HZL\.Vagrantfile 文件,并修改它,
如下模板,定义了3个实例,

Vagrant.configure("2") do |config|
 
   config.vm.define "default" do |default|
    default.vm.box = "centos7"
    default.vm.network "private_network", ip: "192.168.56.10"
    default.vm.host_name = "default"
    default.vm.synced_folder "E:/Program Files (x86)/Vagrant/share_data", "/vagrant_data",
      type: "rsync",
      rsync__args: ["--verbose", "--rsync-path='sudo rsync'", "--archive", "--delete", "-z"]
    default.vm.provider "virtualbox" do |v|
         v.memory = "4096"
         v.cpus = 1
  end
end
 
 
  config.vm.define "web1" do |web1|
    web1.vm.box = "centos7"
    web1.vm.network "private_network", ip: "192.168.56.11"
    web1.vm.host_name = "web1"
    web1.vm.synced_folder "E:/Program Files (x86)/Vagrant/share_data", "/vagrant_data",
      type: "rsync",
      rsync__args: ["--verbose", "--rsync-path='sudo rsync'", "--archive", "--delete", "-z"]
    web1.vm.provider "virtualbox" do |v|
         v.memory = "4096"
         v.cpus = 1
  end
end
  
  config.vm.define "web2" do |web2|
    web2.vm.box = "centos7"
    web2.vm.network "private_network", ip: "192.168.56.12"
    web2.vm.host_name = "web2"
    web2.vm.synced_folder "E:/Program Files (x86)/Vagrant/share_data", "/vagrant_data",
      type: "rsync",
      rsync__args: ["--verbose", "--rsync-path='sudo rsync'", "--archive", "--delete", "-z"]
    web2.vm.provider "virtualbox" do |v|
         v.memory = "4096"
         v.cpus = 1
    end
  end  
  
end 

多实例启动时,指定别名启动,命令分别为:
vagrant up default
vagrant up web1
vagrant up web2

启动后,使用 VirtualBox管理器查看,已经有多个实例存在:
多实例界面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/401282.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL主从复制,读写分离

目录 一、MySQL主从复制介绍 MySQL复制过程分成三步 二、主库配置master 1、步骤1 2、第二步:重启Mysql服务 3、第三步:登录Mysql数据库,执行下面SQL 4、第四步:登录Mysql数据库,执行下面SQL,记录下结果中File和…

vue2 使用 cesium 【第二篇-相机视角移动+添加模型】

vue2 使用 cesium 【第二篇-相机视角移动添加模型】 搞了一阵子 cesium,小白入门,这东西很牛逼,但是感觉这东西好费劲啊!网上资料不多,每个人的用法又不一样,操作起来真的是绝绝子。之前写了一篇 vue2 使用…

【C#进阶】C# 反射

序号系列文章11【C#基础】C# 预处理器指令12【C#基础】C# 文件与IO13【C#进阶】C# 特性文章目录前言1,反射的概念2,使用反射访问特性3,反射的用途4,反射的优缺点比较4.1 优点:4.2 缺点:5,System…

吲哚菁绿-巯基,ICG-SH,科研级别试剂,吲哚菁绿可用于测定心输出量、肝脏功能、肝血流量,和对于眼科血管造影术。

ICG-THIOL,吲哚菁绿-巯基 中文名称:吲哚菁绿-巯基 英文名称:ICG-THIOL 英文别名:ICG-SH 性状:绿色粉末 溶剂:溶于二氯甲烷等其他常规有机溶剂 稳定性:冷藏保存,避免反复冻融。 存储条件&…

搭建SpringBoot多模块微服务项目脚手架(二)

搭建SpringBoot多模块微服务项目脚手架(二) 文章目录搭建SpringBoot多模块微服务项目脚手架(二)1.概述2.封装 MybatisPlus2.1.封装MybatisPlus1.安装依赖2.安装lombok插件3.配置数据库链接信息2.2.创建公共子模块1.创建公共模块common2.创建common_utils模块3.创建service_base…

【C++知识点】文件操作

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📚专栏地址:C/C知识点 📣专栏定位:整理一下 C 相关的知识点,供大家学习参考~ ❤️如果有收获的话,欢迎点赞👍…

【六祎 - 前端】npm是什么?npm是网站、注册表、命令行工具组成;windows安装nvm;使用nvm安装npm;

nvm管理并安装npmnpm中文文档npm是什么?npm 由三个独立的部分组成:快速入门命令行npm用法npm配置查找包(package)windows安装nvm使用nvm安装npmps:切换版本下载npm之后的一些配置(Optional)npm中文文档 →_→点我查看…

Java的stream流

Java 8中引入的新特性,stream流通过与Lambda表达式结合,采用函数式编程,简化数组、集合操作,提高效率。 我们操作一个集合,就把他看作一个流,整个流依次执行,(可以类比为一个管道&a…

企业官网怎么做?

企业官网是企业展示形象和吸引潜在客户的重要渠道之一,因此如何打造一款优秀的企业官网显得尤为重要。本文将从策划、设计、开发和上线等方面,为您介绍企业官网的制作步骤。 一、策划 1.明确目标 企业官网的制作需要明确目标,即确定官网的主…

4. SSM 整合

文章目录1. 引言2. 创建工程3. SSM 整合2. 统一结果封装3. 统一异常处理3.1 异常处理器3.2 项目异常处理方案3.2.1 异常分类3.2.2 异常解决方案3.2.3 异常解决方案的具体实现4. 前后台协议联调4.1 列表功能4.2 添加功能4.3 修改功能4.4 删除功能5. 拦截器5.1 拦截器概念1. 引言…

mysql数据库之innodb存储引擎架构之内存架构

一、逻辑存储结构 mysql5.5版本开始,默认使用innodb存储引擎,它擅长事务处理,具有崩溃恢复特性,在日常开发中使用非常广泛。 架构图(左侧为内存架构,右侧为磁盘架构) 二、 内存架构。 1、缓冲…

SpringBoot使用Redis实现缓存

目录 实现步骤 1. 在 pom.xml 配置文件中添加如下依赖 2. 在 application.properties 中添加如下配置 3. 新建 RedisConfig.class,继承 CachingConfigurerSupport,添加如下方法 4. 新建 RedisService.class 添加如下方法 注意:cacheKey…

看完书上的栈不过瘾,为什么不动手试试呢?

一.栈的基本概念1.栈的定义栈(Stack):是只允许在一端进行插入或删除的线性表。首先栈是一种线性表,但限定这种线性表只能在某一端进行插入和删除操作。其中注意几点:栈顶(Top):线性表…

2023年新三板产品及服务研究报告

第一章 概述 全国中小企业股份转让系统(英语:National Equities Exchange and Quotations,缩写NEEQ),简称股转系统,是第三家全国性证券交易场所,因挂牌企业均为高科技企业而不同于原转让系统内…

软件测试12

一 Linux命令的共通知识点 1.通配符的使用 通配符:又叫文件名替换符号,符号具备特殊含义,例如:文件名:test,通配符可以写成???或者* *:代表可以匹配任意长度的文件名(all所有&am…

xxl-job registry fail

解决方法: 1、检查nacos是否正确,一定要注意格式,一般都是addersses的地址问题,一定的要加/不然找不到,本机就不要使用ip了,用localhost。 xxl: job: admin: addresses: http://localhost:8080/xxl-job-ad…

【java】 java开发中 常遇到的各种难点 思路方案

文章目录逻辑删除如何建立唯一索引唯一索引失效问题加密字段模糊查询问题maven依赖冲突问题(jar包版本冲突问题)sql in条件查询时 将结果按照传入顺序排序作为一个开发人员 总会遇到各种难题 本文列举博主 遇见/想到 的例子 ,也希望同学们可以…

【LVGL移植】STM32F1基于STM32CubeMX配置硬件SPI驱动1.8寸TFT ST7735S跑LVGL图形demo

【LVGL移植】STM32F1基于STM32CubeMX配置硬件SPI驱动1.8寸TFT ST7735S屏幕跑LVGL图形demo🎬运行LVGL 按键组件demo ✨基于STM32CubeMX配置工程是因为方便移植,只要是STM32芯片,拿到我的这个工程源码就可以根据自己的stm32芯片,自…

操作系统复试

2017软学 给出操作系统的定义,分别从资源管理,任务调度,用户接口等三个方面论述操作系统的职能 操作系统是位于硬件层之上、所有其他系统软件层之下的一个系统软件,使得管理系统中的各种软件和硬件资源得以充分利用,方…

MATLAB——求连续系统的响应

题目: 已知RC一阶高通电路图的系统函数H(s)为 H(s)UR(S)U(S)RRR1SCsRCsRC1H(s)\frac {UR(S)}{U(S)}R\frac {R}{R\frac {1}{SC}}\frac {sRC}{sRC1}H(s)U(S)UR(S)​RRSC1​R​sRC1sRC​ 其中:R200Ω ,C0.47μF 。求其幅度频率响应与相位频率响应…