首页 系统教程 操作系统 在Ubuntu的KVM中配置和安装Windows操作系统的指南

在Ubuntu的KVM中配置和安装Windows操作系统的指南

Dec 31, 2023 am 09:57 AM
windows ubuntu kvm

在Ubuntu的KVM中配置和安装Windows操作系统的指南

为什么要折腾 KVM 虚拟机

最近因为公司的事情,没有太多时间进行写作,就用一篇技术类的文章来凑数吧。

事情是这样的,我们公司有一个小东西是基于嵌入式的系统开发的,不属于 Android 也不属于 iOS 平台。嗯,这意味着什么呢?这意味着开发这个小东西的语言是 C 语言,而不是 Java, Objective-C 抑或是 Swift。所以我们需要一个 Cross Compiler,也就是俗称的交叉编译环境来编译这个代码。

其实 Xcode 编译出来的 iOS App 也属于交叉编译的范畴。

然而,这个交叉编译环境竟然只有 Windows 平台的!其实,好像除了 GCC 之外,好用的交叉编译环境都是 Windows 下面的。估计很多玩嵌入式的同学应该都知道,现在业内用得比较多的也就是 Keil 和 IAR 系列了。而及其不幸的是,两者都是 Windows 特供的,没有 macOS 或 Linux 版本。

为什么 Windows 会让我这么得不爽呢?因为平常为了更好的提高工作效率,除了不得不使用的行业应用软件必须要跑在 Windows 下的时候,我们只用 Mac 不用 Windows。所以,我们基本上没有闲置和富裕的 Windows 主机,不!是压根就没有,没有什么「基本没有」一说。

而在服务器端,更不要跟我说什么 Windows Server 云云的。作为一个 macOS 和 Ubuntu 的脑残用户,我是不可能在 Bare metal 上跑一个 Windows Server 的。服务器我们只跑 Linux,别的没兴趣。

那么问题来了,我们有一套自动化编译系统,也就是大家所熟知的 CI 体系 (Continuous integration),用的是 Atlassian 的全家桶:Bitbucket、Bamboo、JIRA 还有 Confluence 什么的,全部跑在 Linux 平台的 Docker 虚拟化容器中。

现在我们想把这个小东西也自动化编译器来,以便更好地把人力释放出来,也方便未来跟踪和管理每一次 Release 的内容。而第一个要解决的问题就是:我们没有 Windows 的服务器。

既然现在虚拟化这么流行,那么我们就利用现有的 Ubuntu 服务器虚拟化一个 Windows 好啦,走起!

啥是 KVM

KVM 的全称是:Kernel-based Virtual Machine,简单一句话概括,就是一个基于 Linux 内核的虚拟化管理系统。

从 Linux 内核 2.6.20 版本开始就已经集成了该功能。简单理解 Docker 是在应用层的虚拟化,而 KVM 是在系统层的虚拟化。

区别就是,Docker 虚拟化的内容,必须跟 Host 主机共享内核,也就意味着只能跑 Linux 类系统。

而 KVM 是整个主机虚拟,所以可以安装不同的操作系统,而不局限于 Linux 本身。等我过段时间抽风的时候,看看能不能在 Ubuntu 上虚拟化个 macOS 出来。这样就不用单独再弄个 Mac 主机来自动化编译 iOS App 了。

安装 KVM

我这里使用的是 Ubuntu 16.04 LTS 版本,考虑长期使用和稳定性,基本上只选 LTS 版本,其他版本差别也不太大,参考着做就好了。

首先是安装 KVM 相关的包文件,因为我的服务器都是命令行,没有安装 X 桌面,所以我加了 --no-install-recommends 参数。不然的话它会安装 virt-viewer 之类的包,而它们的依赖关系中又有 X11 和很多图形图像库,而这些都用不上。但是如果你开启了桌面系统,那么也可以不加该参数。

$ sudo apt-get install --no-install-recommends qemu-kvm qemu-utils libvirt-bin virtinst cpu-checker

