linux内核已经升级到7并且使用了rust大幅提升, 所以在hyperv安装最新Archlinux虚拟机来体验.

安装 Arch Linux

我选择的是 Arch Linux 官方滚动发布镜像 archlinux-x86_64.iso,体积约 1.5GB,采用最小化安装,适合作为高性能开发服务器。

Hyper-V 虚拟机创建要点

  • 代数:选择第二代(Gen 2)
  • 安全启动:务必在虚拟机设置中取消勾选“启用安全启动”,否则无法引导
  • 网络:先使用默认网络,后续再切换到内部网络

启动虚拟机后,进入命令行 Live 环境。推荐使用官方安装脚本:

archinstall

关键选项选择:

选项推荐值
镜像源中国用户选择 China 下的清华/中科大源加速下载
磁盘分区选择 Best-effort default partition layout
文件系统ext4(稳定)或 btrfs(支持快照), 虚拟机更推荐"ext4".
用户为root用户设置密码, 再添加一个用户并作为sudo用户
Profile选择 Minimal(无界面,高性能)
网络配置保持默认 NetworkManager

安装完成后,移除 ISO 镜像,重启进入新系统。


安装 SSH

进入 Arch 后安装并启动 SSH:

sudo pacman -S openssh
sudo systemctl enable sshd --now

查看 IP:

ip a

然后在 Windows 终端连接:

ssh 用户名@IP地址

此时可以正常连接,但如果使用 Hyper-V 默认网络,虚拟机重启后 IP 可能发生变化,因此建议配置固定 IP。


创建 Hyper-V 内部网络

打开:

Hyper-V 管理器
→ 虚拟交换机管理器
→ 新建虚拟交换机
→ 内部网络(Internal)

例如命名为:

VM-Internal

创建完成后,还需要进入虚拟机设置,将网卡切换到这个新的虚拟交换机。

注意:切换网络后原来的 SSH 连接会立即失效,因此建议先完成 Windows 端网络配置,再切换虚拟机网络。


配置 Windows NAT

以管理员身份打开 PowerShell:

为 Hyper-V 创建的虚拟网卡配置网关地址:

New-NetIPAddress `
  -IPAddress 192.168.100.1 `
  -PrefixLength 24 `
  -InterfaceAlias "vEthernet (VM-Internal)"

创建 NAT:

New-NetNat `
  -Name "VM-NAT" `
  -InternalIPInterfaceAddressPrefix "192.168.100.0/24"

配置 Arch Linux 固定 IP

Arch Linux 使用 systemd-networkd 管理网络,配置文件位于 /etc/systemd/network/

1. 查看网卡名称

ip a

常见名称:eth0ens160enp0s3

2. 检查并清理已有配置

ls /etc/systemd/network/

如果存在 DHCP 配置文件(如 10-eth0.network),先将其删除或备份,避免与静态配置冲突(systemd 按文件名顺序加载,优先匹配第一个):

sudo mv /etc/systemd/network/10-eth0.network /etc/systemd/network/10-eth0.network.bak

3. 创建静态 IP 配置文件

sudo vim /etc/systemd/network/20-wired.network

写入以下内容(请根据实际情况修改 IP):

[Match]
Name=eth0

[Network]
Address=192.168.100.10/24
Gateway=192.168.100.1
DNS=1.1.1.1
DNS=8.8.8.8

重要

  • Name 必须与网卡名称完全一致
  • 子网掩码使用 /24 格式,不要写 255.255.255.0
  • 不要添加任何 # 注释或中文,否则 systemd-networkd 可能会解析失败

4. 启用并重启网络服务

sudo systemctl enable systemd-networkd --now
sudo systemctl enable systemd-resolved --now
sudo systemctl restart systemd-networkd

5. 确认 IP

ip a

此时应显示 inet 192.168.100.10/24

6. 测试网络

ping 1.1.1.1
ping google.com

如果能够正常访问互联网,说明 NAT 和 DNS 配置已经生效。

之后即可固定使用:

ssh 用户名@192.168.100.10

连接虚拟机,而不用担心 IP 变化。


配置免密连接

  • 在 Windows 生成 SSH 密钥对,如果以前生成过就不用再生成:
ssh-keygen -t rsa -b 4096
  • 复制密钥到 Arch Linux:
cat ~/.ssh/id_rsa.pub | ssh 用户名@192.168.100.10 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

额外推荐:安装基础工具

最小化系统缺少一些常用工具,建议安装:

sudo pacman -S git less vim fish
  • git:版本控制
  • less:Git 分页器(否则 git log 会报错)
  • vimnano:文本编辑器
  • fish:友好的交互式 Shell(可选)

常见问题

问题解决方法
重启后仍然进入安装界面移除虚拟机中的 ISO 镜像
重启后不进入系统启动顺序里把磁盘提升到第一个
固定 IP 不生效检查是否有多个 .network 文件冲突(如 10- 开头的文件优先级更高),清理冲突文件后重启 systemd-networkd
git log 报错 cannot run less安装 lesssudo pacman -S less
网络不通但 ip a 有 IP检查 DNS 配置,确保 systemd-resolved 已启用