实现将VirtualBox 虚拟机转换为KVM虚拟机的步骤
原来在桌面上一直使用virtualbox虚拟机管理程序(VMM)构建虚拟机安装不同的操作系统,现在
研究linux下的KVM,能否将已经建立的virtualBox虚拟客户机(guest)转换为KVM虚拟机呢?经过查找
资料,还真可以。下面说明一下步骤:
1、将virtualbox虚拟机的虚拟磁盘文件(VDI)转换成raw格式的文件
此步骤使用virtualbox的命令行工具vboxmanage,这个工具对于通过编制脚本生成虚拟机很有帮助,
其提供的功能比virtualbox图形配置提供的功能要强大的多。具体命令如下:
vboxmanage clonehd --format raw centos.vdi centos.img
说明:将名为centos.vdi 的虚拟磁盘文件转换为raw格式的虚拟磁盘文件,raw格式的文件可以说是
不同格式虚拟磁盘文件之间转换的桥梁,其他格式的虚拟磁盘文件都可以先转换成此格式,然后在转换为
其他目标格式。转换完成后,生成的raw格式文件大小是在配置虚拟机时指定的大小,实际vdi文件只占用
实际应用的大小,如配置时虽然指定为20G,但安装完操作系统及相关软件后,可能只需要8G,那么实际
的虚拟磁盘文件(vdi格式)只占用8G,但是在用上面的命令转换后,则转换后的文件大小就是在建立虚拟
机时指定磁盘空间的大小,在这里就是20G,因此在转换前需要查看一下磁盘空间是否足够。
命令参数: clonehd --克隆虚拟磁盘
--format raw --指定转换格式
clone这个此在虚拟化技术中用的很多,诸如备份、迁移等很多都是通过这个技术实现。
2、将转换后的raw格式文件转换为kvm使用的qcow2格式文件
此步骤使用qemu-img工具实现,如果机器上没有,可以通过rpm或yum进行安装,包名为qemu-img。
qemu-img是专门虚拟磁盘映像文件的qemu命令行工具。
具体命令如下:
qemu-img convert -f raw centos.img -O qcow2 centos.qcow2
参数说明:convert 将磁盘文件转换为指定格式的文件
-f 指定需要转换文件的文件格式
-O 指定要转换的目标格式
转换完成后,将新生产一个目标映像文件,原文件仍保存。
3、利用qemu-kvm命令基于转换后的虚拟磁盘镜像启动虚拟机
在生成kvm支持的文件格式后,即可以使用qemu-kvm基于已转换的磁盘文件启动虚拟机了,语法
如下:
qemu-kvm -m 1024 -M pc -smp 2 -hda /opt/images/centos.qcow2 -boot c -name centos \
-k en-us vnc :0 -usb -usbdevice tablet
启动后,将生产一个单独的qemu-kvm进程,利用vnc工具可以连接到这个虚拟机,在本例中vnc端口为
5900,连接后,可以在客户机中进行各种操作。
参数说明: -m 1024 指定内存大小
-M pc 真的机器类型,这里为RHEL 5.4.0 PC
-smp 使用2个虚拟cpu仿真对称多处理器系统
-hda 指定虚拟磁盘文件名称
-boot 指定引导设备 c 为硬盘,d为光驱
-name 指定虚拟机名字
-k 指定键盘layout
vnc :0 指定vnc连接端口,最终端口为后面的数字+5900
-usb 使usb设备有效
-usbdevice tablet 加入把设备,tablet是指使用绝对坐标的指针设备,如鼠标
4、其他说明
使用第三步生成的虚拟机只是临时的,在此进程被关闭后,此虚拟机也不存在。可以手工编制一个
配置文件,保护虚拟机的各类参数保存在/etc/libvirt/qemu目录下,这样就能够被virsh进行管理,可以
方便的启动和关闭。配置文件可以使用已有虚拟机的配置文件作为模板。
在用virtualbox生成的虚拟机中,如果安装了virtualbox的VBoxGuestAdditions(主要用来控制鼠标
捕获等功能),则需要先在虚拟机中卸载,因此kvm不支持。
http://blog.csdn.net/starshine/article/details/7032316
实现将VirtualBox 虚拟机转换为KVM虚拟机的步骤的更多相关文章
- 不启动或进入虚拟机,查看 KVM 虚拟机中的网卡信息
#!bin/bash#作者:liusingbon#功能:#脚本使用工具guestmount,可以将虚拟机的磁盘系统挂载到真实机文件系统中#Centos7.2中安装libguestfs-tools-c, ...
- QEMU/KVM虚拟机安装配置
1.安装相关组件: [root@KVM ~]# yum install qemu-img qemu-kvm qemu-kvm-tools virt-manager virt-viewer virt-v ...
- kvm虚拟机日常管理和配置操作命令梳理
KVM虚拟机的管理主要是通过virsh命令对虚拟机进行管理.1)查看KVM虚拟机配置文件及运行状态KVM虚拟机默认配置文件位置: /etc/libvirt/qemu/autostart目录是配置kvm ...
- kvm虚拟机日常操作命令梳理
KVM虚拟机的管理主要是通过virsh命令对虚拟机进行管理.废话不多说,下面列出kvm日常管理中的命令 1)查看KVM虚拟机配置文件及运行状态 KVM虚拟机默认配置文件位置: /etc/libvirt ...
- kvm虚拟机命令梳理
kvm虚拟机命令梳理 )查看KVM虚拟机配置文件及运行状态 KVM虚拟机默认配置文件位置: /etc/libvirt/qemu/ autostart目录是配置kvm虚拟机开机自启动目录. virsh命 ...
- kvm虚拟机操作相关命令及虚拟机和镜像密码修改
虚拟机生命周期管理 1)查看kvm虚拟机状态 #virsh list --all 2)KVM虚拟机开机 # virsh start oeltest01 3)KVM虚拟机关机或断电 关机 默认情况下vi ...
- KVM 虚拟机基本管理及常用命令
KVM的基本管理 1.查看KVM虚拟机配置文件 #Kvm虚拟机默认配置文件位置 [root@kvm qemu]# pwd /etc/libvirt/qemu [root@kvm qemu]# ll t ...
- KVM虚拟机管理——虚拟机克隆
1. 概述2. 部署基本操作系统虚拟机3. 配置虚拟机3.1 修改/etc/sysconfig/network3.2 删除/etc/sysconfig/network-scripts/ifcfg-et ...
- Linux下KVM虚拟机基本管理及常用命令(转)
说明:可能有重复 一.KVM的基本管理 1.查看KVM虚拟机配置文件 #Kvm虚拟机默认配置文件位置 [root@kvm qemu]# pwd /etc/libvirt/qemu [root@kvm ...
随机推荐
- 记录一个php强制下载文件函数
整理个经常用的强制下载文件的函数,之前就说把一些常用的东西整理出来结果老是没时间,最近陆续把这些东西整理下. public function download() { $id = $this-> ...
- Java SE基础部分——常用类库之NumberFormat(数字格式化)
数字格式化常用方法:DecimalFormat和NuberFormat. //2016060524 数字格式化学习 //数字格式化 两种方法 一种直接使用NumberFormat,另一种Decimal ...
- java获得平台相关的行分隔符和java路径分隔符的方法
System.getProperties(): 行分隔符在windows 下是 \r\n,在Linux下面是 \n, 在Mac下是 \r路径分隔符在windows下是 \ ,在LInux下是 / Sy ...
- Android 常用代码片小结
1. dp px 相互转换---------------public class DensityUtil { /** * 根据手机的分辨率从 dip 的单位 转成为 px(像素) */ public ...
- 优盘(U 盘) 采用TLC, MLC, SLC芯片 的区别 与使用寿命
最近一直在看大家在讨论sandisk,pny,金士顿等大厂都开始用tlc的芯片问题,让大家基本都不敢用U盘存数据了按照之前的擦写参数TLC 1000次MLC 10000次SL ...
- delphi 基础书籍推荐
本文所推荐的书,我均仔细读过,受益良多. 1. Pascal 精要.下载Pascal精要 本书讲Pascal 语言基本知识. 2. Object Pascal 参考(中英文对照版).下载Object ...
- 使用TWebBrowser组件保存网页为html和mht文件 收藏
一.保存为HTML文件 uses ActiveX;...procedure WB_SaveAs_HTML(WB : TWebBrowser; const FileName : string) ;var ...
- UVA1351-----String Compression-----区间DP(记忆化搜索实现)
本文出自:http://blog.csdn.net/dr5459 题目地址: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&a ...
- #include <thread>
1 detach 脱离当前主线程,自由执行,乱序; 2 join() 等待模式,执行完再执行下一个 3 std::this_thread::get_id() 获取当前线程编号 4 std::threa ...
- powerdesigner for sqlserver的一些实用配置
在实用powerdesigner生成sqlserver 数据表时常常遇到一些问题: 1.数据中定义的字段名称相同生成物理模型时会报错. 2.数据各表之间的主键不能定义一样的名称. 我现在的需求是将数据 ...