浅谈Linux一键重装的设计理念,Ubuntu,系统适配

102次阅读

共计 1538 个字符,预计需要花费 4 分钟才能阅读完成。

坛友 bin456789 最近搞出了小内存安装红帽 8 以上系统,Ubuntu 22.04,Alpine 等系统的支持,是件可喜可贺的事,我读了他的代码,大概搞清楚了他实现的思路和原理:在原系统写入一个 CentOS 7.6 的引导,重启进入这个系统;在 CentOS 7.6 这个临时系统里,再去读取他 GitHub 项目的配置,单硬盘环境,把硬盘格式化后,分为两个区,一个放系统 iso 镜像区,另一个用来写新系统,临时系统负责把 iso 镜像里的系统安装文件释放到另一个区,然后安装完毕,系统重启,新系统里再自动把镜像区格式化,再把容量和系统分区合并,形成一个完整的单盘,总体上来说是个非常巧妙的思路,令人敬佩。而且因为系统安装镜像不用在内存里加载,而是被放在硬盘上,所以也可以在低内存情况下实现红帽 9 以后系统的安装。Ubuntu 22.04 以来的难点:Ubuntu 虽然源自 Debian,但其母公司 canonical 野心已久,早就想脱离 Debian 自立门户,从 Ubuntu 18.04 开始,canonical 为 Ubuntu 添加了一种新的部署方式,就是 Cloud init,这个平台主要是给大的主机商用来自动给虚拟机自动化部署各类 Linux 系统用的,配置文件格式和传统的 Debian preseed 也完全不同,Ubuntu 对 preseed 文件的兼容与提供最小化网络安装微型系统的支持只持续到 20 版本,这还是在许多用户不满的情况下硬给的,到了 22,canonical 大砍一刀,把这种安装方式全部移除,所有人,要么自己准备第二个硬盘,下一个几个 g 的 iso 镜像安装 Ubuntu,要么指望主机商给的自动化部署,canonical 还“贴心”地给散户一个自己部署 Cloud init 自动安装的选项,但要求 CPU 必须支持虚拟化,这就把一大堆 VPS 拒之门外,这种 ** 傲慢,爱用用不爱用滚的态度,说实话挺侮辱人的,人家都赶我们这种低价值客户走了,还热脸贴冷 ** 干啥。况且我们不还有 Debian kali 红帽系坚持传统,给用户自由的系统可以选不是。当然,多亏了 bin456789 的巧妙思路,把硬盘第二个分区当做第二存储设备,写入系统文件的方法,让 ubuntu22 的网络安装成为可能,但我觉得这种方式还是不够优雅,因为在这种情况下,执行网络安装的程序从原系统变成了临时系统,导致只能读取一种自动文件安装,这也就意味着,如果原机器网络是静态的,临时的 CentOS 7.6 是无法获取到网络信息并修改新的 Cloud init 配置文件的,用户自定义端口,密码等功能也无法实现,适用的范围大幅缩窄。从萌咖创立这个工具,到我改进这个工具,我们的理念是相同的,就是在保证泛用性的基础上,还要兼顾足够的自定义功能。采用先下一个临时中转系统,再安装目标系统的方法,会让调试,读取网络配置,传递用户自定义端口密码等工作变得异常繁杂,最省事的方法就是不传递这些参数,但是有这些需求的人怎么办?网络是静态配置的用户怎么办?不是所有人的机器都是 dhcp,我无法接受引入一个新系统,却拒另一大部分人于门外,canonical 有野心,脱离 Debian 自立门户这个想法没问题,大不了我提供专门用来写 Cloud init 的方法就是,但简单粗暴地砍掉加载精简安装系统启动环境文件,逼所有人下载一个巨大的 iso 文件来安装,要么就是得初始化一个虚拟机,拒绝所有 CPU 不支持虚拟化的机器安装,说难听点就是范建,人家那么高冷,咱还没羞没臊地去舔干啥,是吧 爱吹海绵的泡泡 2023-05-13 09:51 2 这才是合格的坛友 鸡不择食 2023-05-13 09:56 3 支持大佬。wangtaoceo 2023-05-13 09:57 4 顶赞 madebi 2023-05-13 09:59 5 似乎回到了技术帖频出的时候

正文完
 0