You need to enable JavaScript to run this app.
文档中心
云服务器

云服务器

复制全文
下载 pdf
制作自定义镜像
制作Windows镜像
复制全文
下载 pdf
制作Windows镜像
操作场景​
如果您拥有已经预装所需应用的镜像,您可以参考本文使用virt-install制作QCOW2镜像并导入您的私有镜像到平台。​
此方式具有更高的定制化性,适用于需要复杂初始化系统镜像的场景,导入平台后,您可以使用该镜像重新部署复杂初始化系统或多次部署同样配置的云服务器。​
前提条件​
下文制作方法支持的基础镜像操作系统及相关版本如下,支持32位/64位。​
  • Windows Server 2012​
  • Windows Server 2016​
  • Windows Server 2019​
第一步:宿主机环境准备​
  1. 配置宿主机。​
  1. 准备一台Linux系统的物理服务器作为镜像制作服务器(即宿主机)。​
宿主机操作系统的发行版无硬性要求,本文以CentOS 8.3版为例。​
  1. 登录宿主机。​
  1. 执行如下命令,确认宿主机已开启虚拟化能力。​
  • ​
    lscpu | grep vmx​
    ​
  1. 执行如下命令,确认宿主机内核高于3.10版本。​
  • ​
    uname -r​
    ​
  1. 依次执行以下命令,安装虚拟化软件。​
  • ​
    sudo yum install qemu-kvm ​
    sudo yum install libvirt​
    sudo yum install virt-install​
    sudo yum install virt-manager​
    ​
  1. 加载虚拟化相关服务。​
  1. 执行以下命令,开启libvirtd服务。​
  • ​
    systemctl restart libvirtd.service​
    ​
  1. 执行以下命令,检查virbr0网卡已经被创建。​
  • ​
    ip link show virbr0​
    ​
  1. 执行以下命令,加载kvm。​
  • ​
    modprobe kvm​
    modprobe kvm-intel​
    ​
第二步:在宿主机上创建虚拟机​
  1. 上传基础镜像。​
  • 上传您所需的基础镜像文件到宿主机/home文件夹中,建议您使用官方镜像。​
  • 若您可选的镜像文件包括QCOW2、ISO两种格式,建议选择QCOW2镜像。​
  1. 创建虚拟机。​
  • 假设已上传的基础镜像文件名称为:windows-2019-x64.qcow2、windows-2019-x64.iso。​
  • 基础镜像为QCOW2格式时,执行以下命令,创建虚拟机。​
  • 将--os-variant后的参数替换为虚拟机的操作系统类型。您可以执行osinfo-query命令查看可选类型。​
  • 将--disk=后的参数替换为虚拟机操作系统的存储位置,即基础镜像的路径。​
  • 将--graphics vnc,port=后的端口替换为您使用的VNC端口。​
由于部分运营商判断5900为高危端口,默认被屏蔽,不建议使用该接口。​
  • ​
    virt-install --name volc-tob-windows-2019-x64 --connect qemu:///system --os-variant windows2019 --virt-type kvm --memory 2048 --vcpus 2 --disk=/home/windows-2019-x64.qcow2 --boot=hd --network default --graphics vnc,port=6000,listen=0.0.0.0 --noautoconsole​
    ​
  • 基础镜像为ISO格式时,执行以下命令。​
  1. 执行以下命令,创建一个QCOW2格式,大小为20G的镜像。​
  • ​
    qemu-img create -f qcow2 /home/windows-2019-x64.qcow2 20G​
    ​
  1. 执行以下命令,基于基础镜像创建虚拟机。​
  • 将--os-variant后的参数替换为虚拟机的操作系统类型。您可以执行osinfo-query命令查看可选类型。​
  • 将--disk=后的参数替换为虚拟机操作系统的存储位置,即新创建镜像所在路径。​
  • 将--cdrom=后的参数替换为基础镜像的路径。​
  • 将--graphics vnc,port=后的端口替换为您使用的VNC端口。​
由于部分运营商判断5900为高危端口,默认被屏蔽,不建议使用该接口。​
  • ​
    virt-install --name volc-tob-windows-2019-x64 --connect qemu:///system --os-variant windows2019 --virt-type kvm --memory 2048 --vcpus 2 --disk=/home/windows-2019-x64.qcow2,format=qcow2,bus=virtio --cdrom=/home/windows-2019-x64.iso --boot=hd --network default --graphics vnc,port=6000,listen=0.0.0.0 --noautoconsole​
    ​
  1. 执行以下命令,确认虚拟机创建成功,并查看VNC地址。​
