centos windows kvm kvm虚拟机安装windows

老铁们,大家好,相信还有很多朋友对于centos windows kvm和kvm虚拟机安装windows的相关问题不太懂,没关系,今天就由我来为大家分享分享centos windows kvm以及kvm虚拟机安装windows的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!

如何在centos6.5的kvm虚拟机中永久激活windows2008

一、激活原理

目前激活Windows7/Windows2008的各种方法充斥互联网,但公认比较完美的激活方式是将品牌机(例如DELL、LENOVO等)的SLIC信息表刷写进需要安装Windows系统的计算机BIOS中,将该计算机“仿真”为品牌机,然后安装微软的OEM版Windows7/Windows2008并自动激活。

相信喜欢搞破解的童鞋都应该知道其中的奥秘,微软和PC厂商为了减轻对于操作系统的激活负荷,对大多数品牌机实行了有别于联网激活的“SLIC激活机制”:当Windows操作系统启动时,就会自行读取本机BIOS中的SLIC信息表,以及操作系统的“OEM密钥”和“OEM证书”,如果三者完全吻合、验证一致,Windows7/Windows2008系统就会被识别为自动激活的OEM版本。

笔者研究发现,Windows2012(注意不是Windows2012_R2,下同)与以往激活Windows7/Windows2008的方式类似,依然可以采用刷写BIOS中SLIC信息表安装OEM版系统的方式实现永久激活,只不过激活Windows2012需要SLIC2.2版,经测试SLIC2.2能够向下兼容SLIC2.1/2.0。

众所周知,虚拟机软件也是有BIOS的,目前市场上常见的虚拟机软件,如VMware、Xen、Kvm等均通过软件仿真的方式“模拟”硬件BIOS。既然可以采用刷写计算机硬件BIOS的方式实现永久激活,那么如果能够将SLIC2.2信息表通过软件再编译方式“灌入”虚拟机的BIOS中,然后再安装Windows2012的OEM版本,不就可以与刷写BIOS硬件实现自动激活“异曲同工”了吗?

二、核心问题

激活原理已经非常明确了,现在的关键问题是如何重新编译Linux虚拟机的问题了,这涉及Linux内核的重新编译,一些菜鸟可能望而生畏,尽管编译 Linux全部内核确实需要较高的技术水平,但重新编译Linux的BIOS难度并不高,初学者也可以轻松实现。本文以Linux的常见版本CentOs6.5为例,详细讲解重新编译KVM虚拟机BIOS的步骤。本文的方法同样适用Ubuntu等 Linux版本。

CentOs6.5虚拟机KVM的BIOS实际是一个二进制的可执行文件,默认安装路径为/usr/share/seabios/bios.bin。笔者研究发现,KVM虚拟机BIOS使用的是开源软件 seabios,该软件的源代码可以在互联网上找到,开源组织也制作了为seabios软件增加相应SLIC信息表的补丁包,下载seabios的源代码并打上该补丁包,然后重新编译并替换Linux默认的bios.bin文件,就可以将虚拟机“仿真”为品牌机,然后自动激活OEM版的Windows2012系统了,这种激活方式是永久激活,激活后的Windows2012可以打上微软的后续补丁且绝对不会被封杀。

三、详细步骤

1.获取SLIC2.2信息表。当前SLIC2.1的信息表网上很容易找到,SLIC2.2的信息表不多,比较容易找到的是DELL版的SLIC2.2信息表。当然也可以找一台预装了Windows2012的品牌机(市面上比较常见的是DELL的机器),然后使用SLIC_Toolkit3.2工具导出该机器的SLIC表。SLIC2.1/2.2表为二进制文件,长度均为374字节(这一点一定要注意)。

2.安装CentOs6.5_x64版操作系统。记得把gcc安装上,然后将上一步已经获取的SLIC2.2表拷贝在/ opt目录中(假定文件名称为DELL_SLIC2.2.BIN)。

