
Void Linux 不提供图形安装器,必须在 live 环境中手动分区、挂载、chroot 并安装引导——这不是“不友好”,而是设计使然:它把控制权交还给用户,而非用自动化掩盖底层逻辑。只要按步骤操作,20 分钟内可完成最小系统部署。
启动 live 环境后怎么确认网络可用
没有网络,xbps-install 会直接失败,且错误提示只显示“repository not found”,容易误判为源配置问题。
- 先运行
ip a查看是否有eth0或enp0s3等接口获取到 IP;无输出或显示DOWN,说明网卡未启用 - 多数 VPS 或虚拟机需手动启用 DHCP:
dhcpcd(不是dhclient,后者 Void 默认不装) - 物理机若用 Wi-Fi,live 环境默认不带
wpa_supplicant和iw,需先xbps-install -S wpa_supplicant iw再配网 - 验证连通性不要只 ping 8.8.8.8,而要
ping -c 3 alpha.de.repo.voidlinux.org——这是 XBPS 默认仓库地址,能通才代表源可达
分区时 swap 是必须的吗
不是必须,但忽略它会导致后续 xbps-install 在低内存设备(如 512MB VPS)上因 OOM 被 kill,错误信息是 xbps-src: fork: Cannot allocate memory,实际和编译无关,纯属内存不足。
- swap 分区大小建议:≤2GB RAM → 设等量 swap;≥4GB RAM → 可设 2GB 或直接跳过(但需确保安装时内存充足)
- 不用
swapon /dev/sda2启用 swap,xbps-install就不会使用它,哪怕分区存在 - 若用 LVM 或加密卷,swap 必须是未加密的独立分区——runit init 不支持从加密卷加载 swap
- UEFI 系统若同时挂载
/boot/efi,注意该分区格式是vfat,不能用于 swap
chroot 后为什么 xbps-install base-system 报错 “No packages match”
根本原因几乎全是仓库索引未同步,而非包名写错或网络不通。Void 的 xbps 默认不自动刷新元数据,必须显式触发。
- 进入 chroot 前,在 live 环境中先运行
xbps-install -Syu—— 这步同步的是 live 系统的索引,不影响目标系统 - chroot 后第一件事必须是
xbps-install -Sy(-S同步,-y自动确认),再装base-system - 若仍失败,检查
/mnt/etc/xbps.d/00-repository-*.conf是否被覆盖或为空;正确内容应含repository=https://alpha.de.repo.voidlinux.org/current -
base-system是元包(metapackage),不包含 kernel;必须紧接着运行xbps-install -y linux或linux-lts,否则 reboot 后无法启动
grub-install 失败常见于哪些磁盘场景
报错 grub-install: error: cannot find a GRUB drive for /dev/sda 或 embedding is not possible,本质是 BIOS/UEFI 模式与分区表类型不匹配,不是 grub 本身问题。
- Legacy BIOS + MBR 分区:确保用
cfdisk /dev/sda创建 DOS 分区表(非 GPT),且第一个分区设为 bootable(标记为*) - UEFI + GPT 分区:必须有 FAT32 格式的 EFI 系统分区(ESP),挂载到
/mnt/boot/efi,且grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=void - 虚拟机中常见坑:VMware 默认用 BIOS 模式但分配 GPT 磁盘,此时要么改固件为 UEFI,要么用
gdisk转回 MBR - 执行
grub-install前,确认/mnt/boot已挂载(即使没单独分区,也需绑定挂载:mount --bind /boot /mnt/boot)
最易被忽略的一点:runit 不生成 /etc/inittab,也不读取它;所有服务启用靠 ln -sf /etc/sv/<service> /var/service/</service>,装完系统后别急着重启,先在 chroot 里跑一遍 sv status 确认 dbus、sshd 等关键服务已链接生效。

















