温馨提示:
本文所述内容具有依赖性,可能因软硬条件不同而与预期有所差异,故请以实际为准,仅供参考。
最近有需求重装 VPS,因为主机商的镜像不纯净,经常出问题,但是看了看 MoeClub 的脚本,发现没法安装 CentOS7。
之后发现 CentOS7 使用的是 grub2 这个鬼东西进行引导,比较难弄一些。后来我就找到了一个比较巧妙的方法,在已有的 CentOS 7上面直接修改 grub2 来启动引导,进行网络安装。
前提条件
- VPS 当前系统是 CentOS7(因为要用到 grub2)
- 可以连接 VNC (没有 VNC 就无法使用安装界面)
操作步骤
查看网络信息
首先我们要知道自己的网卡相关信息:
- IP 地址
- 子网掩码
- 网关地址
- DNS 地址
查询 IP 地址和子网掩码直接使用 ifconfig
图中红色标明的,一个是 IP 地址(IP),一个是子网掩码(netmask)。
查询网关地址可以使用 route -n
图中红色的区域就会显示 GateWay 网关地址。
配置启动文件
我们先去下载需要用于网络启动的内核:
wget -O /boot/initrd.img http://http://mirror.centos.org/centos/7/os/x86_64/images/pxeboot/initrd.img
wget -O /boot/vmlinuz http://http://mirror.centos.org/centos/7/os/x86_64/images/pxeboot/vmlinuz
cp /boot/initrd.img /
cp /boot/vmlinuz /
之后去编辑 /etc/grub.d/40_custom 文件:
vim /etc/grub.d/40_custom
在最后一行添加(注意空格):
menuentry "InstallCentOS7" {
set root='(hd0,msdos1)'
linux /vmlinuz repo=http://http://mirror.centos.org/centos/7/os/x86_64/ ip=刚刚获取到的 IP 地址 netmask=刚刚获取到的子网掩码 gateway=刚刚获取到的网关地址 nameserver=1.1.1.1
initrd /initrd.img
}
保存,然后再执行
grub2-mkconfig --output=/boot/grub2/grub.cfg
grub2-set-default InstallCentOS7
来生成开机启动文件
开始安装
当以上操作都完成后,使用 reboot
来重启系统,请在重启之前提前打开 VNC(部分 VPS 可能重启 VNC 即断),准备进行安装。
当进入启动画面后,选择 InstallCentOS7 这个菜单,耐心等待几分钟,就可以看到 CentOS 7 的网络安装器界面了:
参考文章:
1、《#教程# 如何通过VNC手动网络重装 CentOS 7 VPS》