FOG Project 项目解读:Windows 与 Linux 物理机批量部署,以及与传统 WDS 的对比
项目地址:https://github.com/FOGProject/fogproject
关键词:FOG Project、物理机批量部署、Windows 部署、Linux 部署、PXE、WDS、系统镜像、开源运维
一、为什么物理机批量部署更需要 FOG
在 VMware、Hyper-V、KVM 或 Proxmox 环境中,虚拟机通常可以通过模板、快照、克隆和脚本快速创建。虚拟机的硬件抽象程度较高,批量复制系统往往已经是虚拟化平台的原生能力。
物理机则完全不同。
企业、学校、工厂或机房中的电脑,可能来自不同厂商和不同型号,硬盘容量、启动模式、网卡、显卡和其他硬件都可能存在差异。设备出现故障或需要批量重装时,运维人员往往还要面对:
- 每台电脑重复安装 Windows 或 Linux
- 通过 U 盘或移动硬盘逐台启动安装程序
- 重复进行磁盘分区、系统配置和软件安装
- 不同型号设备需要分别处理驱动问题
- 大量电脑需要在同一时间完成系统重装
- 分支机构设备无法由总部人员逐台现场处理
- 旧设备回收或维修后需要重新初始化
这类场景中,虚拟机模板无法直接发挥作用,而 PXE 网络启动、系统镜像和集中式任务管理就具有明显价值。
FOG Project 是一个免费、开源的网络镜像部署和计算机管理项目。它以 Linux 为服务端基础,通过 PXE/iPXE、PartClone 和 Web 管理界面,对 Windows、Linux 以及其他支持的操作系统进行镜像捕获、分发和管理。
本文重点讨论 FOG 更有差异化的应用方向:
面向物理机批量部署 Windows 和 Linux,并将 FOG 与传统 WDS 放在同一个部署场景中进行比较。
二、FOG Project 是什么
FOG 官方将其定位为网络计算机克隆和管理解决方案。
它的基本工作方式是:目标设备通过 PXE 网络启动,从 FOG 服务端获取 iPXE 和 Linux 启动环境,然后根据管理员创建的任务执行镜像捕获、镜像部署、硬件信息采集或其他管理操作。
FOG 的主要组成可以概括为:
- PXE/iPXE 启动环境:让物理机通过网络启动并进入 FOG 菜单
- 镜像存储:保存 Windows、Linux 等系统镜像
- PartClone 等镜像工具:负责分区或磁盘数据的捕获与写入
- Web 管理界面:管理主机、镜像、任务、设备组和存储节点
- FOG Client:在系统运行后执行软件安装、脚本、域加入等任务
- 组播和任务调度:支持向多台设备安排部署任务
FOG 官方文档列出的能力还包括库存管理、磁盘检测、磁盘擦除、软件包远程安装和多种系统镜像操作。
因此,FOG 不只是一个“把镜像复制到硬盘”的工具,也不是单纯的 TFTP 或 PXE 服务器,而是将以下环节集中起来:
物理设备网络启动
+
系统镜像捕获与分发
+
主机信息和设备分组
+
批量任务与后续软件配置
三、FOG 在物理机部署中的工作链路
一套典型的物理机部署流程,大致可以分为以下几个阶段。
1. 制作基础镜像
管理员先准备一台参考设备,安装目标操作系统、基础软件和通用配置,然后将其作为基础镜像捕获到 FOG 服务端。
参考设备可以是实体机,也可以是用于制作镜像的参考虚拟机,但如果最终部署对象是多种型号的物理机,就必须重点验证驱动、启动模式和磁盘布局的兼容性。
2. 目标物理机通过 PXE 启动
目标设备接入网络后,从网卡启动。DHCP 为设备分配地址并提供网络启动信息,设备随后通过 TFTP 获取初始启动文件,再进入 iPXE 和 FOG 启动菜单。
FOG 官方部署文档中的典型流程包括:
物理机网卡 PXE 启动
|
v
DHCP 提供地址和启动信息
|
v
TFTP 获取初始 iPXE 文件
|
v
进入 FOG 启动菜单
|
v
注册主机并选择镜像
|
v
将镜像写入本地硬盘
3. 注册、分组并创建任务
物理机注册到 FOG 后,可以记录 MAC 地址、序列号、厂商、型号等硬件信息,也可以为设备设置主机名、镜像、设备组和任务。
管理员可以根据实际组织方式建立:
- 办公终端组
- 生产车间组
- 研发部门组
- 教室电脑组
- 分支机构组
- Windows 终端组
- Linux 工作站组
之后,可以针对单台物理机或整个设备组创建部署任务。
4. 写入镜像并完成后处理
FOG 将镜像写入目标硬盘后,设备重新启动进入操作系统。
Windows 设备可以继续处理主机名、域加入和软件安装;Linux 设备则通常需要结合 Shell 脚本、Ansible 或其他配置管理工具完成主机身份和应用配置。
这个流程的重点是:
运维人员不需要携带安装介质逐台操作,而是通过网络启动和集中式任务管理批量初始化物理设备。
四、Windows 物理机批量部署
1. Windows 黄金镜像的准备
Windows 批量部署一般从一台参考设备开始,安装企业需要的基础环境,例如:
- 目标版本的 Windows
- 通用驱动和基础软件
- 办公软件或运行环境
- 企业安全工具
- 浏览器和常用客户端
- 基础系统策略
在捕获镜像之前,需要根据 Windows 部署规范进行系统泛化。通常需要使用 Sysprep,使每台部署后的设备能够重新生成自己的系统标识和初始化信息。
如果直接复制一台已经加入域、已经生成用户配置或包含大量机器唯一信息的 Windows 系统,批量部署后可能出现计算机标识、域关系、激活和用户配置冲突。
FOG 可以减少系统写入和重复安装工作,但不能替代 Windows 镜像制作规范。
2. 应对不同型号物理机
FOG 官方将硬件无关镜像列为项目能力方向之一,但“硬件无关”不代表所有型号、所有启动方式和所有驱动环境都可以完全不加验证地通用。
在实际部署中,需要重点考虑:
- UEFI 或传统 BIOS 启动模式
- GPT 或 MBR 分区布局
- 存储控制器驱动
- 有线网卡驱动
- 显卡和芯片组驱动
- Secure Boot 配置
- 硬盘容量和分区大小
- 不同厂商设备的硬件差异
比较稳妥的做法是将设备按型号或硬件平台进行分类,并为常见型号建立兼容性测试清单。
3. Windows 部署后的统一配置
镜像部署完成后,还需要使设备真正进入企业环境。常见后处理包括:
- 设置主机名
- 加入 Active Directory 域
- 下发 GPO 策略
- 安装或更新业务软件
- 配置资产编号
- 设置本地安全策略
- 安装监控和安全代理
FOG Client 可以配合 FOG 主机管理和 Snapin 能力,在 Windows 启动后执行软件安装、脚本或其他任务。域策略和持续的软件管理,则可以继续交给 GPO、PowerShell、Ansible、Configuration Manager 或其他平台。
五、Linux 物理机批量部署
1. Linux 基础镜像
FOG 同样支持 Linux 系统镜像,这使它可以覆盖 Linux 工作站、实验室电脑、工控终端和部分裸机服务器初始化场景。
管理员可以准备一台 Linux 参考设备,完成:
- 安装目标发行版
- 配置基础软件源
- 安装通用软件包
- 设置时区、语言和基础系统参数
- 安装监控、日志或安全代理
- 配置初始化脚本
然后将其作为基础镜像捕获到 FOG 服务端。
2. 清理 Linux 设备唯一信息
Linux 镜像部署时,最容易被忽略的是设备唯一信息。
部署前后需要重点关注:
- 主机名
/etc/machine-id- SSH 主机密钥
- 网络接口配置
- 网络管理器连接信息
- 应用程序生成的节点标识
- 监控和日志系统中的机器身份
如果这些信息被原样复制到多台物理机,可能导致多台设备使用相同的主机身份,进而影响 SSH 连接、日志采集、监控识别和配置管理。
3. Linux 物理机的兼容性
Linux 也需要处理物理硬件差异,尤其是以下问题:
- 网卡名称和网络配置规则变化
- 存储控制器或磁盘设备名称变化
- 启动加载器安装位置变化
- 显卡、无线网卡和专用设备驱动差异
- BIOS、UEFI 和 Secure Boot 的差异
因此,FOG 更适合提供统一的 Linux 基础系统,设备差异化配置则建议通过 Ansible、Shell、Kickstart 后处理或其他配置管理工具完成。
可以将职责分工理解为:
FOG 负责快速写入基础系统,配置管理工具负责让每台 Linux 物理机拥有自己的身份和配置。
六、FOG 如何支持大批量物理机部署
1. 单播部署
单播部署是服务端分别向每台目标设备发送镜像。
它的优点是任务相互独立、控制简单,适合:
- 部署数量较少
- 设备型号或镜像不同
- 目标物理机分批上线
- 需要单独观察某台设备的部署过程
缺点是每个客户端都会占用一条传输连接。部署数量增加后,FOG 服务端、镜像存储和网络带宽都会承受更大压力。
2. 组播部署
组播适合同一网络区域内的大批量装机,例如:
- 学校机房一次性重装整间教室的电脑
- 企业批量初始化同型号办公终端
- 工厂或营业网点批量恢复标准终端
- 机房一次性部署多台相同配置的裸机
组播的特点是服务端发送一份镜像数据流,多台客户端同时接收。相比为每台设备分别发送完整镜像,组播可以减少重复传输。
但组播并不是无条件适用,需要网络设备正确支持组播和 IGMP,并且要考虑 VLAN、路由、防火墙和交换机配置。
它更适合集中式局域网,不应简单理解为跨广域网的批量部署方案。跨站点部署通常需要本地存储节点、镜像同步和独立的网络规划。
3. 主机组和任务调度
FOG 可以围绕主机组创建部署任务,将批量装机从“逐台操作”转换为“按组安排任务”。
例如,可以为不同设备建立以下分组:
Office-WindowsLab-LinuxFactory-TerminalBranch-01Branch-02Repair-Reimage
设备组可以关联对应镜像、软件包或任务,方便进行批量部署、定时重装和统一维护。
4. 存储节点和多站点扩展
当物理机分布在多个机房或分支机构时,所有设备都从中心服务器获取镜像,可能造成跨站点带宽压力。
FOG 支持存储组和存储节点,可以将镜像复制到更靠近目标设备的网络位置,再由本地节点提供部署服务。
这类架构可以改善:
- 多机房批量装机速度
- 分支机构的镜像访问效率
- 中心服务器的并发压力
- 镜像存储的冗余能力
但它仍然需要管理员规划镜像同步、节点角色、站点网络和故障切换,不能只通过增加一台服务器自动完成高可用设计。
七、FOG 对物理设备的统一管理作用
FOG 的价值不只在于“把系统装上去”,还在于能够围绕物理设备建立一套集中管理目录。
1. 硬件信息和资产识别
主机注册后,可以采集或记录设备的:
- MAC 地址
- 序列号
- 厂商和型号
- 操作系统信息
- 磁盘和硬件信息
- 所属设备组
- 主机名和资产标签
对于物理机来说,这些信息比虚拟机环境中的模板名称更有实际价值,因为运维人员需要知道设备具体在哪个位置、属于哪种型号、由谁负责维护。
2. 统一执行重装和维护任务
通过 Web 管理界面,管理员可以对单台设备或一组设备执行:
- 部署系统镜像
- 捕获新的系统镜像
- 更新硬件库存
- 执行软件安装
- 推送脚本或命令
- 唤醒设备
- 进行磁盘检测或擦除
- 安排定时任务
这使 FOG 从一次性装机工具扩展为物理设备生命周期中的辅助管理平台。
3. 与现有身份和配置体系配合
FOG 不需要替代企业现有的 AD、GPO、Ansible 或资产管理系统。
比较合理的组合方式是:
AD / LDAP:账号和身份
GPO:Windows 域策略
FOG:物理设备接入、镜像和批量任务
Ansible:Linux 配置和持续管理
资产系统:资产台账和生命周期记录
监控系统:运行状态和告警
FOG 负责把物理设备快速恢复到一个可管理的基础状态,其他系统继续负责长期配置和运行管理。
八、适合落地的物理机应用方向
1. 企业办公终端批量重装
企业更换操作系统版本、统一办公软件或处理大批量终端故障时,可以使用 FOG 对办公电脑进行批量重装。
适合的特点包括:
- 设备数量较多
- 终端需要使用统一系统环境
- 设备位于同一办公网络
- 现场操作成本较高
- 需要保留多套部门镜像
2. 学校机房和培训机房
机房电脑经常需要恢复到标准环境。学生使用后可能产生大量软件、配置和数据变化,管理员可以在课程结束后批量恢复系统,而不必逐台使用 U 盘安装。
这类场景通常设备型号相对统一,非常适合使用组播和设备组任务。
3. 工厂、门店和营业网点终端
工厂终端、收银机、营业网点电脑或自助设备,往往需要运行固定的系统和业务软件。
当设备出现系统损坏或需要统一升级时,可以通过 FOG 快速恢复标准镜像,并将不同地点的设备按站点分组管理。
4. 维修、翻新和设备回收
电脑维修和设备翻新过程中,经常需要清空旧系统、重新分区和恢复基础环境。
FOG 可以将这些重复工作集中到网络部署流程中,适合:
- 维修中心批量处理设备
- 二手设备重新初始化
- 员工离职设备回收
- 设备更换前的数据清理和系统恢复
5. Linux 工作站和裸机服务器初始化
对于需要批量安装 Linux 的研发工作站、实验设备、边缘节点或部分裸机服务器,FOG 可以提供比手动 ISO 安装更统一的基础系统部署方式。
但服务器上线后的磁盘、网络、服务、密钥和业务配置,仍然需要结合 Ansible、脚本或配置管理系统完成。
6. 多分支机构的终端支持
对于总部统一管理多个分支机构的组织,可以按地点建立设备组,并结合本地存储节点或合理的镜像分发策略,降低现场维护频率。
九、FOG 与传统 WDS 的对比
1. 两者的基本定位
WDS 是微软 Windows Server 中用于网络部署 Windows 操作系统的服务组件,核心围绕 PXE 启动、Windows PE 和 Windows 镜像安装展开。
FOG 则是以 Linux 为服务端基础的开源镜像和计算机管理系统,目标范围更宽,可以处理 Windows、Linux 等系统,并通过 Web 界面管理物理主机、镜像和部署任务。
从定位上看:
WDS 更像是 Windows 生态中的网络部署基础组件;FOG 更像是跨操作系统的网络镜像与物理设备管理平台。
2. 主要差异对比
| 对比维度 | FOG Project | 传统 WDS |
|---|---|---|
| 服务端基础 | Linux 服务端和开源组件 | Windows Server 角色 |
| 主要目标 | Windows、Linux 以及其他支持的系统镜像部署 | 以 Windows 操作系统网络部署为核心 |
| 物理机支持 | 面向物理机镜像、硬件库存和批量任务 | 支持物理机 PXE 网络安装 |
| 管理方式 | Web 管理界面,围绕主机、镜像、任务和设备组管理 | WDS 管理控制台,围绕启动镜像和安装镜像管理 |
| 网络启动 | PXE/iPXE,初始启动后可通过 HTTP 等方式获取较大文件 | PXE、TFTP、Windows PE 和 WIM 工作流 |
| 镜像能力 | 支持分区、整盘、可调整大小和原始镜像等模式 | 以 Windows PE、WIM 和 Windows Setup 工作流为核心 |
| Linux 部署 | 可以直接作为 Linux 镜像部署方案的一部分 | 不适合作为 Linux 系统的主要部署平台 |
| 批量任务 | 支持单播、组播、主机组和任务调度 | 支持网络安装和组播,复杂流程通常需要结合 MDT 或 Configuration Manager |
| 物理设备管理 | 包含硬件库存、主机分组、Snapin 和任务管理 | 原生重点是网络部署,不是完整物理设备管理平台 |
| 多站点扩展 | 可以使用存储组和存储节点分担镜像分发 | 通常需要结合 Windows 部署生态和额外的分发设计 |
| 成本和授权 | GPL 开源,可免费使用,但需要自行维护 | 依赖 Windows Server 授权和微软部署生态 |
| 生态整合 | 适合与 Linux、Ansible、脚本和现有网络服务组合 | 适合与 Windows Server、AD、MDT、Configuration Manager 组合 |
3. FOG 在物理机混合环境中的优势
如果企业只需要部署 Windows 物理机,并且已经建设了 Windows Server、AD、MDT 或 Configuration Manager 体系,WDS 仍然可以是合理的基础组件。
但如果环境中同时存在 Windows 和 Linux 物理设备,FOG 的优势会更加明显:
- 服务端不依赖 Windows Server 角色
- 可以在同一个 Web 界面中管理多种系统镜像
- 可以用统一的主机组和任务方式管理不同系统
- 适合批量重装、设备恢复和硬件库存管理
- 更容易与 Linux 脚本、Ansible 和开源基础设施组合
4. WDS 当前需要重新评估的地方
WDS 并没有完全失去 PXE 启动能力,但其具体的 Windows 部署工作流正在发生变化。
微软当前文档明确说明:依赖安装介质 boot.wim、并以 WDS 模式启动 Windows Setup 的工作流,在 Windows 11 及更新版本中已经不再支持;WDS 使用自定义启动镜像的 PXE 工作流仍然可以存在,但不能再把“只安装 WDS 就能覆盖未来 Windows 部署需求”作为长期前提。
因此,企业在评估 WDS 时,需要同时考虑:
- 目标 Windows 版本
- 是否使用原始安装介质中的
boot.wim - 是否已经使用 MDT 或 Configuration Manager
- 是否还需要部署 Linux
- 是否需要硬件库存和物理设备分组管理
- 是否需要跨站点的镜像分发能力
十、FOG 不适合替代哪些系统
FOG 的强项是网络启动、系统镜像、批量部署和基础主机管理,但它不应该被当成所有运维系统的替代品。
它不能直接替代:
- VMware、Hyper-V、KVM 或 Proxmox 等虚拟化平台
- Active Directory 和组策略管理
- 专业的补丁和漏洞管理平台
- 完整的 CMDB 资产管理系统
- 持续配置管理平台
- ITSM 工单系统
- 企业级终端安全平台
- 复杂的应用编排和服务器生命周期平台
尤其需要说明的是:
虚拟机批量创建和克隆应优先使用虚拟化平台的模板、快照、API 或自动化工具;FOG 的主要价值不在于替代这些能力,而在于解决物理机没有统一模板、需要通过网络批量重装和恢复的问题。
十一、使用 FOG 时需要关注的问题
1. 镜像兼容性不能只看系统版本
即使多个物理设备都运行 Windows 11 或同一个 Linux 发行版,不同型号的存储控制器、网卡、启动模式和磁盘布局也可能造成部署差异。
正式批量部署之前,应该先按主要硬件型号进行测试,并明确哪些设备共用镜像、哪些设备需要单独处理。
2. PXE 网络设计是关键依赖
需要提前确认:
- DHCP 是否能够提供正确的启动信息
- TFTP 或 iPXE 文件是否可以正常获取
- 不同 VLAN 之间是否配置 DHCP Relay 或 IP Helper
- 交换机是否允许所需的组播流量
- 物理机 BIOS/UEFI 是否启用网络启动
- 镜像存储和网络带宽是否足够
很多“FOG 部署失败”问题,最终并不是镜像本身的问题,而是 DHCP、PXE、交换机、路由或防火墙路径没有打通。
3. 物理机数据保护必须优先考虑
部署镜像通常会覆盖目标磁盘上的原有系统和数据。
在批量重装前,必须确认:
- 用户数据已经备份
- 目标主机清单没有选错
- 部署任务范围明确
- 是否需要保留恢复分区
- 是否需要记录资产和序列号
- 是否需要对旧磁盘进行安全擦除
4. FOG 服务端本身也需要规划
FOG 服务端的磁盘空间、网络接口、镜像备份和并发能力会直接影响批量部署效果。
对于大规模或多站点环境,需要考虑:
- 镜像存储容量
- RAID 或其他冗余方式
- 千兆或更高速网络
- 存储节点布局
- 镜像版本管理
- 任务并发数量
- 服务端和镜像备份
十二、如何选择 FOG 或 WDS
更适合选择 FOG 的情况
- 重点是物理机批量装机和重装
- 同时需要部署 Windows 和 Linux
- 希望使用开源、免费和自托管方案
- 需要 Web 管理界面管理镜像和主机
- 需要主机组、批量任务和组播部署
- 需要记录物理设备的序列号、型号和资产信息
- 已经具备 Linux 运维能力
- 希望将镜像部署与 Ansible、脚本等工具组合
- 需要管理学校机房、维修中心、工厂终端或多分支物理设备
更适合保留 WDS 的情况
- 主要只部署 Windows 物理机
- 已经有成熟的 Windows Server、AD、MDT 或 Configuration Manager 体系
- 现有流程运行稳定,短期内没有跨平台需求
- 运维团队更熟悉微软部署工具链
- 只需要 Windows 网络安装,不需要额外的跨平台物理设备管理能力
需要重新评估现有方案的情况
- 计划大规模部署 Windows 11
- 仍然只依赖原始安装介质中的
boot.wim和 WDS 模式 - 希望用 WDS 管理 Linux 物理设备
- 希望让 WDS 同时承担硬件库存、设备分组和软件任务管理
- 需要将镜像、批量装机和多站点物理设备管理统一起来
十三、总结
FOG Project 的核心价值,可以概括为三点:
- 通过 PXE/iPXE 让物理设备从网络启动。
- 通过系统镜像快速部署 Windows、Linux 等操作系统。
- 通过 Web 界面、硬件库存、主机组和任务调度完成批量管理。
虚拟机已经拥有模板、快照和克隆等原生能力,因此 FOG 最值得关注的方向不是“替代虚拟化平台创建虚拟机”,而是解决物理设备批量初始化、统一重装、跨型号部署和多站点维护问题。
与传统 WDS 相比,FOG 更适合跨操作系统、开源自托管和物理设备集中管理场景;WDS 则更适合已经深度使用微软部署生态、且以 Windows 为主的组织。
比较合理的判断不是“FOG 一定比 WDS 好”,而是:
如果目标是 Windows 物理机的网络安装,并且已有成熟的微软部署体系,WDS 仍有使用价值;如果目标是 Windows 与 Linux 物理机的批量镜像部署和统一管理,FOG 的适用范围更宽。
参考资料
- FOG Project GitHub 仓库
- FOG 官方项目介绍
- FOG 官方文档:镜像部署
- FOG 官方文档:主机管理
- FOG 官方文档:任务管理
- FOG 官方文档:组播会话
- FOG 官方文档:存储节点管理
- 微软文档:Windows Deployment Services boot.wim 支持
- 微软文档:Windows 部署场景
本文用于项目认知和方案方向分析。具体部署时,需要结合物理设备型号、DHCP/PXE 网络、镜像制作规范、Windows 授权、Linux 初始化方式、数据保护要求和企业安全策略进行验证。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)