win10 Hyper-V安装配置ubuntu虚拟机

win10 Hyper-V安装配置ubuntu虚拟机

启用Hyper-V

开始->设置->应用->程序和功能->启用或关闭Windows功能。
在打开的窗口中,选择“Hyper-V”,弃选“适用于Linux的Windows子系统”和“虚拟机平台”。


重启。

win键->Windows管理工具->Hyper-V管理器,就是win10自带的虚拟机管理程序了。

Hyper-V的虚拟交换机原理

Hyper-V创造了虚拟交换机的概念,把所有的虚拟机连接到虚拟交换机,虚拟交换机连接到网络。

虚拟交换机的类型有3种:

  • 外部虚拟交换机
    绑定到物理网络适配器,从而直连物理网络。虚拟机通过虚拟交换机向网络申请独立的IP地址访问物理网络。在这种模式下,物理计算机(宿主机)也允许被视作连接到外部虚拟交换机的一个设备,地位和其他虚拟机相同。

在这里插入图片描述
如果外部虚拟交换机选择和宿主机共享网络适配器,则宿主机也连接到外部虚拟交换机,通过外部虚拟交换机上网。
如果外部虚拟交换机选择不和宿主机共享网络适配器,那么宿主机连接到另一个物理网络适配器,或者不能连接网络(在物理计算机只有一个物理网络适配器的情况下)。

  • 内部虚拟交换机
    介于物理计算机(宿主机)和虚拟机之间,只能用于虚拟机之间以及虚拟机和物理计算机之间的连接。内部虚拟交换机不提供与物理网络之间的连接,但只要物理计算机可以上网,内部虚拟交换机能自动使用NAT(网络地址转换)向虚拟机提供计算机网络的访问权限。

在这里插入图片描述
宿主机通过物理网络适配器连接网络,同时通过虚拟网络适配器连接内部虚拟交换机,和其他虚拟机通信。虚拟机通过内部虚拟交换机的NAT功能,通过宿主机访问网络。

  • 专用虚拟交换机
    和内部虚拟交换机类似,但物理计算机(宿主机)和虚拟机之间无法连接。

在这里插入图片描述
宿主机不连接专用虚拟交换机,故无法和虚拟机通信。虚拟机也无法上网。

NIC: Network Interface Card。网络适配器,俗称网卡或网络接口卡。

创建虚拟交换机

Hyper-V默认创建了内部虚拟交换机。
可以用Hyper-V管理器的“虚拟交换机管理器”创建新的虚拟交换机:

在这里插入图片描述

在这里插入图片描述

创建外部虚拟交换机时,可以配置是否和宿主机共享物理网络适配器:

在这里插入图片描述

可以创建多个虚拟交换机。
虚拟机的网络适配器随时可以更换连接到的虚拟交换机,非常方便。

管理操作系统:是指起管理作用的操作系统,这个操作系统负责管理所有的虚拟机。一般情况下,宿主机的操作系统就是管理操作系统。

创建虚拟机

从ubuntu官网下载镜像文件ubuntu-20.04.2.0-desktop-amd64.iso。

启动Hyper-V管理器,新建->虚拟机。弹出新建虚拟机向导,然后逐项填写。

  • 指定名称和位置
    名称:VirtualUbuntu,可自己决定。
    位置:勾选“将虚拟机存储在其他位置”,位置为“D:\ubuntu”,可自己决定。
  • 指定代数
    选择第二代,功能更新一点。
  • 分配内存
    启动内存:2048MB。可自己决定。
    勾选“为此虚拟机使用动态内存”,虚拟机在内存不够时可继续扩展内存。
  • 配置网络
    配置虚拟机的网络适配器连接到哪个虚拟交换机。可选择连接Default Switch,也可以连接其他的虚拟交换机。Default Switch是Hyper-V创建的使用NAT模式的内部虚拟交换机。这个配置在虚拟机创建后,也是可以随时修改的。Hyper-V的虚拟交换机有3种类型,虚拟机创建完成后,仍然可以配置其网络适配器,切换连接到的虚拟交换机。
  • 连接虚拟硬盘
    勾选“创建虚拟硬盘”,大小200GB,可自己决定。
  • 安装选项
    勾选“从可启动的映像文件安装操作系统”,然后填写映像文件ubuntu-20.04.2.0-desktop-amd64.iso的位置。

配置完成后的摘要如下:

在这里插入图片描述

然后再设置一下虚拟机:

