我有一个 Ubuntu 系统的可启动映像 (ISO),但它本身不是安装程序。
我希望能够指示系统通过网络复制 ISO 并将其有效地复制dd
到内部存储(覆盖以前存储在那里的任何内容),然后重新启动到其本地副本。
(我不想简单地通过网络从映像启动。)
我需要设置什么来实现这一目标?需要在目标系统上安装什么,例如 GRUB?
我的用例是我正在开发一个嵌入式系统并定期重新生成这些图像。当我有新版本的软件时,我希望能够轻松地刷新板载存储。没有什么需要坚持。
我正在寻找相当交钥匙的东西。我不需要复杂的可启动恢复映像菜单。我可以作为 Docker 容器部署到本地服务器的东西会很棒。
很确定其他人可以想出更优雅的东西,但是......
- 将目标系统引导到 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
建议先用一个小文件进行测试,以确保所有的措辞都是正确的......
PXE 是您的解决方案,因为该设备永久在网络上(从您的回复中暗示)抱歉无法评论,因为声誉不足,直到投票...
正如其他评论者指出的那样,我应该看看 PXE 引导。我编写了自己的项目来在我的网络上提供 PXE 引导服务,然后想出了如何构建iPXE,这是一个 UEFI 引导加载程序,可以在引导时运行自定义脚本,例如可以通过网络引导 ISO 文件,或者启动使用
dd
pid 1 等启动 Linux 。