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
常见名称:eth0、ens160、enp0s3
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会报错)vim或nano:文本编辑器fish:友好的交互式 Shell(可选)
常见问题
| 问题 | 解决方法 |
|---|---|
| 重启后仍然进入安装界面 | 移除虚拟机中的 ISO 镜像 |
| 重启后不进入系统 | 启动顺序里把磁盘提升到第一个 |
| 固定 IP 不生效 | 检查是否有多个 .network 文件冲突(如 10- 开头的文件优先级更高),清理冲突文件后重启 systemd-networkd |
git log 报错 cannot run less | 安装 less:sudo pacman -S less |
网络不通但 ip a 有 IP | 检查 DNS 配置,确保 systemd-resolved 已启用 |