3.在root用户下安装git,、iasl及所有依赖包。

#yum install git

#yum install iasl//这是必须安装的包

4.使用git获取sealic项目的源码。

# mkdir bios//目录可以自己随便建

#cd bios

#git clone git://github.com/ghuntley/seaslic//获取源代码

#ls-ls

Seaslic//用git软件获取源代码后会有多出一个目录

# cd seaslic

#ls

patch.sh README.markdown seabios.patch seabios.submodule

//该目录共包含三个文件和一个子目录,其中子目录seabios.submodule需要删除掉,用我们后面下载的内容重建。

#rm-rf seabios.submodule

5.从地址code.coreboot.org/p/seabios下载的SeaBios的源码并解压。注意源代码一定要下载1.7.3.2版本的,这一点也很关键,千万不能搞错了。

#tar xzvf seabios-1.7.3.2.tar.gz解压在/bios目录下。

6.重建seabios.submodule

#cd/bios

# cp–r seabios-1.7.3.2 seaslic/seabios.submodule

# cd seaslic

# ls

patch.sh README.markdown seabios.patch seabios.submodule

进入我们重建的seabios.submodule目录,可以发现有bios的源代码存在:

# cd seabios.submodule

# ls

COPYING COPYING.LESSER Makefile README README.CSM src TODO tools vgasrc

# cd src

可以发现seabios的源代码,我们需要重新编译这些源代码,生成新的bios.bin文件,用于替代CentOs6.5系统自带的bios.bin。

7.查看/bios/seaslic/patch.sh文件。这是一个批处理文件,只有2行有用。用Linux的命令方式执行,为防止输入错误,最好从patch.sh中复制粘贴后在root用户下执行:

①将SLIC2.2文件转换为C语言包含文件格式(acpi-slic.hex)的命令:

#xxd-i/opt/DELL_SLIC2.2.BIN| grep-v-E"len"| sed's/unsigned char.*/static char SLIC[]={/'> seabios.submodule/src/acpi-slic.hex

说明:这条命令执行后将会把SLIC2.2表(即/opt/DELL_SLIC2.2.BIN文件)转换为C语言包含文件格式(文件名../src/acpi-slic.hex),并以数组形式存在。这一步非常非常关键,转换完成的acpi-slic.hex文件应为2333字节。如果本条命令执行不成功的话,编译出来的bios.bin文件不会包含SLIC2.2信息,也就无法实现激活了。

②为acpi.c文件打补丁的命令:

# cd/bios/seaslic/seabios.submodule

#patch-p1<../seabios.patch

说明:这条语句执行后将给../ src/acpi.c文件打上补丁,执行后系统将会提示:

Hunk#1 succeeded at 20 with fuzz 2(offset-194 lines).

Hunk#2 succeeded at 37 with fuzz 2(offset-194 lines).

Hunk#3 succeeded at 631 with fuzz 2(offset-205 lines).

注意:至此我们的准备工作已经全部完成了,下面将重新编译生成新的bios了。

8.重新编译生成bios.bin文件

# cd/bios/seaslic/seabios.submodule

#make//编译需要花几十秒钟吧,应提示无错误、无警告,否则可能需要仔细检查以上步骤。

查看..seabios.submodule/out/bios.bin

看到最后生成的结果了吧,会在..seabios.submodule/out/中多出一个bios.bin文件,这个文件就是我们重新编译生成的虚拟机的bios,将用来替换KVM的系统原有的bios.bin文件。

说明:这里编译生成bios.bin文件包含有DELL品牌机的SLIC2.2,可以激活DELL的Windows2012_OEM版。同理,我们只要找到其他品牌机的SLIC2.2信息表,重新编译后就可以安装激活其他品牌机的OEM版Windows7/2008/2012(SLIC2.1只能支持Vista/Win7/2008,不支持 Win2012;SLIC2.2则支持XP/Vista以及Win2008/2012并兼容SLIC2.1),与刷写计算机硬件BIOS实现自动激活的方式相比,采用这种方式激活Windows的风险为零,非常适合批量激活虚拟机的Windows2008/Windows2012。