请将命令中的端口号6000替换为实际端口号。​
  • ​
    virsh list volc-tob-windows-2019-x64​
    netstat -lntp | grep 6000​
    ​
  1. 通过VNC Viewer工具,使用“vnc地址:vnc端口”远程登录虚拟机。​
  1. 检查OS virtio驱动。请确认镜像支持全虚拟化,且安装了virtio-net驱动(网络)和virtio-blk 驱动(磁盘)。​
  • 打开CMD命令提示符工具,执行命令driverquery,在列表中查找网卡驱动(netkvm)和磁盘驱动(viostor),不同版本的驱动时间可能存在差异。​
  • 网卡驱动​
  • ​image​​
  • 磁盘驱动​
  • ​image​​
第三步:在虚拟机上安装Cloudbase-init​
  1. 下载Cloudbase-init安装程序。​
  1. 打开安装包执行安装,单击“Next”按钮。​
  1. 勾选“I accept the terms in the License Agreement”,单击“Next”按钮。​
  1. 可根据需求选择Cloudbase-Init安装路径进行安装(可选),单击“Next”按钮。​
  1. 将下图中Username修改为Administrator,Serial port for logging设置为COM1并勾选Run Cloudbase-init service as LocalSystem,单击“Next”按钮。​
  • ​​​
  1. 单击“Install”按钮,安装Cloudbase-Init。​
  1. 待 Cloudbase-Init 完成安装后,单击“Finish”按钮,关闭安装页面。​
注意​
关闭Cloudbase-Init安装界面时,请勿勾选任何复选框,不要运行Sysprep。​
  1. 修改Cloudbase-init配置文件,请修改以下内容。Cloudbase-init默认路径为:C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init.conf。​
  • 如不在默认路径,请在上文第4步中您选择的安装路径查找。​
  • ​
    [DEFAULT]​
    username=Administrator​
    groups=Administrators​
    inject_user_password=true​
    config_drive_raw_hhd=true​
    config_drive_cdrom=true​
    config_drive_vfat=true​
    metadata_services=cloudbaseinit.metadata.services.httpservice.HttpService​
    metadata_base_url=http://100.96.0.96/​
    verbose=true​
    debug=true​
    log_dir=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\log\​
    log_file=cloudbase-init.log​
    default_log_levels=comtypes=INFO,suds=INFO,iso8601=WARN,requests=WARN​
    logging_serial_port_settings=​
    mtu_use_dhcp_config=true​
    ntp_use_dhcp_config=true​
    check_latest_version=true​
    first_logon_behaviour=no​
    local_scripts_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts\​
    ​
  • 如需使用Cloudbase-Init预设的密码登录云服务器实例,请在配置文件中新增如下内容。完成配置后请根据通过向导购买实例 的“自定义配置 > 登录方式 > 登录凭证”指引,开启使用镜像预设的密码登录实例功能。​
  • ​
    plugins=cloudbaseinit.plugins.common.mtu.MTUPlugin,cloudbaseinit.plugins.windows.ntpclient.NTPClientPlugin,cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin,cloudbaseinit.plugins.common.networkconfig.NetworkConfigPlugin,cloudbaseinit.plugins.windows.licensing.WindowsLicensingPlugin,cloudbaseinit.plugins.common.sshpublickeys.SetUserSSHPublicKeysPlugin,cloudbaseinit.plugins.windows.extendvolumes.ExtendVolumesPlugin,cloudbaseinit.plugins.common.userdata.UserDataPlugin,cloudbaseinit.plugins.common.setuserpassword.SetUserPasswordPlugin,cloudbaseinit.plugins.windows.winrmlistener.ConfigWinRMListenerPlugin,cloudbaseinit.plugins.windows.winrmcertificateauth.ConfigWinRMCertificateAuthPlugin,cloudbaseinit.plugins.common.localscripts.LocalScriptsPlugin​
    ​
  1. 修改网卡DHCP。​
  1. 单击“开始 > 控制面板 > 网络和Internet”按钮。​
  1. 根据下方示例,单击相应的连接。​
  • ​image.png​​
  1. 单击“属性”按钮,再双击“Internet 协议版本4(TCP /IPv4)”按钮,打开属性配置窗口。​
  • ​image.png​​
  1. 勾选 “自动获得IP地址”和“自动获得DNS服务器地址”,单击“确定”按钮,完成操作。​
  • ​image.png​​
  1. (可选)如需使用网卡Offload特性,请在虚拟机上安装MLNX驱动,操作详情可查看MLNX_OFED for Windows - WinOF / WinOF-2。​
  1. (可选)若您需要通过加固模式访问元数据,还需通过如下脚本调整Cloudbase-init配置。关于元数据的查看方式以及支持查看的元数据项,可查看实例元数据。​
  1. 在PowerShell中执行如下命令,创建并打开配置脚本。本文在桌面创建名为config.ps1的脚本文件。​
  • ​
    notepad.exe .\Desktop\config.ps1​
    ​
  1. 单击“是”按钮,确认创建新文件。​
  • ​​​
  1. 复制如下内容至脚本文件中。​
  • ​
    $Script:volc_log_path = "c:\volc.log"​
    $Script:service_name = "cloudbase-init"​
    $Script:cloudbase_init_folder_path = "c:\cloudbase_init_1_0_0_3"​
    $Script:cloudbase_init_path = "C:\ecs.windows.cloudbase_init_1.0.0.3.tar.gz"​
    if (Test-Path -Path $Script:volc_log_path) {​
    Remove-Item -Path $Script:volc_log_path -Recurse -Force​
    }​
    if (Test-Path -Path $Script:cloudbase_init_folder_path) {​
    Remove-Item -Path $Script:cloudbase_init_folder_path -Recurse -Force​
    }​
    if (Test-Path -Path $Script:cloudbase_init_path) {​
    Remove-Item -Path $Script:volc_log_path -Recurse -Force​
    }​
    echo "Modify cloudbase-init service begin." >> $Script:volc_log_path​
    Get-Service -DisplayName $Script:service_name​
    if ($?) {​
    echo "Current system installed service:$Script:service_name, continue." >> $Script:volc_log_path​
    } else {​
    echo "Current system didn't install service:$Script:service_name, exit." >> $Script:volc_log_path​
    exit 1001​
    }​
    New-Item -Path "C:\" -Name "cloudbase_init_1_0_0_3" -type directory​
    Invoke-WebRequest -Uri https://cloudbase-init-cn-beijing.tos-cn-beijing.volces.com/hardening_mode/ecs.windows.cloudbase_init_1.0.0.3.tar.gz -OutFile $Script:cloudbase_init_path​
    tar -xzf C:\ecs.windows.cloudbase_init_1.0.0.3.tar.gz -C $Script:cloudbase_init_folder_path​
    cmd.exe /c "C:\cloudbase_init_1_0_0_3\config-cloudbase-init.bat" -NoNewWindow >> $Script:volc_log_path​
    Set-Service -Name $Script:service_name -StartupType Automatic​
    echo "Query service's running state after modify."​
    Get-Service $Script:service_name | Select-Object -Property Name, StartType, Status >> $Script:volc_log_path​
    Remove-Item -Path $Script:cloudbase_init_folder_path -Recurse -Force >> $Script:volc_log_path​
    Remove-Item -Path $Script:cloudbase_init_path -Recurse -Force >> $Script:volc_log_path​
    echo "Modify cloudbase-init service end." >> $Script:volc_log_path​
    exit 0​
    ​
  1. 按control + s组合键保存内容,关闭文件。​
  1. 右键单击脚本文件,选择“使用 PowerShell 运行”。​
  1. 若出现执行策略更改提示,请输入 A 并按回车键确认。​
  • ​​​