在这里插入图片描述

  • 安全:取消“启用安全启动”。因为启用安全启动后,安装iso时会报错。
  • 内存:勾选“启用动态内存”,最大RAM 8192MB,可自己决定。
  • 网络适配器:根据情况选择连接合适的虚拟交换机。因为公司电脑只允许一个IP且绑定了MAC地址,所以我选择Default Switch,这是Hyper-V默认创建的内部虚拟交换机。如果网络允许为一台电脑分配多个IP,可以考虑连接外部虚拟交换机,这样虚拟机可以直接上网,可以被外网机器发现并连接。如果连接内部虚拟交换机,虚拟机只能被其他虚拟机或者宿主机发现并连接。

关闭虚拟机后可随时修改虚拟机的设置。

在虚拟机中安装ubuntu

选择之前创建的虚拟机,连接。
进入虚拟机界面后,点击启动,就进入安装了。安装过程和普通安装基本一样。我选择了“最小安装”,取消“安装Ubuntu时下载更新”,以加快安装速度。

配置ubuntu

安装完成,重启ubuntu。然后配置一些服务,方便在宿主机中操作ubuntu系统。

ssh service

sudo apt install -y openssh-server
/etc/init.d/ssh是脚本文件,start, stop, status命令都在里面,例如:

service ssh status
sudo service ssh start
sudo service ssh stop

/etc/ssh/sshd_config是配置文件,man sshd_config可以看到详细配置说明。
ssh service默认开机启动。
在ubuntu内通过ifconfig获取ip地址。需要注意:在内部虚拟交换机模式下,虚拟机的ip地址在物理计算机重启后会发生变化。
ubuntu开启ssh serivce后,在宿主机可以用putty等软件连接ubuntu。

samba service

sudo apt install -y samba
/etc/init.d/smbd是脚本文件,实现了start, stop, status等命令,例如:

service smbd status
sudo service smbd start
sudo service smbd stop

/etc/samba/smb.conf是配置文件。man smb.conf即可看到配置文件的详细说明。在smb.conf中增加一个section描述自己的共享目录,如下:

[ericwang]
comment = ericwang directory
path = /home/ericwang
valid users = ericwang
guest ok = no
writeable = yes
create mask = 0744
directory mask = 0755

可用命令testparm来测试smb.conf文件是否正确。
必须使用smbpasswd增加用户名和samba密码,否则宿主机登录不上: sudo smbpasswd -a ericwang
samba service默认开机启动。
利用samba service,宿主机可以直接访问和修改虚拟机内共享的目录和文件。

nfs service

sudo apt install -y nfs-kernel-server
/etc/init.d/nfs-kernel-server是脚本文件,提供status, start, stop命令等,例如:

service nfs-kernel-server status
sudo service nfs-kernel-server start
sudo service nfs-kernel-server stop

/etc/exports是配置文件。man exports,可以看到export的配置项的详细说明。例如想用/home/ericwang/nfs作为共享目录,那么先建立/home/ericwang/nfs目录,然后修改/etc/exports,增加/home/ericwang/nfs *(rw,sync,no_root_squash,no_subtree_check)
nfs service默认开机启动。
开启nfs service,虚拟机可作为nfs server,从而建立nfs调试环境。

xrdp service

xrdp是rdp(Remote Desktop Protocol)协议的开源版本。ubuntu开启xrdp服务后,可在win10使用远程桌面登录。好处有:

  • 可把ubuntu的声音重定向到win10宿主机播放,解决hyper-v无法播放声音的问题。
  • 可以调整ubuntu分辨率,实现全屏操作。
  • 可以通过远程桌面的设置,将win10的本地资源(例如打印机、剪贴板、磁盘分区、u盘)共享到ubuntu,从而在ubuntu和win10之间进行拷贝粘贴,在ubuntu中直接操作win10系统的文件。

Hyper-V针对ubuntu系统的增强会话模式就是基于xrdp实现的,相比增强会话模式,直接启用ubuntu的xrdp服务会更简单直接,兼容性也更好。从ubuntu20.04开始,Hyper-V自己也放弃了对ubuntu的增强会话模式的支持。

sudo apt install -y xrdp
/etc/init.d/xrdp是脚本文件,提供status, start, stop命令等,例如:

service xrdp status
sudo service xrdp start
sudo service xrdp stop

/etc/xrdp/是配置目录,/etc/xrdp/xrdp.ini等是配置文件。注意/etc/xrdp/pulse/default.pa是音频的配置文件,其内容如下:

.nofail
.fail
load-module module-augment-properties
load-module module-always-sink
.ifexists module-xrdp-sink.so
load-module module-xrdp-sink
.endif
.ifexists module-xrdp-source.so
load-module module-xrdp-source
.endif
.ifexists /var/lib/xrdp-pulseaudio-installer/module-xrdp-sink.so
load-module /var/lib/xrdp-pulseaudio-installer/module-xrdp-sink.so
.endif
.ifexists /var/lib/xrdp-pulseaudio-installer/module-xrdp-source.so
load-module /var/lib/xrdp-pulseaudio-installer/module-xrdp-source.so
.endif
load-module module-native-protocol-unix