9.替换CentOs6.5系统默认的bios.bin文件

# cp out/bios.bin/usr/share/seabios/bios.bin

#reboot//重新启动一下宿主机,然后再重新启动Windows虚拟机,在启动KVM虚拟机的时候,可以发现虚拟机的bios已经更新为最新版本了。

10.激活windows2012

至此KVM虚拟机的bios已经重新配置完成,在KVM中启动WINDOWS客户机,然后利用SLIC_Toolkit3.2工具检查SLIC,会发现你的SLIC信息已经获取成功,如果你安装的是OEM版本的 Win2008/2012的话,无需输入key和证书就能自动激活。你可以从网上百度如下OEM镜像(我已试验过可自动激活):

(1)Lenovo的OEM版Windows2008_R2镜像:

Windows_Server-2008_R2_ENT_OEM.iso或者

Win_Server_08_R2_SP1_33in1.iso

(2)Dell的OEM版Windows2012镜像:

Ser2012_ST_DA_OEM.iso

(3)如果你手上暂时没有OEM版的话,也不要紧,可以用slmgr命令手工增加证书及OEM序列号也可以激活Windows2008/20012。直接用管理员身份进入命令行模式:

①slmgr-ilc DELL2.2.XRM-MS//这里找到的是DELL计算机的Windows2012版OEM证书。

②接下来就是写入注册号了:

slmgr-ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

说明:下面是我从网上找到的 OEM版序列号(经测试可以激活):

Windows Server 2012 Standard DELL OEM KEY

2G9DG-XKFR6-VG8D3-DN9T9-CDG98

Windows Server 2012 Datacenter DELL OEM KEY

2BVGY-TNRWK-6927W-866R9-66J3H

Windows Server 2008 R2 Standard DELL OEM KEY

D7TCH-6P8JP-KRG4P-VJKYY-P9GFF

Windows Server 2008 R2 Enterprise DELL OEM KEY

BKCJJ-J6G9Y-4P7YF-8D4J7-7TCWD

③执行slmgr–dlv//显示全部激活信息

④执行slmgr-xpr//显示Windows2008/2012已经永久激活。

CentOS7中安装配置与使用KVM(图形化操作方式)

在 CentOS 7环境下配置与使用 KVM的图形化操作步骤如下:

一、实验环境准备:使用 CentOS 7 x64系统,配置处理器核心为4,运行内存8G,存储空间100G。推荐使用最新版本的 Vmware 16,但其他版本亦可。

二、开启虚拟化设置:在 CentOS系统中,确保虚拟化支持已经开启,这是运行虚拟机的前提。

三、在 Vmware中创建高配置的 CentOS7虚拟机:安装 CentOS 7软件包,构建虚拟机。虚拟机软件应包含必要的硬件配置,以实现高效运行。

四、安装配置与使用 KVM:

1.检查 CPU是否支持虚拟化:在 CPU标准输出中寻找 vmx或 svm,确认支持虚拟化功能。

2.检查 KVM模块是否加载:通过命令确认 KVM模块是否已加载。

3.关闭 SELinux:编辑/etc/selinux/config文件,修改配置后重启系统,确保 SELinux不影响 KVM的正常运行。

4.安装 KVM相关软件包:使用 yum安装 qemu-kvm、qemu-img、virt-manager等,确保所有组件正确安装并确认安装过程无误。

5.启动 libvirt并设置开机自启动。

6.创建存放系统镜像和虚拟机硬盘的目录。

7.桥接设备关联网卡:查看网卡信息,根据实际情况配置设备,确保虚拟机与物理网络正常连接。

