但如果你的是 KVM VPS,并且有 VNC 控制台,那么可以netboot.xyz,它从网络引导安装你需要服务器操作系统。
面操作环境为 CentOS 7 。在开始之前,建议用 ip addr
命令查看网络配置,并记下网卡配置备用。
cat /etc/sysconfig/network-scripts/ifcfg-eth0
cat /etc/sysconfig/network-scripts/ifcfg-lo
下面正式开始:
1. 下载 iPXE Linux 内核文件并重命名放至合适位置。
wget https://boot.netboot.xyz/ipxe/netboot.xyz.lkrn -O /boot/generic-ipxe.lkrn
2. 创建 netboot.xyz initrd 文件以连接网络并指定文件下载源。
cat > /boot/netboot.xyz-initrd << "EOF"
#!ipxe
#/boot/netboot.xyz-initrd
imgfree
dhcp
set dns 8.8.8.8
ifopen net0
chain --autofree https://boot.netboot.xyz
EOF
3. 添加 Grub2 启动菜单选项。
cat > /etc/grub.d/40_custom << "EOF"
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry 'netboot.xyz' {
set root='hd0,msdos1'
linux16 /boot/generic-ipxe.lkrn
initrd16 /boot/netboot.xyz-initrd
}
EOF
4. 延长 Grub 启动菜单显示时间。
sed -i 's|^GRUB_TIMEOUT.*|GRUB_TIMEOUT=60|' /etc/default/grub
5. 更新 Grub 配置并重启,之后在启动菜单选择 netboot.xyz 进入。
grub2-mkconfig -o /boot/grub2/grub.cfg && reboot
6. 进入 netboot.xyz 后,选择 Linux Network Installs,选择要安装的系统,选择图形化界面安装,之后等待下载好系统文件,便会转到系统安装界面。





补充:如果使用的 VPS 不支持 DHCP,则需要手动配置网络连接,具体可参考官方这个文档(不同之处,该示例在 Debian 下操作)。
使用netboot.xyz体验
就我自己的实际使用体验来说,有以下几条值得记录一下:
- 小内存的VPS使用netboot.xyz安装的话,可能会比较麻烦,可能会遇到内存不足的情况,尤其是安装CentOS及CentOS衍生版、Windows等类型的系统
- 其实netboot.xyz只是代替了我们下载系统最小化安装所需要的文件以及配置对应的启动项的步骤,安装过程中还是需要联网下载部分文件以完成系统的安装过程
- 国内腾讯云、阿里云等服务器情况,因为涉及到带宽问题,如果使用netboot.xyz进行系统重装,建议安装过程最好不要采用图形化安装器,并且系统安装过程建议不要安装暂时不用的软件包,比如桌面环境,服务器环境组件等,可以在系统安装完成之后修改成内网源再进行安装以节省时间。
- 不知道是不是我下载的版本不对还是netboot.xyz只支持64位的系统,目前我发现只能引导64位的系统,如果特殊情况需要安装32位的系统,可能暂时行不通。
- 一般来说,常见的服务器提供商提供的环境都支持DHCP,如果不支持DHCP,需要手动设置网络,会稍微麻烦一些。
- 对于部分比较旧系统版本,比如Debian8,直接写入可能会出现卡在启动界面上,如果遇到这种情况,可以先升级到比较新的版本比如Debian9、Debian10等版本再进行写入。
参考文档:https://netboot.xyz/docs/
转载请注明:落伍老站长 » 使用netboot.xyz重装系统(KVM虚拟化vps)