可以看出,如果要实现音频重定向,需要module-xrdp-source.so和module-xrdp-sink.so。而这两个动态库默认不安装,所以需要我们自己编译和安装,才能实现xrdp的音频重定向。这里简单说明一下:pulseaudio是linux系统的声音服务之一,不同的系统环境使用的pulseaudio版本是不同的。而xrdp中的pulse模块编译依赖pulseaudio的源代码。这就是安装xrdp时默认不会安装pulse扩展模块的原因。我们需要下载pulseaudio-module-xrdp和pulseaudio的源代码,编译生成module-xrdp-source.so和module-xrdp-sink.so,然后安装到ubuntu系统中。

编译步骤等详情可参考pulseaudio-module-xrdp的编译和安装
这里简单叙述和解释编译步骤:

因为需要下载源代码,所以源列表/etc/apt/sources.list需要打开deb-src的下载链接。在ubuntu图形界面中选中“软件和更新”->“Ubuntu软件”->“源代码”即可。

sudo apt install -y build-essential dpkg-dev libpulse-dev
sudo apt install -y pulseaudio
sudo apt build-dep -y pulseaudio

build-dep指令是指准备好编译pulseaudio所需的软件包,执行完这步后,就可以顺利编译pulseaudio的源码了(这里只需要配置pulseaudio的编译环境,用来编译pulseaudio-module-xrdp,不需要编译pulseaudio)。
下载pulseaudio的源码:

mkdir -p ~/workspace/pulseaudio
cd ~/workspace/pulseaudio
apt source pulseaudio

apt source pulseaudio的source指令是指下载pulseaudio软件包的源码。下载后的文件情况如下:

在这里插入图片描述

下载的pulseaudio的版本是pulseaudio-13.99.1。
用指令pulseaudio --version查看ubuntu安装的pulseaudio的版本,一般和源码是匹配的:pulseaudio 13.99.1。
配置pulseaudio的编译环境,为接下来编译pulseaudio-module-xrdp做准备:

cd pulseaudio-13.99.1
./configure

下载pulseaudio-module-xrdp并编译:

cd ~/workspace
git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.git
cd pulseaudio-module-xrdp
./bootstrap && ./configure PULSE_DIR=/path/to/pulseaudio-13.99.1
make

/path/to/相当于占位符,表示希望你用PC上的实际路径替代它,例如我的PC上的路径是:~/workspace/pulseaudio/,所以要替换为PULSE_DIR=~/workspace/pulseaudio/pulseaudio-13.99.1

安装:

sudo make install

编译生成的module-xrdp-source.so和module-xrdp-sink.so等,被安装到了/usr/lib/pulse-13.99.1/modules/目录下。如果想反安装,sudo make uninstall即可从/usr/lib/pulse-13.99.1/modules/目录下删除相应的so。

配置完audio后,用远程桌面login。在远程桌面里打开终端控制台,执行测试程序pavumeter,如果弹出界面显示xrdp sink,则xrdp音频重定向成功;如果显示伪输出,说明重定向失败。
如果重定向失败,解决办法是打开终端控制台,执行pulseaudio -k 。然后再测试一次,一般就可以了。

在这里插入图片描述

务必注意:ubuntu有两种GUI界面登录方式:

  • Hyper-V管理器中连接ubuntu登录。
  • win10远程桌面连接ubuntu登录。

大概是因为ubuntu不允许两个GUI界面同时存在,所以二者互斥。如果Hyper-V管理器里连接并登录了ubuntu,那么win10远程桌面连接登录,会显示黑屏。反之,如果win10远程桌面先登录,那么Hyper-V管理器连接登录会显示黑屏。解决办法是把先前登录的账号logout。

使用win10远程桌面登录的过程简单介绍一下:

在这里插入图片描述

常规栏填写IP地址。

在这里插入图片描述

显示菜单栏里可以选择分辨率等。

在这里插入图片描述

本地资源栏可以配置远程音频如下

在这里插入图片描述

选“在此计算机上播放”,win10宿主机就允许接收ubuntu重定向过来的声音数据了。

在这里插入图片描述

本地设备和资源栏,可以选择允许共享给ubuntu的磁盘分区。这样ubuntu系统可以直接访问这些windows分区的文件了。

配置好这些选项后,点击连接,出现如下界面

在这里插入图片描述

输入账号密码后,即可远程登录ubuntu系统如下图所示。

在这里插入图片描述

远程登录ubuntu系统的使用体验,比Hyper-V管理器连接ubuntu的体验要好很多。推荐ubuntu开启xrdp服务,win10宿主机远程登录。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值