8.安装虚拟机:在图形化管理界面中新建虚拟机,上传镜像文件,配置内存、CPU、存储空间等参数,并定义虚拟机存储位置。

五、实现虚拟机内部安装 CentOS:

1.在图形化界面中创建虚拟机,上传镜像文件。

2.选择安装介质和系统镜像路径。

3.配置虚拟机的内存与 CPU,定义存储空间大小。

4.选择虚拟机存储目录和存储池名称,确保虚拟机文件正确存储。

5.添加存储卷,确保虚拟机文件有足够空间存放。

6.定义虚拟机名称,启动虚拟机,执行正常的 CentOS安装流程。

通过以上步骤,您可以在 CentOS 7环境下成功配置与使用 KVM,实现高效、灵活的虚拟化管理。

kvm虚拟机安装(kvm虚拟机安装windows)

Ubuntu20.04安装kvm虚拟机

重要说明:安装系统需要使用vncviewer连接宿主机IP地址+5900端口进行安装,具体如下图

系统安装完成后使用vnc连接后,在命令行输入如下命令开启虚拟机终端控制功能:

安装kvm虚拟机并导入导出

1、确保支持cpu虚拟化

cat/proc/cpuinfo|egrep'svm|vmx'

2、安装qemu-kvm、libvirt、virt-install包

yum-yinstallqemu-kvmlibvirtvirt-install

3、开启libvirtd服务病开机自启

systemctlstartlibvirtdsystemctlenablelibvirtd

4、创建一个磁盘文件

qemu-imgcreate-fqcow2./centos7-kvm.qcow210G

5、创建虚拟机。类型为kvm,名称随意,内存1G,镜像文件指定位置,磁盘文件就是步骤4中的,网络默认,图形选择vnc

virt-install--virt-typekvm--namecentos7-2020--ram1024--cdrom=/home/kvm/CentOS-7-x86_64-Minimal-2003.iso--diskpath=/home/kvm/centos7-kvm.qcow2--networknetwork=default--graphicvnc,listen=0.0.0.0--noautoconsole

6、宿主机安装vncserver

yum-yinstalltigervnc-servertigervncvncvnc-server

systemctl?daemon-reload

7、执行下述命令设置密码

vncserver?

8、启动服务(我自己的环境这个服务没起来,但还是可以用的)

systemctlstartvncserver@gao:1

9、关闭防火墙和selinux

10、vnc客户端连接宿主机5901,然后正常安装虚拟机

导出虚拟机

——本实验是将qcow2格式导出为qcow2

1、一条命令即可

-从表示压缩,-O表示导出格式,111.qcow2位导出后的文件

qemu-imgconvert-c-Oqcow2centos7-kvm.qcow2111.qcow2

导入虚拟机

——使用virt-manager工具导入

1、安装virt-manager

yum-yinstallvirt-manager

2、打开

virt-manager

3、新建虚拟机,选择镜像导入

选择对应的111.qcow2文件

配置cpu、内存、网络等信息

完成新的虚拟机创建

ok

KVM:virt-install创建虚拟机

grep-E'vmx|svm'/proc/cpuinfo

#-Egrep的扩展模式

#当前cpu是否支持硬件虚拟化

lsmod|grepkvm

#检查是否加载kvm模块,kvm只是一个linux模块,在kvm安装完成后整个linux系统会变成一个hypervisor(虚拟机管理层)。而qemu和virt、virsh相当于是两个家族,qemu只支持命令行模式(创建、删除、管理等操作),virt-install创建虚拟机,virsh只能管理虚拟机(无法创建),virt-manager提供web界面。

总结来说,libvirt家族和qemu家族都可以实现对虚拟机的生命周期管理,同一个目的不一样的工具而已。

mkdir/home/vm

将CentOS-7-x86_64-Minimal-1810.iso上传到此目录下

