卧榻之侧,岂容他人鼾睡
众所周知,各大云服务器厂商都会在自己的镜像里内置各种“Agent”,一般来说,这些Agent都是起到一个监控运行,帮你重置密码的作用。但有句古话说的好:卧榻之侧,岂容他人鼾睡,所以,给VPS更换自己喜欢的系统成为了一个势在必行的操作。这里就简单介绍一下怎么在VPS上安装openSUSE(Legacy Grub)。
相比于github上的VPS2Arch, 其他发行版的镜像就没有说有这种一键式的脚本了,所以我们要借助netboot.xyz的帮助。netboot.xyz是一个可以通过Bios/Grub启动的PXE引导工具。你可以在其中选择你需要的系统镜像引导并安装,这就大大降低了从给VPS换系统的难度,要不然就只能自己做镜像dd进vps的盘了。
准备工作
- 需要有
- 一台可以VNC的VPS(Centos系统)
- 相应系统的国内镜像源(建议选择你VPS运营商的镜像源)
- 白天时间,晚上除非你不想睡觉了
- 需要查看
/sys/firmware/efi/
是否存在(确定是否是UEFI启动)
开始
-
首先调节Grub菜单的超时时间
sed -i "/GRUB_TIMEOUT/cGRUB_TIMEOUT=60" /etc/default/grub
-
重启,打开vnc,在菜单界面按c进入命令行
ls #查看驱动器 set root=(<ls显示出来的结果>) #选定硬盘 一般格式为(hdX,msdosX)或者(hdX,gptX) ls / #查看磁盘目录确定你的/boot目录所在分区
-
重启,进系统,开始处理启动项
-
先处理需要加载的项
cd /boot wget https://boot.netboot.xyz/ipxe/netboot.xyz.lkrn
-
编写用于加载项的initrd文件,名字无所谓
##首先 vi /boot/netboot.initrd ##然后输入 #!ipxe imgfree dhcp chain --autofree https://boot.netboot.xyz ##保存退出
-
处理Grub菜单
vi /etc/grub.d/40_custom ##输入如下 menuentry 'netboot' { set root='hd0,msdos1' ##这里写之前找到的/boot所在的分区 linux16 /boot/netboot.xyz.lkrn initrd16 /boot/netboot.initrd } ##保存退出
-
-
重新生成grub文件
grub2-mkconfig -o /boot/grub2/grub.cfg
妥了,下一步整起
安装系统
如果你是国外的vps,直接选择Installer下面的发行版就行了,这里着重讲述下openSUSE。因为openSUSE的repo问题比较特殊,所以需要额外处理一下。
实际上,netboot.xyz在你选择installer后,下一步是去web上拉对应的iPXE脚本。iPXE脚本中定义了软件源与参数。由于d.o.o的自身的问题和国内网络环境的问题,走官方提供的脚本肯定死路一条。幸好netboot.xyz还提供了iPXE Shell,得以让我们可以手动引导安装。
- 安装步骤
-
在grub菜单中选择netboot,进入然后选择iPXE Shell
-
一条一回车,输入以下内容,安装选用了openSUSE官方wiki描述的远程安装方式(ssh 安装)
# 如果你要安装TW,输入 set dir tumbleweed/repo/oss # 如果你要安装leap,输入 set opensuse_base_dir distribution/leap set version 15.3 # 这里写你想装的版本 set dir ${opensuse_base_dir}/${version}/repo/oss #####以下为通用内容##### set netsetup netsetup=dhcp set opensuse_mirror http://opentuna.cn/opensuse imgfree kernel ${opensuse_mirror}/${dir}/boot/x86_64/loader/linux initrd ${opensuse_mirror}/${dir}/boot/x86_64/loader/initrd imgargs linux ${netsetup} install=${opensuse_mirror}/${dir} initrd=initrd noapic usessh=1 sshpassword="pa33w0rd" ##密码随便,如果启动的时候kernel panic,去掉noapic再试一次 boot
-
在输入了boot回车之后,安装程序就会开始引导了,在引导完成后,会提示你连接,那么就打开你本机的终端(kde/gnome的随你便),然后:
ssh -X root@你的ip地址 yast.ssh
然后yast就会启动,熟悉的安装界面就出来了,装就完事
-
注
- 这么装界面会有点卡
- 安装的时候别手闲选启用online repo
- 尽量选择一个你不会重启,不会关机,不会断网的时间,虽然安装只有2G但是还是很慢,怎么说也得有个1小时+(我睡着了,我也不知道)
- 如果你发现他装完后,VNC上还是处在一个提示让你链接ssh的地方,不要慌,你这会什么
shutdown
,poweroff
,reboot
,init 2
都用不了。再输入yast.ssh, 打开窗口后直接abort,他就自己重启了。 - 装完记得打个快照/镜像