这纯粹是理论上的,但假设我想在许多服务器上部署 Linux 发行版。我能想到的唯一解决方案是使用自定义脚本创建一个 initramfs 来对底层硬件执行检查,然后格式化主硬盘并安装操作系统。
现在我对我的方法并不完全满意,我宁愿在内核启动后做同样的事情init
。通常,init
会生成一个 shell 供用户登录。
我怎样才能用我自己的脚本替换它?
答案1
无需修改initramfs。有fai项目。
FAI 是一个非交互式系统,用于在计算机以及虚拟机和 chroot 环境上安装、定制和管理 Linux 系统和软件配置,从小型网络到集群和云环境等大规模基础设施。
它是一个用于无人值守大规模部署 Linux 的工具。您可以使用一台或多台原始 PC,打开电源,几分钟后,系统就会安装完毕,并完全根据您的具体需求进行配置,无需任何交互。
答案2
您可以通过无人值守的网络安装来完成上述大部分(也许是全部?)软呢帽,并且(尽管我对其他发行版不太熟悉)您至少应该能够对任何较大/最受欢迎的发行版执行相同的操作。
您想安装什么发行版? (不,“由我、我自己和我构建的自制系统”不会曾经接近任何值得安装在数十台机器上的东西;实际上,任何较受欢迎的发行版背后都有成千上万的人,其中相当多的人是全职员工,而较小的发行版背后则有数百人。只有那些与主要发行版相差无几的发行版才能用更少的人力完成任务。)这个问题的答案将大大缩小选择范围。看看亚马逊和其他“云”供应商为其虚拟机提供的内容,您也许可以将其中的大部分供自己使用。检查网络托管/住房机构使用什么,看看您是否可以在那里偷东西。
确保您使用的任何东西都有经过验证的记录,并且不太可能很快从人们的视线中消失。确保所涉及的许可证是明确的(陷入合法的困境并不有趣)并且符合您的喜好。