virt-install-ncentos3-r256--disk/home/vm/ccc.img,format=qcow2,size=2--networkbridge=br0--os-variant=rhel7.6--cdrom/home/vm/CentOS-7-x86_64-Minimal-1810.iso--vnc--vncport=6666--vnclisten=0.0.0.0

-n????虚拟机名字

-r??内存(默认单位MB)

--disk??制定磁盘(可以提前使用qemu-img创建,也可以在此处创建)

??*使用qemu-img创建磁盘????qemu-imgcreate-fqcow2aaa.img10G

--network??指定虚拟机使用的网络,这里使用br0,需要提前准备好此桥设备

--cdrom??指定镜像文件

--vnc??设置vnc,指定vnc监听端口和监听地址

#上述命令输入完成后直接回车即可

弹出上述告警框不用理会

此时查看宿主机打开端口,出现我们监听的6666端口

使用vnc客户端新建连接,ip地址填宿主机地址,端口6666,名称就是虚拟机名称

颜色级别设置成rgb222,然后点击OK

双击连接图标,进入安装界面

注意:

1、在执行virt-install时一定要仔细,别漏了任何一个参数。我就是少了--vnc这个参数导致vnc怎么也连不上

2、宿主机要跑虚拟机,确保cpu、内存资源足够,否则安装会出问题

安卓开启kvm

创建KVM虚拟机_安卓kvm虚拟机可以用两种方法创建kvm虚拟机,一种是virt-manager管理工具创建,一种是命令行的方式。1.命令行方式创建kvm虚拟机。先创建qcow2格式的镜像文件,大小为20G。qemu-imgcreate-fqcow2/data/kvm/images/centos7.6×86.qcow20G输入命令进行虚拟机的安装:virt-install–name=centos7.6×86–vcpus=2–ram=2048–diskpath=/data/kvm/imag

基于Ubuntu20的qemu-kvm安装虚拟机

环境:

本地win10(win7同样适用)

VM14

在VM上装的是Ubuntu20.04

在此基础上安装kvm虚拟机,并在kvm虚拟机中安装guest操作系统Ubuntu20.04

如果cpu数量为0的话说明不支持虚拟化,解决方案:关闭VM上的Ubuntu,进入设置-处理器,勾选上第一个(因为此时我的Ubuntu是开着的所以是灰的,关闭客户机才可以操作)

接下来查看确认下系统是否支持kvm

如果出现以下的结果那就表明我们可以进行第二步操作了~

接下来确认来虚拟化守护进程libvirt-daemon是否在进行

检查kvm模块是否加载

kvm在安装之后自动会生成一个名为virbr0的网络,网上是说可以连接外网不能局域网,但是我使用这个的话一直显示网络连接失败。于是乎我们需要创建一个网桥(如果此时是使用xshell连接远程Ubuntu的话,建议进入Ubuntu使用自带终端完成)

方法一:(实践之后发现只适合临时创建,重启后消失)

方法二、

在/etc/netplan/下新建一个配置文件00-installer-config.yaml(名字随便)

文件内容为:

应用一下

通过virt-manager创建虚拟机

在你连接VMUbuntu的xshell会话设置一下,SSH-隧道,勾选上转发到X11连接到xmanager,确定后断开会话重连下

新建虚拟机

步骤和你在VM上安装Ubuntu没区别,在此不赘述,提前在VM的Ubuntu上准备好你接下来要安装的UbuntuISO镜像文件。

提醒一下一定要勾选安装前自定义配置,更该下【显示协议VNC】的设置,不然最后一步账号名称输入的时候怎么也输不出内容来!!!!

第三步创建的网络也可以在这里选上了!

完成后进入配置页面,将【显示协议VNC】做增加en-us键映射

之后就可以愉快的等待安装完成啦~~

kvm安装虚拟机总是白屏

kvm安装虚拟机总是白屏是系统软件故障。kvm安装虚拟机白屏是由于系统软件故障,虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。需要将软件卸载重新安装。

阅读剩余
THE END