linux - 创建可引导的 .img 文件

标签 linux image bash iso bootable

<分区>

我在制作 .img 文件时遇到问题,我可以让它在 USB 中启动。

我的文件夹包含许多 RPM 文件,包括 linux distrobution 和一些 bash 脚本文件等。bash 脚本安装 Linux 服务器和除了设置 MySQL 和 PHP 之外的另外两个软件。我想从此文件夹制作 .img 文件,所以当我只是让 .img 文件可启动以从 USB 启动时,它应该会自动在计算机中安装所有内容。

我的问题是我不知道如何制作这样的 .img 文件。我应该使用任何特定的 bash 命令吗?你能帮我做这个吗?阅读和理解流程或使用任何软件的一些线索和文档非常完美。非常感谢你的帮助。 谢谢。

最佳答案

答案是:

不要这样做

至少不是您提议的那样。

您在没有真正定义您的需求 的情况下指定了问题的解决方案。有多少个标准包?您添加了多少/多大? 门控 项目是什么(例如,需要网络服务器,需要 sshd)?您只需要几个标准包还是数百个?

Linux 发行版,例如 Redhat、CentOS、Fedora、Canonical/Ubuntu、Debian,花费相当多的工时来完成这项工作。

因此,您需要知道您使用的是什么发行版。通过提及 rpms,您可能正在使用 Redhat、CentOS 或 Fedora。他们有创建“实时”CD(和/或 USB 内存棒)和“完整安装”DVD 的程序。但是,这可能是一项工作,尤其是当您试图移植他们不知道的额外文件时。

我强烈建议您为您的发行版使用标准安装程序 [已经过大量 QA'ed]。然后,在安装并重新启动后,从单独的媒体中提取您的 附加包或从您控制的服务器下载。您的东西的安装媒体可能只包含一个 bash 脚本,该脚本创建 /etc/yum.repos.d/mystuff.repo 并启动 yum install mystuff

此外,如果您要执行即插即用安装程序,您是否希望它在不询问的情况下直接删除/重新分区主硬盘驱动器(例如全自动)?或者,您是否希望它像标准安装程序那样显示现有分区等?

回到要求,为什么您需要有一个一次性安装程序?

您打算在多少个系统上安装它? 5、10、100、1000?他们都在服务器场吗?使用 PXE 引导和从中央服务器引导/安装可能会更好。

例如,Google 拥有数十万台 [或更多] 服务器。 他们对此有需求。但是,他们也有整个开发团队致力于他们使用的内部方法。

对于给定的服务器,您需要多久执行一次此操作?初始安装后,您的更新计划/方法是什么(例如 yum 等)?

通过使用标准安装,您负责整个系统的 QA [标准系统 + 您的自定义内容],只负责您的自定义内容。 p>

例如,Fedora 不鼓励任何“完全安装”。他们现在更喜欢“实时启动”并从 Internet 安装方法。

其中一个原因是创建了完整的安装盘 [有很多 QA]。但是,它是静态的。如果软件包有更新,完整安装将安装未打补丁的旧版本。

我有使用它的情况,然后在重启后执行 yum update。完整安装盘安装了一些在发布后一两周内变得过时/不兼容的东西。他们与更新发生冲突,事情就坏了。我不得不手动干预。这不太可能发生在实时启动安装中,它会下载最新的 [并且可能是大多数已修复的错误] 包。

在 fedoraproject.org 站点上,您可以找到有关创建 live CD 和/或 USB 的文档。他们甚至可以向您展示如何添加一些自定义文件。其他发行版站点将有类似的文档。

顺便说一句,我从 1981 年就开始做操作系统安装工具包,所以以上所有内容都来自经验。我从头开始创建它们,并从发行版中破解了它们。

可以吗?当然。你真的想做还是应该你想做?也许。请注意您在维护方面所做的工作。

关于linux - 创建可引导的 .img 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33404141/

相关文章:

Linux 去除串口多余字符

linux - bash 脚本命令替换如何工作?

html - 超链接输入图像

linux - 如何在 bash 中将数组元素初始化为 0?

css - 为什么在ie中,绝对定位的标志是在右边?

ruby - 如何使用 Ruby 和 Sequel 将图像存储在数据库中?

Linux bash 如何在复制命令中使用通配符的结果作为文件名

关闭管端错误

linux - 修剪 bash/sed 中的输入

linux - 禁用只读 ext4 fs 的日志记录