Linux服务器批量制作Windows安装盘的Ventoy高阶玩法当你面对机房几十台需要重装系统的机器时传统的一个U盘装一台电脑的方式简直是对生命的浪费。作为经历过数百次装机洗礼的老运维我要分享一套在Linux服务器上批量制作Windows安装盘的终极方案——用Ventoy打造你的装机军火库。1. 为什么Ventoy是运维人员的装机神器在批量装机场景下Ventoy的三个特性让它成为无可替代的工具多镜像共存一个U盘可以存放Windows 10、Windows 11、不同版本的PE工具甚至Linux安装镜像无损更新更换镜像只需简单拷贝ISO文件无需反复格式化U盘BIOS/UEFI双支持不再需要为不同启动模式准备不同的安装介质更重要的是Ventoy提供了完整的命令行接口这让我们可以在无图形界面的Linux服务器上实现全自动化操作。想象一下通过一个脚本同时为10个U盘写入安装镜像还能自动集成公司内部的驱动包和配置脚本——这就是运维效率的质的飞跃。2. 服务器环境准备与Ventoy安装2.1 基础环境配置在开始之前确保你的Linux服务器满足以下条件已安装util-linux包包含lsblk等工具有sudo权限的账户系统版本为CentOS 7或Debian 10# CentOS sudo yum install -y util-linux wget # Debian/Ubuntu sudo apt-get update sudo apt-get install -y util-linux wget2.2 Ventoy命令行安装我们将使用Ventoy的Linux CLI版本进行安装# 下载最新版Ventoy wget https://github.com/ventoy/Ventoy/releases/download/v1.0.91/ventoy-1.0.91-linux.tar.gz # 解压安装包 tar -zxvf ventoy-1.0.91-linux.tar.gz cd ventoy-1.0.913. 批量制作启动盘的进阶技巧3.1 自动识别多U盘设备当同时插入多个U盘时使用以下脚本自动识别所有USB存储设备#!/bin/bash # 获取所有USB存储设备 devices($(lsblk -d -o NAME,TRAN | grep usb | awk {print /dev/$1})) for device in ${devices[]}; do echo 正在处理设备: $device sudo ./Ventoy2Disk.sh -i $device done重要提示执行前请确认设备列表准确错误的设备选择可能导致数据丢失3.2 自动化部署ISO文件制作好Ventoy启动盘后我们需要批量部署Windows镜像和PE工具# 创建标准目录结构 ISO_DIR/mnt/iso_repository mkdir -p $ISO_DIR/{windows,pe,drivers} # 复制ISO文件到所有U盘 for mount_point in /media/*/Ventoy; do cp $ISO_DIR/windows/win11_22H2.iso $mount_point cp $ISO_DIR/pe/company_pe.iso $mount_point cp -r $ISO_DIR/drivers $mount_point done为提升效率可以使用rsync代替cprsync -avh --progress $ISO_DIR/windows/ /media/*/Ventoy/4. 企业级定制化方案4.1 集成自动化安装脚本在Ventoy的U盘中创建ventoy/ventoy.json配置文件实现自动执行安装脚本{ control: [ { VTOY_DEFAULT_MENU_MODE: 0, VTOY_TREE_VIEW_MENU_STYLE: 0, VTOY_FILT_DOT_UNDERSCORE_FILE: 1, VTOY_SORT_CASE_SENSITIVE: 0 } ], auto_install: { win11_22H2.iso: { post_command: /ventoy/scripts/auto_install.sh } } }配套的auto_install.sh脚本示例#!/bin/bash # 自动分区 parted /dev/sda mklabel gpt parted /dev/sda mkpart primary ntfs 1MiB 100GiB parted /dev/sda set 1 boot on # 静默安装 setup.exe /autoinstall /quiet /noreboot4.2 驱动与软件预装方案在PE环境中预装驱动和常用软件修改PE的ISO镜像集成以下内容公司标准驱动包必备软件安装包Chrome、Office等安全基线配置脚本使用wimlib编辑Windows安装镜像# 挂载install.wim wimmountrw /sources/install.wim 1 /mnt/wim # 添加驱动 drvload /mnt/wim/inf/*.inf # 提交更改 wimunmount /mnt/wim --commit5. 运维流程集成与错误处理5.1 与Ansible集成将Ventoy制作流程整合到自动化运维平台- name: 制作Ventoy启动盘 hosts: jump_server tasks: - name: 下载Ventoy get_url: url: https://github.com/ventoy/Ventoy/releases/download/v{{ ventoy_version }}/ventoy-{{ ventoy_version }}-linux.tar.gz dest: /tmp/ventoy.tar.gz - name: 解压安装包 unarchive: src: /tmp/ventoy.tar.gz dest: /opt/ remote_src: yes - name: 识别USB设备 shell: lsblk -d -o NAME,TRAN | grep usb | awk {print /dev/$1} register: usb_devices - name: 安装到U盘 shell: /opt/ventoy/Ventoy2Disk.sh -i {{ item }} with_items: {{ usb_devices.stdout_lines }}5.2 常见问题排查问题1U盘在部分机器上无法启动解决方案检查Ventoy版本是否支持目标机器的启动模式BIOS/UEFI尝试在Ventoy配置中切换不同的分区方案GPT/MBR问题2批量写入时部分U盘失败解决方案# 增加重试机制 for device in ${devices[]}; do for i in {1..3}; do if sudo ./Ventoy2Disk.sh -i $device; then break fi echo 第$i次尝试失败等待5秒后重试... sleep 5 done done问题3Windows安装过程中缺少驱动解决方案在PE阶段预先注入驱动修改Windows安装镜像集成必要驱动这套方案在我们生产环境中已经稳定运行两年累计制作超过3000个安装盘。最关键的技巧是为每个U盘创建serial.txt文件记录硬件序列号便于追踪装机情况。