折腾我这个脚本,开发半年有余,有一些心里话,想和各位分享一下。
众所周知,在开发这类脚本领域,萌咖可以算是不折不扣的启蒙者,也是论坛和网上各处,流传最广泛的一个版本的脚本。这类脚本很多理念,比如支持多系统,多平台,多版本,都是萌咖的首创,这类大佬的领军性质,除了尊敬,其他我没什么好说的。
当然在此过程中,也诞生了许多人创造出的奇迹想法,有全盘重写的,有基于萌咖原脚本的框架,继续开发的改进版,但凡对我脚本开发有启发的人,我都会把他们的名字、博客地址放在脚本首位,吃水不忘挖井人就是这个道理,包括我一直强调其脚本还不够成熟的 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 等呢?它们没有满足占用足够小,或者使用量特别有优势的条件,所以它们在未来短期并不会放入我的考虑范围。每增加一个新系统,就要涉及大量测试,一个免费的东西,实在没更多精力去卷这些东西了。
热议
推荐楼 谷歌浏览器 昨天11:02
支持绑定,隔壁5k学着点
推荐楼 88232128 昨天11:45
文章太长,不看
2楼 張百萬 昨天10:31
3楼 疯狂痴呆 昨天11:01
折腾万岁
5楼 zhoumo310 昨天11:04
支持楼主一个
6楼 6fyC8r 昨天11:06
文字比较多,等有时间慢慢看
7楼 未完的歌 昨天11:11
楼主脚本dd oracle 很好使
8楼 0.0 昨天11:13
支持,绑定
9楼 52Fancy 昨天11:45
看我签名,大家一起折腾alpine linux
12楼 杜甫 昨天11:49
赞
13楼 errorflag 昨天12:16
楼主脚本甲骨文随便d这一点,其他脚本都做不到
14楼 greatly 昨天15:29
支持大佬!
15楼 bbsbbs 昨天15:36
支持楼主一个
16楼 linearn 昨天15:59
楼主的重装脚本还是挺靠谱的,几次 DD 下来都没有问题。现在折腾小机没有压力,反正不会挂掉。
17楼 WZ-Software 昨天16:08
Debian家族是会稍微变大了一点点
18楼 沙漠之水 昨天16:09
大佬的脚本在哪里
19楼 沙漠之水 昨天16:10
沙漠之水 发表于 2023-5-28 16:09
大佬的脚本在哪里
哎呀,我错了,以前就收藏过。
20楼 zxxx 昨天20:08
除了尊敬大佬,其他我没什么好说的。
22楼 C51 昨天21:53
沙漠之水 发表于 2023-5-28 16:09
大佬的脚本在哪里
大佬历史帖子里有
23楼 zaodama 昨天23:33
支持楼主
24楼 errorflag 2小时前
再支持一下
25楼 NoctuG 2小时前
支持大佬
26楼 paw 1小时前
支持绑定
27楼 泡泡的碎片 1小时前
支持
28楼 weiapp 1小时前
看起来很历害,支持大佬
29楼 chenhong005 1小时前
alpine linux docker 镜像很小.
谢谢作者分享.
去了解一下...
申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。