Files
Knowledge/1 使用/Linux/虚拟机安装.md
T

202 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
在无图形界面的服务器上,全程通过命令行操作是标准做法。核心思路是使用 `virt-install` 命令创建虚拟机,并通过 **VNC** 远程连接来完成 Windows 的图形化安装。
以下是完整的命令行操作手册:
---
### 📋 一、前提条件
在开始之前,请确保:
1. **CPU 支持虚拟化**:你的 E5-2673 支持,但需在 BIOS 中确认 **Intel VT-x** 已启用。
2. **拥有 sudo 权限**。
### 🛠️ 二、安装 KVM 及相关工具
1. **更新软件包列表**:
```bash
sudo apt update
```
2. **安装 KVM、QEMU、libvirt 和 virt-install**(无需图形界面工具 `virt-manager`):
```bash
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst ovmf
```
3. **将当前用户加入 `libvirt` 和 `kvm` 组**:
```bash
sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USER
```
4. **启动 `libvirtd` 服务并设置开机自启**:
```bash
sudo systemctl enable --now libvirtd
```
5. **验证服务状态**:
```bash
sudo systemctl status libvirtd
```
确保状态为 `active (running)`。
### 🌐 三、(可选)配置桥接网络
默认的 `NAT` 网络(`default`)可以让虚拟机访问互联网,但如果需要虚拟机与宿主机在同一个局域网,并拥有独立 IP,则需要配置桥接网络。
> **注意**:以下操作通过 SSH 连接服务器时请格外小心,错误的网络配置可能导致连接中断。建议通过服务器控制台(如 IPMI、iDRAC)操作。
1. **查看网卡名称**:
```bash
ip link show
```
找到你的物理网卡,如 `enp3s0` 或 `eth0`。
2. **备份当前 Netplan 配置**:
```bash
sudo cp /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak
```
你的配置文件可能叫别的名字,以 `/etc/netplan/` 目录下的实际文件名为准。
3. **编辑 Netplan 配置文件**:
```bash
sudo nano /etc/netplan/50-cloud-init.yaml
```
4. **修改为以下内容**(请将 `enp3s0`、IP 地址等替换为你自己的信息):
```yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: false
bridges:
br0:
interfaces: [enp3s0]
addresses: [192.168.1.100/24] # 替换为你的静态IP
routes:
- to: default
via: 192.168.1.1 # 替换为你的网关
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
parameters:
stp: false
forward-delay: 0
```
> 如果希望网桥通过 DHCP 自动获取 IP,可将 `addresses`、`routes`、`nameservers` 替换为 `dhcp4: true`。
5. **应用配置**:
```bash
sudo netplan apply
```
6. **验证网桥**:
```bash
ip addr show br0
```
### 💾 四、准备 ISO 镜像文件
创建目录存放 ISO 文件:
```bash
mkdir -p ~/iso
```
将以下两个 ISO 文件放入 `~/iso` 目录:
* **Windows 10 LTSC ISO 镜像**
* **VirtIO 驱动 ISO**:从 [Fedora 官方仓库](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso) 下载。
### 🚀 五、使用 virt-install 创建虚拟机
执行以下命令创建虚拟机:
```bash
sudo virt-install \
--name win10-ltsc \
--memory 8192 \
--vcpus sockets=1,cores=4,threads=1 \
--disk path=/vm/disk/win10-ltsc.qcow2,size=60,bus=virtio \
--disk path=/vm/iso/virtio-win.iso,device=cdrom \
--cdrom /vm/iso/zh-cn_windows_10_enterprise_ltsc_2021_x64_dvd_033b7312.iso \
--os-variant win10 \
--network network=default,model=virtio \
--graphics vnc,listen=0.0.0.0 \
--console pty,target_type=serial \
--boot uefi,firmware.feature0.name=secure-boot,firmware.feature0.enabled=no \
--check path_in_use=off
```
#### 各参数说明
| 参数 | 说明 |
| :--- | :--- |
| `--name` | 虚拟机名称 |
| `--memory` | 分配的内存大小(MB),此处为 8GB |
| `--vcpus` | CPU 配置:1 个 CPU 插槽,4 个核心,每个核心 1 个线程 |
| `--disk` | 磁盘路径、大小(GB)和总线类型(`virtio` 性能最佳) |
| `--cdrom` | Windows ISO 镜像路径 |
| `--os-variant` | 操作系统类型,`win10` 适用于 Windows 10/11 |
| `--network` | 网桥名称(如用 NAT 则填 `default`)和网卡型号(`virtio`) |
| `--graphics` | **关键**:启用 VNC,并监听所有网络接口 |
| `--console` | 开启串行控制台,便于故障排查 |
| `--boot` | 使用 UEFI 固件(`ovmf`)启动 |
> **关于 `--os-variant`**:执行 `osinfo-query os | grep win` 可查看所有支持的 Windows 版本。
### 🖥️ 六、通过 VNC 完成 Windows 安装
1. **确认 VNC 端口**:
```bash
sudo virsh vncdisplay win10-ltsc
```
输出类似 `127.0.0.1:0`,表示 VNC 服务在 **5900** 端口(`:0` 对应 5900,`:1` 对应 5901)。
2. **连接 VNC**:在本地电脑上用 VNC 客户端连接:
```
你的服务器IP:5900
```
> **安全提醒**:上述配置中 VNC 未设密码,任何人都可连接。建议通过 SSH 隧道转发 VNC 端口,或使用 `--graphics vnc,password=你的密码` 设置密码。
3. **在 VNC 窗口中安装 Windows**:
* 正常进入安装界面。
* 当提示 **“未找到任何驱动器”** 时,点击 **“加载驱动程序”**。
* 点击 **“浏览”**,找到 VirtIO 驱动 ISO 中的 `viostor\w10\amd64` 文件夹,加载 **“Red Hat VirtIO SCSI Controller”** 驱动。
* 磁盘识别后,继续完成 Windows 安装。
### 🚀 七、安装完成后的优化
1. **安装 VirtIO 网卡驱动**:
* Windows 安装完成后,进入“此电脑”,打开 VirtIO 驱动光盘。
* 运行 `virtio-win-gt-x64.exe` 安装所有驱动。
2. **启用远程桌面(RDP)**:
* 在 Windows 中:设置 → 系统 → 远程桌面 → 开启远程桌面。
* 之后可通过 RDP 客户端直接连接,比 VNC 更流畅。
3. **常用虚拟机管理命令**:
```bash
# 启动虚拟机
sudo virsh start win10-ltsc
# 关闭虚拟机(需在 Windows 内关机)
sudo virsh shutdown win10-ltsc
# 强制关闭
sudo virsh destroy win10-ltsc
# 查看所有虚拟机状态
sudo virsh list --all
# 删除虚拟机
sudo virsh undefine win10-ltsc
```
### 💎 总结
整个流程可概括为:
1. **安装** KVM 相关软件包。
2. **(可选)配置**桥接网络。
3. **准备** Windows ISO 和 VirtIO 驱动 ISO。
4. **执行** `virt-install` 命令创建虚拟机。
5. **通过 VNC 连接**,在 Windows 安装过程中加载 VirtIO 驱动。
6. **安装 VirtIO 驱动**并启用 RDP,完成优化。
如果在 VNC 连接或驱动加载环节遇到问题,可以随时再来问我。