第四步:在虚拟机上安装Virtio驱动​
  1. 单击“开始 > 控制面板”按钮。​
  1. 在控制面板页面,单击“程序”按钮。​
  1. 单击“程序和功能”按钮,进入程序和功能页面。​
  1. 在右上角搜索框中搜索Virtio,查看虚拟机是否安装Virtio驱动。​
  • 若已安装Virtio驱动,可跳过本步骤。​
  • ​​​
  • 若未安装Virtio驱动,请根据如下步骤指引,完成安装操作。​
  • ​
    Windows Server 2016及以上版本
    Windows Server 2012R2
    ​
    1. 在PowerShell中执行如下命令,下载Virtio驱动安装程序。​
    • ​
      Invoke-WebRequest -Uri 'https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.266-1/virtio-win-gt-x64.msi' -OutFile 'virtio-win-gt-x64.msi'​
      ​
    说明​
    您也可以通过浏览器,点此下载驱动安装程序。​
    1. 在PowerShell中执行如下命令,开启驱动安装流程。​
    • ​
      msiexec /i <安装程序所在文件夹>\virtio-win-gt-x64.msi​
      ​
    说明​
    若您通过浏览器下载驱动安装程序,也可双击下载的.msi文件,开启驱动安装流程。​
    1. 单击“Next”按钮,继续安装流程。​
    • ​​​
    1. 勾选“I accept the terms in the License Agreement”后,单击“Next”按钮。​
    • ​​​
    1. 确认需要安装的功能后,单击“Next”按钮。​
    • ​​​
    1. 单击“Install”按钮,确认安装选项,开始安装Virtio驱动。​
    • ​​​
    1. 单击“Finish”按钮,完成Virtio驱动安装。​
    • ​​​
    ​
