是否可以在 iPXE 内部或借助其他网络启动程序从 ISO 或类似文件类型创建本地分区?
我知道 PXE 通常用于“无盘启动”,但我想启动某些映像(在本例中为 ISO),这些映像可能会超出客户端 PC 拥有的 RAM 量(我也不知道 iPXE 是否实现了类似交换内存的功能)。因此,我不太习惯使用 memdisk 或 wimboot,而是宁愿将 ISO“安装”到本地磁盘,然后使用 sanboot 或链式加载 GRUB4DOS 进行启动。
现在我确实找到了很多关于如何从本地磁盘启动的解释,但没有一个解释如何将远程映像传输到我的本地磁盘,有人可以帮忙吗?
答案1
如果您查看块设备的工作方式,您的磁盘(例如 /dev/sda)或分区(例如 /dev/sda1)或 cdrom(例如 /dev/sr0),甚至图像文件(例如 mycdrom.iso)看起来都几乎相同。
您可以使用 cat 或 dd 复制图像并按照您认为合适的方式使用它们。
听起来您想要做的就是:cat /dev/sr0 > /var/cdrom_image_path/whatever.iso
然后,如果您希望它显示为 iSCSI,则可以使用 targetcli 将 whatever.iso 导出为 iSCSI 目标,或者使用您认为最好的 PXE 堆栈。
作为复制映像的一个示例,也许可以看看 OpenStack 裸机项目的工作原理。它们通过 PXE 启动 iSCSI 目标服务器,将 /dev/sda 共享为目标,然后从主服务器连接到它以写入磁盘映像。这非常巧妙。