前言
之前听了mjj的推广,遂上了servarica
的年付48刀无限流量,2T大盘鸡。
说实话,这款大盘鸡性能着实弱鸡,还禁用任何种子行为,不过胜在便宜就是了。
上了车之后,想要自定义重装系统,发现无论是dd
命令还是用萌咖的脚本都会失败,
有一说一,个人感觉这家后台的VNC
有些难用,要是可以使用VNC Viewer
就好了。
后来想到使用NETBOOT.XYZ
进行网络重装系统。想记录一下好久了,没想又拖呀拖到现在。
准备
先在后台把系统换为CentOS 7
,因为是用GRUB2
引导的,用Debian
等还要修改,太麻烦了,就不搞了;
网上有一键脚本可以完成CentOS
系统下NETBOOT.XYZ
的一些手动配置,但是自动配置的一些参数,包括某些相关教程配置的一些通用参数,在servarica
上有些子水土不服,引导会找不到,具体看下文。
NETBOOT.XYZ
适用环境
- KVM虚化的VPS或者独立服务器;
- 网络支持DHCP;
- 可以使用VNC控制你的机器;
正文
1.记一下网络参数
SSH
连接服务器后需要先记一下网络参数,最后网络重装时可能会用得到,
比如IP地址、网关、子网掩码,
ifconfig
2.创建引导
wget https://boot.netboot.xyz/ipxe/netboot.xyz.lkrn -O /boot/generic-ipxe.lkrn
新建一个initrd
vi /boot/netboot.xyz-initrd
粘贴以下内容,这里的DNS
如果是国内需要修改;
#!ipxe
#/boot/netboot.xyz-initrd
imgfree
dhcp
set dns 8.8.4.4
ifopen net0
chain --autofree https://boot.netboot.xyz
然后编辑40_custom
vi /etc/grub.d/40_custom
自定义一个grub2
的开始菜单,重点来了
通用参数是这么搞的,粘贴的是以下代码,但是在servarica
上会有问题,
menuentry 'netboot.xyz' {
set root='hd0,msdos1'
linux16 /boot/generic-ipxe.lkrn
initrd16 /boot/netboot.xyz-initrd
}
后期补充
在ultravps上试了好多次,想复杂了,貌似不需要后面操作了,修改一下具体路径应该就好了,前面似乎不应该加/boot路径。 则应该是如下这样。
menuentry 'netboot.xyz' {
set root='hd0,msdos1'
linux16 /generic-ipxe.lkrn
initrd16 /netboot.xyz-initrd
}
servarica
上如上处理会找不到boot
,摸索了一段时间终于解决,
就是需要更改具体的boot
路径,根据磁盘uuid来,查看磁盘uuid
cat /etc/grub2.cfg
仿照里头的内容,将boot
路径写完整咯,
menuentry 'netboot.xyz' {
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint='hd0,msdos1' 69259f6d-413b-4bcb-80d3-cxxxxxxxxxxx
else
search --no-floppy --fs-uuid --set=root 69259f6d-413b-4bcb-80d3-cxxxxxxxxxxx
fi
linux16 /generic-ipxe.lkrn root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rhgb quiet
initrd16 /netboot.xyz-initrd
}
然后调整一下GRUB2
的开始菜单显示时间,这里我设置90秒,servarica
网页VNC
真的不太方便,
echo "GRUB_TIMEOUT=90" >> /etc/default/grub
使新的配置生效
grub2-mkconfig -o /etc/grub2.cfg
备注:
如果修改开始菜单显示时间不生效,我们可以调整GRUB2
的内核启动顺序
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
把回显出来的netboot.xyz
内核设置成默认启动的内核
grub2-set-default 1
现在重启机器然后使用VNC进行连接,可以看到netboot.xyz
的启动项。
3.开始重装系统
开始进入netboot.xyz
进行网络重装时,可能会提示输入IP地址、网关、子网掩码,按提示输入之前记录的相关参数即可,过程中有发现网络参数都填对了,netboot.xyz
却仍然提示没网络,后来多重复几下就正常了,不知道为什么……自检网络没问题的话就可以选择各种系统进行安装了。
扯一下servarica
的安装,进去VNC
重装才发现这家的是给了一块硬盘,但是分了两个LVM
分区,所以使用脚本重装时会提示无法格式化LVM
分区,所以重装失败了,emmm……