让我们来验证一下是不是一切 OK

$ kvm-ok

INFO: /dev/kvm exists

KVM acceleration can be used

很好,一切顺利,我们再来弄个桥接网络。其实这个也不是必须的,看你的使用场景。

KVM 会自己创建一个 virbr0 的桥接网络,但是这个是一个 NAT 的网络,没有办法跟局域网内的其他主机进行通信,所以还是别偷懒,自己建一个桥接网络吧。

参考配置如下:

$ cat /etc/network/interfaces

# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface

auto lo

iface lo inet loopback

# The bridged network interface

auto br0

iface br0 inet static

address 1.2.3.4

netmask 255.255.255.0

gateway 1.2.3.1

dns-nameservers 1.2.3.1

bridge_ports enp9s0

bridge_stop off

bridge_fd 0

bridge_maxwait 0

重启网络,并验证一下桥接状态:

$ sudo systemctl restart networking

$ sudo brctl show

bridge name     bridge id               STP enabled     interfaces

br0             8000.f079593874d9       no              enp9s0

virbr0          8000.525400087ef2       yes             virbr0-nic

OK,一切正常,可以开始创建虚拟主机了。

创建虚拟主机

KVM 只是完成了第一步,我们还需要创建虚拟主机才可以继续往下走。

在开始之前,我们要准备好几个东西:

1.Windows 安装镜像

2.Virtio ISO 和软盘镜像

3.VNC 客户端(macOS 自带)

我这里使用的是 Virtio 0.1.126-2 版本。操作系统版本是:Ubuntu 16.04.1 LTS。

一切准备就绪,使用 virt-install 命令来帮助创建虚拟机:

virt-install

--name win10

--memory 2048

--vcpus sockets=1,cores=1,threads=2

--cdrom=/path/to/windows_10.iso

--os-variant=win8.1

--disk /path/to/win10/win10.qcow2,bus=virtio,size=40

--disk /path/to/virtio/virtio-win-0.1.126_amd64.vfd,device=floppy

--network bridge=br0,model=virtio

--graphics vnc,password=Passw0rd,port=5910

--hvm

--virt-type kvm

基本上配置信息都在上面了,虚拟信息机配置如下:

2G 内存

1 个 CPU,1 个核,2 个线程

1 个 CDROM(Windows 安装光盘)

40G 硬盘(系统盘)

1 个软驱(Virtio 驱动)

在 5910 端口开放一个 VNC 远程桌面

如果你的命令输入的正确,应该会得到类似的反馈信息:

Starting install...

Creating domain...

Domain installation still in progress. Waiting for installation to complete.

简单来说,就是虚拟机已经创建好了,但是因为没有图像界面,所以没有办法下一步了。当我们连接了 VNC 以后,就可以继续往下走了。这个提示只会出现一次,安装好系统以后,不会出现这个启动等待的情况。

安装 Windows 10

虽然我们在创建虚拟机的时候,指明了使用 5910 端口来提供 VNC 远程桌面。但是这个端口是不能直接访问的,因为它默认绑定在 127.0.0.1 上,也就是只有本地才能访问。我们需要先把远程的本地端口,映射成本地的端口。

ssh -L 5910:127.0.0.1:5910 server

然后在 macOS 下,⌘ + Space 呼叫出 Spotlight,然后输入:

vnc://127.0.0.1:5910

在弹出的窗口中输入密码:Passw0rd

然后就可以愉快的安装 Windows 系统了,如果不能识别硬盘,需要手动加载一下驱动,选择 A 盘和对应的 Windows 目录就可以了。同样的,如果网卡没有驱动,也是如法炮制。

附安装完成的屏幕截图一张:

在Ubuntu的KVM中配置和安装Windows操作系统的指南

以上是在Ubuntu的KVM中配置和安装Windows操作系统的指南的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Steam Deck OLED 上的无损缩放以高达 2 倍 FPS 的速度运行游戏 Steam Deck OLED 上的无损缩放以高达 2 倍 FPS 的速度运行游戏 Aug 26, 2024 am 10:07 AM

