从网络服务器安装自定义系统映像

从网络服务器安装自定义系统映像

我有一个 Ubuntu 系统的可启动映像 (ISO),但它不是本身就是一个安装程序。

我希望能够指示系统通过网络复制 ISO 并有效地将dd其复制到内部存储(覆盖以前存储在那里的所有内容),然后重新启动到其本地副本。

(我不想简单地通过网络从映像启动。)

我需要设置什么才能实现此目的?目标系统上需要安装什么,例如 GRUB?

我的用例是,我正在开发一个嵌入式系统,并定期重新生成这些图像。我希望每当我有新版本的软件时,都能够轻松地刷新板载存储。没有什么需要保留的。

我正在寻找相当一站式的东西。我不需要可启动恢复映像的复杂菜单。我可以作为 Docker 容器部署到本地服务器的东西会很棒。

答案1

确信其他人可以想出更优雅的办法,但是......

-将目标系统启动到 ubuntu live cd/usb。-
分配 IP 地址。-
识别目标驱动器 ex) /dev/sdg
-我相信您需要在实时系统上创建 root 密码。

在源机器上:(
确保实时系统中安装了 ssh)
sudo dd if=/home/source.iso bs=4M status=progress | ssh root@liveCDUSB_IPaddress "dd of=/dev/sdg bs=4M"

或者反过来(无需在实时系统上添加 root 密码)
而是在实时系统上从源拉取 iso
sudo ssh user@source_ipaddress "dd if=/home/source.iso bs=4M" | dd of=/dev/sdg bs=4M status=progress

建议先用一个小文件进行测试,以确保所有措辞都是正确的......

答案2

PXE 是您的解决方案,因为设备永久处于网络上(从您的回复中暗示)抱歉,在投票之前无法发表评论,因为声誉不足......

答案3

正如其他评论者指出的那样,我应该研究一下 PXE 启动。我写道我自己的项目在我的网络上提供 PXE 启动服务,然后弄清楚如何构建远程控制,一个可以在启动时运行自定义脚本的 UEFI 引导加载程序,例如可以通过网络启动 ISO 文件,或者以ddpid 1 启动 Linux 等。

相关内容