第五步:安装插件​
  • 您还可以为自定义镜像安装云监控插件,从实例内部进行监控,以获取更深层、更准确的实例运行情况。安装操作可查看安装插件。​
  • 若您需要通过加固模式访问元数据,请参考如下步骤安装密码插件。关于元数据的查看方式以及支持查看的元数据项,可查看实例元数据。​
    ​
说明​
非火山引擎平台实例,请在导入镜像并使用自定义镜像创建实例后,在实例中安装密码插件。​
第六步:获取激活脚本​
  1. 请在PowerShell中执行如下命令,下载Windows激活脚本,并将其存放至Cloudbase-init本地脚本目录中。​
  • ​
    Invoke-WebRequest -Uri "https://volc-windows-active.tos-cn-beijing.volces.com/windows-active.ps1" -OutFile "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts\windws-activate.ps1"​
    ​
  1. 确认脚本文件具备可执行权限。​
  1. 右键单击激活脚本文件,并选择“属性”。​
  • ​​​
  1. 在“常规”页签中,确认是否存在“安全”模块。​
  • 若不存在,请跳过本步骤。​
  • ​​​
  • 若存在,请勾选“解除锁定”后单击“应用”按钮,再单击“确定”按钮。​
  • ​​​
第七步:安装个性化软件(可选)​
您可以按照业务的需求,自行将个性化软件安装在系统盘中,例如JDK、Linux图形化桌面。​
第八步:执行Sysprep​
您需要使用Sysprep删除镜像中的特定信息,以便镜像可以在不同设备中使用。更多详情可查看Sysprep(系统准备)概述。​
  • 若您使用平台提供的公共镜像制作自定义镜像,请在CMD中执行如下命令。公共镜像发布版本,可查看镜像发布记录。​
  • ​
    reg delete "HKLM\SOFTWARE\Cloudbase Solutions"​
    sc config cloudbase-init start= disabled ​
    net stop wuauserv​
    C:\Windows\System32\Sysprep\sysprep.exe /generalize /shutdown /oobe /quiet "/unattend:C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\Unattend.xml"​
    ​
注意​
  1. 执行该命令后,虚拟机将进入通用化:​
  1. 删除特定于虚拟机的信息,包括但不限于安全标识符 (SID)、主机名、密码等信息,应用程序以及相关数据仍会保留。​
  1. 删除内置管理员账户(Built-in Administrator,即C:\Users\Administrator路径)下的用户配置文件,包括桌面、文档、AppData等子目录。手动创建的本地管理员账户及公共配置文件(即C:\Users\Public路径)不受影响。​
  1. 卸载(但不删除)特定于虚拟机的驱动程序。​
  1. 允许将应答文件 (unattend) 设置添加到现有安装。​
  1. 完成通用化后,虚拟机将自动关机。​
  • 若您使用非平台提供的公共镜像制作自定义镜像,请在CMD中执行如下命令。​
  • ​
    %WINDIR%\system32\sysprep\sysprep.exe /generalize /shutdown /oobe​
    ​
注意​
  • 执行该命令后,虚拟机将进入通用化:​
  1. 删除特定于虚拟机的信息,包括但不限于安全标识符 (SID)、主机名、密码等信息,应用程序以及相关数据仍会保留。​
  1. 卸载(但不删除)特定于虚拟机的驱动程序。​
  1. 将虚拟机设置为在开箱即用体验(OOBE) 模式下启动。​
  1. 允许将应答文件 (unattend) 设置添加到现有安装。​
  • 完成通用化后,虚拟机将自动关机。​
  • 由于Cloudbase-init会在OOBE完成后执行,因此其配置文件中的登录密码将覆盖您在OOBE流程中创建的密码。使用该镜像创建云服务器实例后,请使用创建实例时设置的登录密码,而非OOBE流程创建的密码。​
第九步:导出镜像​
  1. 执行以下命令,关闭虚拟机并获得镜像文件。​
  • ​
    virsh shutdown volc-tob-windows-2019-x64​
    ​
  1. 执行以下命令,查看镜像文件。​
  • ​
    virt-install --disk​
    ​
第十步:镜像格式转换​
目前仅支持上传QCOW2、RAW、VHD、VMDK格式的镜像,否则,请转换镜像格式。了解更多。​
后续操作​
您可以将创建的镜像文件上传至平台作为自定义镜像,上传成功后,即可使用该镜像创建实例,操作详情可查看导入自定义镜像。​
最近更新时间:2026.04.24 19:55:06
这个页面对您有帮助吗?
有用
有用
无用
无用