ETA Prime 最近在 ROG Ally X 上展示了一款名为 Lossless Scaling 的付费软件。虽然它实际上并没有提高实际游戏性能,但该软件通过添加帧生成和分辨率缩放来增强体验。这两个可以

Android TV Box 获得非官方 Ubuntu 24.04 升级 Android TV Box 获得非官方 Ubuntu 24.04 升级 Sep 05, 2024 am 06:33 AM

对于许多用户来说,破解 Android 电视盒听起来令人畏惧。然而,在 Broadcom 芯片短缺期间,开发人员 Murray R. Van Luyn 面临着寻找 Raspberry Pi 合适替代品的挑战。他与 Armbia 的合作努力

Bybit交易所最新版本怎么更新?不更新会有影响吗? Bybit交易所最新版本怎么更新?不更新会有影响吗? Feb 21, 2025 pm 10:54 PM

更新ByBit交易所的方式因平台和设备而异:移动设备:在应用商店中检查更新并安装。桌面客户端:在“帮助”菜单中检查更新并自动安装。网页端:需要手动访问官网进行更新。不更新交易所可能导致安全漏洞、功能限制、兼容性问题和交易执行效率降低。

deepseek网页版入口 deepseek官网入口 deepseek网页版入口 deepseek官网入口 Feb 19, 2025 pm 04:54 PM

DeepSeek 是一款强大的智能搜索与分析工具,提供网页版和官网两种访问方式。网页版便捷高效,免安装即可使用;官网则提供全面产品信息、下载资源和支持服务。无论个人还是企业用户,都可以通过 DeepSeek 轻松获取和分析海量数据,提升工作效率、辅助决策和促进创新。

Pi Node教学:什么是Pi节点?如何安装和设定Pi Node? Pi Node教学:什么是Pi节点?如何安装和设定Pi Node? Mar 05, 2025 pm 05:57 PM

PiNetwork节点详解及安装指南本文将详细介绍PiNetwork生态系统中的关键角色——Pi节点,并提供安装和配置的完整步骤。Pi节点在PiNetwork区块链测试网推出后,成为众多先锋积极参与测试的重要环节,为即将到来的主网发布做准备。如果您还不了解PiNetwork,请参考Pi币是什么?上市价格多少?Pi用途、挖矿及安全性分析。什么是PiNetwork?PiNetwork项目始于2019年,拥有其专属加密货币Pi币。该项目旨在创建一个人人可参与

deepseek怎么安装 deepseek怎么安装 Feb 19, 2025 pm 05:48 PM

DeepSeek的安装方法有多种,包括:从源码编译(适用于经验丰富的开发者)使用预编译包(适用于Windows用户)使用Docker容器(最便捷,无需担心兼容性)无论选择哪种方法,请仔细阅读官方文档并充分准备,避免不必要的麻烦。

微软为 Xbox Game Bar 推出适合手持游戏的紧凑模式 微软为 Xbox Game Bar 推出适合手持游戏的紧凑模式 Aug 15, 2024 am 06:32 AM

微软刚刚宣布了 Xbox Game Bar 的新紧凑模式,重点是使覆盖层在 Windows 游戏手持设备上更可用。这些设备通常配备小于 9 英寸的屏幕,并且专为重新设计而设计。

Coinsuper交易所软件渠道官网入口 Coinsuper交易所软件渠道官网入口 Feb 21, 2025 pm 10:39 PM

Coinsuper交易所的官网入口:https://www.coinsuper.com。客户端下载渠道依次为:Windows客户端、macOS客户端、移动端(iOS/Android)。注册需提供电子邮件、手机号和密码,需完成实名认证后才能交易。平台提供多种数字资产交易,包括比特币、以太坊等,交易费率对下单者和接单者均为0.1%。安全保障措施包括冷钱包存储、双重验证、反洗钱和反恐融资措施,并与安全公

See all articles