宇宙主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

欧基零壹微头条IP归属甄别会员请立即修改密码
查看: 3052|回复: 29

关于开发一键重装脚本的理念,以及个人心得体会

[复制链接]
发表于 2023-5-28 10:29:12 | 显示全部楼层 |阅读模式
本帖最后由 天权璇玑 于 2023-5-28 10:37 编辑

折腾我这个脚本,开发半年有余,有一些心里话,想和各位分享一下。

众所周知,在开发这类脚本领域,萌咖可以算是不折不扣的启蒙者,也是论坛和网上各处,流传最广泛的一个版本的脚本。这类脚本很多理念,比如支持多系统,多平台,多版本,都是萌咖的首创,这类大佬的领军性质,除了尊敬,其他我没什么好说的。

当然在此过程中,也诞生了许多人创造出的奇迹想法,有全盘重写的,有基于萌咖原脚本的框架,继续开发的改进版,但凡对我脚本开发有启发的人,我都会把他们的名字、博客地址放在脚本首位,吃水不忘挖井人就是这个道理,包括我一直强调其脚本还不够成熟的 bin456789,他在引导 Alpine Linux 写入自动应答文件方面,给了我从 0 到 1 的启发,所以也是要表达感谢的。

当然,面对瞬息万变的世界,层出不穷的新系统,复杂多变的环境,萌咖的脚本能应对的环境已经越来越窄了,包括不能从红帽7+系统正确引导,处理 IPv6 的能力为 0 等,“经典”只是我们从过去的眼光看的,而不意味着它直到现在也一直那么“好用”。不然我为什么要花这么大精力去改进。

回到正题,我觉得至少对我来讲,这类脚本的功能和推出,需要遵守以下这些原则:

1. 有始有终

有始有终,就像汽车送客一样,能送客人到哪个目的地,还能接客人回来,一个合格的一键脚本,应当需要保证,在当下被它重装过的系统,能随时重装回它所支持的其他系统,对于其他商家提供的后台模板里,也能顺利重装出来,并维持重装前具备的特性和功能,比如网络等。

添加新系统支持时,我也要确保符合以上原则,并且在兼容性达标的基础上再去更新、宣传,我不能接受本该有更多努力空间下,自己做出来一个残次品。

2. 八面玲珑

拥有广泛的兼容性,我认为是脚本应当具备的合格功能,包括但不限于不同类别 grub 的引导处理,ipv4 ipv6 动态、静态的处理,要求用户自定密码、端口等功能能够全部平顺移植到所有支持的系统里等等,处理这类工作看上去简单,实际非常复杂,兼容性好,能顺利重装的机器多,除了大量的测试和用户反馈,没有其他捷径可走,很多脚本里匪夷所思的处理应对方法,都是因为我见识过那些“奇葩”,才去增加的备选手段,测试的机器少,应对的环境少,后果就是说不定在哪个商家上装完,就失败失联了。

3. 尽己所能

写脚本完全是看个人精力、能力,尽己所能是本分,疯狂内卷不可取,比方说除了 Windows,我开发的理念就是,新增的系统支持模板必须能够完整网络启动,从镜像源连接,完成安装,全世界各地镜像源的维护比我更专业、财力更多,存在时间过久。我不会去折腾自制 DD 包,按系统类别、系统版本、BIOS、UEFI、系统架构各来一份,在外面宣传我脚本所谓 41 合一,甚至更多等等,万一哪天机器没了,镜像源失效怎么办?就是这样的。

4. 有多大能力,吃多少饭

bin456789 这哥们最出彩的地方,就是启动一个中间系统,现在是 Alpine,然后在硬盘上多划个分区,把 Ubuntu 22 硕大无比的 iso 镜像弄进去,然后 down 个 cloud-init 文件初始化安装,文件写入主分区,再把存镜像的分区格式化和主分区合并。相同思路还实现了一些新版 Redhat 1.5G 内存以下安装。但是我觉得,系统开发者在考虑机器硬件问题的时候,早已给出了答案,就在各自的官方文档里,https://access.redhat.com/articles/rhel-limits ,红帽 8 9 明确写着网络安装内存至少需要 3GB 以上,我已经尽己所能,在 2GB 的内存上达成纯网络安装了。官方定这个配置,肯定有他的考虑和理由,我们不可能比他们还懂,我测试中经历过太多次,尝试在某些商家 1GB 内存机器中 dnf update,进程被杀的例子了,低于官方配置要求强行安装、启动。或者像 Canonical 那样,把网络安装文件直接摘了,逼着你用 U 盘装,或者使用商家提供的模板,何必还要跪舔?真的不是一个很明智的选择。

之所以引入 Alpine Linux,是因为我发现 Debian 系列也在有着逐步膨胀的倾向,新版占用的内存总是比旧版多,说不定等 Debian 13 14,512M 以下的机器也彻底无缘了,我选择镜像支持的目标是足够大众,适用人数足够多,能完好适配某种配置档位下的硬件环境,如果你硬件配置高,自然什么都能装,如果硬件差一些,至少还能有一种可以选择,Alpine Linux 足够轻量,自然就能满足这一条件。按内存容量划分,64-384M 低档位跑 Alpine,512M-2GB 中档位跑 Debian/Kali,3GB 以上高档位跑红帽,总有一款适合你即可。

那么更多种类的 Linux,比如 Linode 等商家后台提供的 Gentoo OpenSUSE Arch Linux 等呢?它们没有满足占用足够小,或者使用量特别有优势的条件,所以它们在未来短期并不会放入我的考虑范围。每增加一个新系统,就要涉及大量测试,一个免费的东西,实在没更多精力去卷这些东西了。
发表于 2023-5-28 11:02:23 来自手机 | 显示全部楼层
支持绑定,隔壁5k学着点
发表于 2023-5-28 11:45:48 | 显示全部楼层
文章太长,不看
发表于 2023-5-28 11:04:52 | 显示全部楼层
支持楼主一个
发表于 2023-5-28 11:06:02 | 显示全部楼层
文字比较多,等有时间慢慢看


发表于 2023-5-28 11:11:41 | 显示全部楼层
楼主脚本dd oracle 很好使
发表于 2023-5-28 11:45:00 | 显示全部楼层
看我签名,大家一起折腾alpine linux
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|宇宙主机交流论坛

GMT+8, 2024-10-31 07:30 , Processed in 0.062784 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表