Win11 使用 Hyper-V

1. 启用 Hyper-V

  • Win + R:OptionalFeatures

2. 配置 Hyper-V

  • 打开 Hyper-V 管理器
  • Hyper-V 设置:更改虚拟磁盘虚拟机的默认文件夹
  • 虚拟交换机管理器:新建内部虚拟交换机

  • 配置新建的交换机 IP

3. 新建虚拟机(CentOS 7.9)

4. 配置虚拟机

  • 添加网络适配器
  • 关闭使用自动检查点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
$ systemctl disable firewalld --now
$ systemctl disable NetworkManager --now

$ vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=dhcp
UUID=da56a6a0-4ee1-4ffe-9e6e-50cc6f072286
NAME=eth0
DEVICE=eth0
ONBOOT=yes
$ vi /etc/sysconfig/network-scripts/ifcfg-eth1
BOOTPROTO=static
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=192.168.7.21
NETMASK=255.255.255.0
$ systemctl restart network

$ hostnamectl set-hostname centos21
$ vi /etc/hosts
192.168.7.21 centos21

$ vi /etc/selinux/config
SELINUX=disabled

$ mkdir /etc/yum.repos.d/backup
$ mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup
$ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
$ yum repolist
$ yum update
$ yum upgrade -y
$ yum clean all
$ yum makecache

$ yum -y install vim wget net-tools telnet bash-completion

$ yum -y install ntp ntpdate
$ ntpdate cn.pool.ntp.org
$ hwclock --systohc

$ vim .bashrc
PS1="\[\e[1;35m\][\u@\h \W]\\$\[\e[0m\] "

5. 克隆虚拟机

  • 导出虚拟机
  • 导入虚拟机:选择复制虚拟机,注意存储文件夹的位置

6. 修改虚拟机的 product_uuid

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 查看名为devops01的虚拟机的GUID
(Get-WmiObject -Namespace root\virtualization\v2 -Class Msvm_VirtualSystemSettingData -Filter "ElementName='devops01'").BIOSGUID


# 替换为需要修改的虚拟机
$VMname="devops01"
$vmx = Get-WmiObject -Namespace root\virtualization\v2 -Class msvm_virtualsystemsettingdata
# 选择当前虚拟机
$CurrentSettingsData = $vmx | Where-Object { $_.ElementName -eq $VMname }
# 打印旧的GUID
$CurrentSettingsData.BIOSGUID
# 生成新的GUID
$GUID = [System.Guid]::NewGuid()
# 重新写入GUID,注意要带{}
$CurrentSettingsData.BIOSGUID = "{" + $GUID.Guid.ToUpper() + "}"
# 生成ModifySystemSettings空对象
$VMMS = Get-WmiObject -Namespace root\virtualization\v2 -Class msvm_virtualsystemmanagementservice
$ModifySystemSettingsParams = $VMMS.GetMethodParameters('ModifySystemSettings')
# 配置属性,需要特殊的转换方式
$ModifySystemSettingsParams.SystemSettings = $CurrentSettingsData.GetText([System.Management.TextFormat]::CimDtd20)
# 写入属性
$VMMS.InvokeMethod('ModifySystemSettings', $ModifySystemSettingsParams, $null)

7. 端口映射

1
2
3
4
5
6
7
8
9
10
11
12
13
# 映射端口
$ netsh interface portproxy add v4tov4 listenport=6666 connectport=5432 connectaddress=192.168.7.11
# 查看所有映射情况
$ netsh interface portproxy show all
侦听 ipv4: 连接到 ipv4:
地址 端口 地址 端口
--------------- ---------- --------------- ----------
* 6666 192.168.7.11 5432
# 查看端口占用
$ netstat -ano | findstr 6666
TCP 0.0.0.0:6666 0.0.0.0:0 LISTENING 6188
# 删除某条端口映射
$ netsh interface portproxy delete v4tov4 listenport=6666

参考