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

云服务器

复制全文
下载 pdf
制作自定义镜像
制作Linux镜像
复制全文
下载 pdf
制作Linux镜像
操作场景​
如果您拥有所需发行版本的基础镜像,您可以参考本文使用virt-manager制作QCOW2格式镜像并导入您的私有镜像到平台。​
此方式具有更高的定制化性,适用于需要复杂初始化系统镜像的场景,导入平台后,您可以使用该镜像重新部署复杂初始化系统或多次部署同样配置的云服务器。​
前提条件​
下文制作方法支持的基础镜像操作系统及相关版本如下,支持32位/64位。​
  • CentOS 6.x及以上版本​
  • Ubuntu 系列​
  • Debian 系列​
第一步:宿主机环境准备(可选)​
本节适用于没有虚拟机的用户,如果您已有虚拟机,请跳过此步骤。​
  1. 配置宿主机。​
  1. 准备一台物理服务器作为镜像制作服务器(即宿主机)。​
宿主机操作系统的发行版无硬性要求,本文宿主机为X86架构并安装图形化界面(GUI)的CentOS 7.9操作系统。​
  1. 登录宿主机。​
  1. 执行如下命令,确认宿主机已开启虚拟化能力。​
  • ​
    egrep '(vmx|svm)' /proc/cpuinfo​
    ​
  • 如下图所示,回显存在vmx或svm表示已开启虚拟化。​
  • ​​​
  1. 执行如下命令,确认宿主机内核高于3.10版本。​
  • ​
    uname -r​
    ​
  • 如下图所示。​
  • ​​​
  1. 安装虚拟化软件。​
  1. 执行如下命令,安装KVM与相关软件包。​
  • ​
    yum install -y qemu-kvm libvirt libvirt-python libvirt-client​
    ​
  1. 执行如下命令,启动libvirtd服务。​
  • ​
    systemctl start libvirtd​
    systemctl enable libvirtd​
    ​
  1. 执行如下命令,确认libvirtd服务是否启动成功。​
  • ​
    systemctl status libvirtd​
    ​
  • 当回显如下所示时,表示服务启动成功。​
  • ​​​
  1. 执行如下命令,安装virt-manager。​
  • ​
    yum install -y virt-manager​
    ​
  1. 创建启动模式为UEFI的虚拟机时,还需完成如下配置。​
  1. 请执行如下命令,安装OVMF。​
说明​
  • 若您的宿主机操作系统源中没有OVMF,请执行sudo yum install -y epel-release命令,启用EPEL仓库及系统附加仓库后再安装。​
  • 本文宿主机与创建的虚拟机均为X86_64架构,若您创建其他架构虚拟机,请安装相应架构的OVMF。​
  • ​
    yum install -y OVMF​
    ​
  1. 执行如下命令,查询OVMF文件路径。​
  • ​
    rpm -ql OVMF​
    ​
  • 回显如下所示时,当前安装的OVMF包中,固件文件地址为/usr/share/OVMF/OVMF_CODE.secboot.fd,变量文件地址为/usr/share/OVMF/OVMF_VARS.fd。​
  • ​​​
  1. 配置libvirtd以启用UEFI。​
  1. 执行如下命令,并按i键进入编辑模式。​
  • ​
    vim /etc/libvirt/qemu.conf​
    ​
  1. 在配置文件中插入如下内容,将OVMF和运行时变量模板添加到libvirt配置中。​
说明​
  • 请将/usr/share/OVMF/OVMF_CODE.secboot.fd替换为您安装OVMF固件文件实际路径。​
  • 请将/usr/share/OVMF/OVMF_VARS.fd替换为您安装OVMF变量文件实际路径。​
  • ​
    nvram = [​
    "/usr/share/OVMF/OVMF_CODE.secboot.fd:/usr/share/OVMF/OVMF_VARS.fd"​
    ]​
    ​
  1. 按ecs键,并输入:wq按回车键,保存并退出。​
  1. 执行如下命令,重启libvirtd服务。​
  • ​
    systemctl restart libvirtd​
    ​
  1. 开启宿主机ip_forward功能。​
  1. 执行如下命令,配置ip_forward功能。​
  • ​
    echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf​
    ​
  1. 执行如下命令,使配置生效。​
  • ​
    sysctl -p​
    ​
第二步:在宿主机上创建虚拟机​
  1. 在宿主机中准备基础镜像,请使用文件系统为EXT3、EXT4的单分区镜像,并且不要创建任何分区,否则可能出现自动扩容或启动异常问题。​
说明​
  • 建议您使用官方镜像。​
  • 若您可选的镜像文件包括QCOW2、ISO两种格式,建议选择ISO镜像。​
  1. 执行如下命令,打开virt-manager。​
  • ​
    virt-manager​
    ​
  • ​​​
  1. 单击新建图标,开启新建虚拟机向导。​
  • ​​​
  1. 选择“Loca install media(ISO image or CDROM)”选项并单击“Forward”按钮,使用您准备的基础镜像安装虚拟机操作系统.。​
  • ​​​
  1. 单击“Browse...”按钮,打开选择窗口。​
  • ​​​
  1. 单击“Browse Local”按钮打开宿主机存储目录,选择您在宿主机中准备的基础镜像,单击“Open”按钮确认并返回新建虚拟机向导。​
  • ​​​
  1. 取消勾选“Automatically detect operating system based on install media”选项,根据使用的镜像信息自行选择“OS type”(镜像类型)与“Version”(发行版本)。​
  • ​​​
  1. 单击“Forward”按钮,配置虚拟机内存与CPU信息。​
您不能分配超过宿主机系统中可用的物理处理器(或超线程)的虚拟CPU,可用的虚拟CPU数量可查看相应配置框下方Up to X available信息。​
  • ​​​
  1. 单击“Forward”按钮,配置创建的磁盘镜像大小。​
请考虑虚拟机启用及需要在其中安装的应用程序,为其分配足够的空间。​
  • ​​​
  1. 单击“Forward”按钮,配置虚拟机名称与网络,并勾选“Customize configuration before install”。​
说明​
  • 虚拟机名称可以包含字母、数字和以下字符:下划线(_)、句号(.)和连字符(-)。​
  • 网络配置默认为Virtual network 'default' : NAT',如需更改,请在“Network selection”模块下拉选择。​
  • ​​​
  1. 确认虚拟机配置后,单击“Finish”按钮创建虚拟机。​
  1. 在个性化定制页面中,可以配置虚拟机启动模式为UEFI或调整虚拟机硬件配置。启动模式调整步骤如下:​
  1. 在左侧目录树选择“Overview”。​
  1. 在“Hypervisor Details”模块的“Firmware”选项下拉选择UEFI,单击“Apply”按钮即可配置虚拟机启动模式为UEFI。​
  • ​​​
c. 单击窗口左上角“Begin Installation”按钮,开始安装虚拟机。​
  1. 跟随安装指引进入虚拟机配置页面时,需要您进入网络配置页面开启网络连接。​
  1. 单击“NETWORK & HOST NAME”按钮,进入网络配置页面。​
  • ​​​
  1. 单击开启选项,确认开启网络连接后,单击左上角“Done”按钮,保存并回到个性化配置页面。​
  • ​​​
  1. 完成其他个性化配置后,单击“Continue”按钮,跟随指引完成虚拟机安装。​
第三步:修改虚拟机文件​
修改/etc/fstab文件​
您需要登录创建的虚拟机,注释或删除/etc/fstab文件中存在的数据盘目录信息。​
  1. 执行如下命令,打开/etc/fstab文件。​
  • ​
    vi /etc/fstab​
    ​
  1. 按i键进入编辑模式,并注释或删除数据盘目录信息。​
  1. 按ESC键输入:wq按回车键,保存并退出编辑。​
修改启动引导文件(可选)​
若您需要制作UEFI启动模式的镜像,可根据本节指引登录虚拟机,修改虚拟机的启动引导文件。​
​
CentOS 6.x、7.x、8.x
Debian/Ubuntu
​
  1. 在虚拟机中执行如下命令,安装grub2-efi。​
  • ​
    yum install grub2-efi-x64 && yum install grub2-efi-x64-modules​
    ​
  1. 执行如下命令,以UEFI为引导重装grub。​
  • ​
    grub2-install --target=x86_64-efi --efi-directory=/boot/efi /dev/vda​
    grub2-install --target=x86_64-efi --removable --efi-directory=/boot/efi --bootloader-id=GRUB​
    ​
  1. 执行如下命令,重新生成grub2-config文件。​
重新生成grub2-config文件将覆盖原有配置,建议您提前备份​
  • ​
    grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg​
    ​
  1. 执行如下命令,修改grub2-mkconfig文件配置。​
  • ​
    sed -i 's/linux16/linuxefi/g' /boot/grub2/grub.cfg​
    sed -i 's/initrd16/initrdefi/g' /boot/grub2/grub.cfg​
    ​
​
第四步:在虚拟机上安装Cloud-init​
  1. 依次执行以下命令,安装Python3版本和cloud-init依赖。​
说明​
  • 请选择Python3.6以上版本进行安装,否则会出现Python3和部分pip包不兼容的情况,影响cloud-init运行。​
  • ​
    CentOS 6.x、7.x、8.x
    Ubuntu/Debian
    ​
    ​
    yum install python3 python3-pip cloud-utils-growpart -y​
    ​
    ​
  1. 安装并配置Cloud-init。​
说明​
  • 您可以按需下载“官方提供的Cloud-init”或是“社区版本的Cloud-init”,建议您使用平台官方提供的Cloud-init。​
  • 若您需要通过加固模式访问元数据,请安装“支持加固模式的Cloud-init”。关于元数据的查看方式以及支持查看的元数据项,可查看实例元数据。​
​
  • ​
    官方提供的Cloud-init
    社区版本的Cloud-init
    支持加固模式的Cloud-init
    ​
    1. 下载Cloud-init。​
    • 通过公网下载​
    说明​
    建议您选择目标实例所在地域的下载链接,降低访问时延、提高下载速度。​
    • 华北2(北京)​
    • ​
      wget https://cloud-init-cn-beijing.tos-cn-beijing.volces.com/ecs.linux.cloudinit_1.0.0.3.tar.gz​
      ​
    • 华东2(上海)​
    • ​
      wget https://cloud-init-cn-shanghai.tos-cn-shanghai.volces.com/ecs.linux.cloudinit_1.0.0.3.tar.gz​
      ​
    • 华南1(广州)​
    • ​
      wget https://cloud-init-cn-guangzhou.tos-cn-guangzhou.volces.com/ecs.linux.cloudinit_1.0.0.3.tar.gz​
      ​
    • 中国香港(香港)​
    • ​
      wget https://cloud-init-cn-hongkong.tos-cn-hongkong.volces.com/ecs.linux.cloudinit_1.0.0.3.tar.gz​
      ​
    • 亚太东南(柔佛)​
    • ​
      wget https://cloud-init-ap-southeast-1.tos-ap-southeast-1.volces.com/ecs.linux.cloudinit_1.0.0.3.tar.gz​
      ​
    • 通过内网下载​
    说明​
    请选择目标实例所在地域的下载链接,通过平台内网进行下载。​
    • 华北2(北京)​
    • ​
      wget https://cloud-init-cn-beijing.tos-cn-beijing.ivolces.com/ecs.linux.cloudinit_1.0.0.3.tar.gz​
      ​
    • 华东2(上海)​
    • ​
      wget https://cloud-init-cn-shanghai.tos-cn-shanghai.ivolces.com/ecs.linux.cloudinit_1.0.0.3.tar.gz​
      ​
    • 华南1(广州)​
    • ​
      wget https://cloud-init-cn-guangzhou.tos-cn-guangzhou.ivolces.com/ecs.linux.cloudinit_1.0.0.3.tar.gz​
      ​
    • 中国香港(香港)​
    • ​
      wget https://cloud-init-cn-hongkong.tos-cn-hongkong.ivolces.com/ecs.linux.cloudinit_1.0.0.3.tar.gz​
      ​
    • 亚太东南(柔佛)​
    • ​
      wget https://cloud-init-ap-southeast-1.tos-ap-southeast-1.ivolces.com/ecs.linux.cloudinit_1.0.0.3.tar.gz​
      ​
    1. 执行如下命令,安装Cloud-init。​
    • ​
      tar zxvf ecs.linux.cloudinit_1.0.0.3.tar.gz​
      ls​
      cd cloud-init-20.3​
      pip3 install -r requirements.txt -i https://mirrors.ivolces.com/pypi/simple/​
      python3 setup.py build​
      python3 setup.py install --init-system systemd​
      ​
      ln -s /usr/local/bin/cloud-init /usr/bin/cloud-init​
      ​
      systemctl enable cloud-init-local.service​
      systemctl enable cloud-init.service​
      systemctl enable cloud-config.service​
      systemctl enable cloud-final.service​
      ​
    1. 修改cloud.cfg文件。​
    1. 执行如下命令,打开cloud.cfg文件。​
    • ​
      vim /etc/cloud/cloud.cfg​
      ​
    1. 按i键进入编辑模式,替换cloud-init配置文件为如下内容。​
    注意​
    若您制作的是CentOS镜像,请在system_info模块增加distro: rhel配置。​
    • ​
      users:​
      - default​
      ​
      disable_root: 0​
      ssh_pwauth: 1​
      growpart:​
      mode: auto​
      devices: ['/']​
      ignore_growroot_disabled: false​
      ​
      mount_default_fields: [~, ~, 'auto', 'defaults,nofail,x-systemd.requires=cloud-init.service', '0', '2']​
      resize_rootfs_tmp: /dev​
      ssh_deletekeys: 1​
      syslog_fix_perms: ~​
      disable_vmware_customization: false​
      ​
      manage_etc_hosts: localhost​
      ​
      cloud_init_modules:​
      - disk_setup​
      - migrator​
      - bootcmd​
      - write-files​
      - growpart​
      - resizefs​
      - set_hostname​
      - update_hostname​
      - update_etc_hosts​
      - rsyslog​
      - users-groups​
      - ssh​
      ​
      cloud_config_modules:​
      - mounts​
      - locale​
      - set-passwords​
      - rh_subscription​
      - yum-add-repo​
      - package-update-upgrade-install​
      - timezone​
      - puppet​
      - chef​
      - salt-minion​
      - mcollective​
      - disable-ec2-metadata​
      - runcmd​
      ​
      cloud_final_modules:​
      - rightscale_userdata​
      - scripts-per-once​
      - scripts-per-boot​
      - scripts-per-instance​
      - scripts-user​
      - ssh-authkey-fingerprints​
      - keys-to-console​
      - phone-home​
      - final-message​
      - power-state-change​
      ​
      system_info:​
      # distro: rhel​
      paths:​
      cloud_dir: /var/lib/cloud​
      templates_dir: /etc/cloud/templates​
      ssh_svcname: sshd​
      ​
    1. 按ESC键退出编辑,输入:wq按回车键,保存修改。​
    1. 更换cloud-init 数据源。​
    1. 执行如下命令,打开配置文件。​
    • ​
      vim /etc/cloud/cloud.cfg.d/90_dpkg.cfg​
      ​
    1. 按i键进入编辑模式,在文件中写入以下内容。​
    • ​
      datasource_list: [ConfigDrive, VolcStack]​
      ​
      datasource:​
      VolcStack:​
      metadata_urls: ["http://100.96.0.96"]​
      max_wait: -1​
      timeout: 5​
      retries: 24​
      apply_network_config: True​
      ​
    1. 按ESC键退出编辑,输入:wq按回车键,保存修改。​
    ​
第五步:在虚拟机上安装驱动​
安装Virtio驱动​
步骤一:确认内核是否支持Virtio驱动​
执行如下命令,确认当前虚拟机操作系统是否支持Virtio驱动。​
​
grep -i virtio /boot/config-$(uname -r)​
​
回显示例:​
​​​
结果说明:​
请在回显信息中,根据CONFIG_VIRTIO_BLK数值,进行后续操作。​
​
结果​
说明​
参数值为m​
表示该操作系统内核支持Virtio驱动。​
请执行步骤二,确认临时文件系统initramfs或initrd中是否包含Virtio驱动。​
参数值为y​
表示该操作系统内核已经包含了Virtio驱动,您可以继续安装Virtio1.1驱动。​
没有这两个参数​
表示该操作系统内核不支持Virtio驱动。您需要为自行编译安装Virtio驱动。​
​
步骤二:确认临时文件系统是否包含Virtio驱动​
​
CentOS 6及以上版本/Redhat 6及以上版本
Debian/Ubuntu
​
​
lsinitrd /boot/initramfs-$(uname -r).img | grep virtio​
​
​
回显示例:​
​​​
结果说明:​
  • 回显如上图所示,存在Virtio驱动相关信息,表示临时文件系统initramfs已经包含了virtio_blk驱动,及其依赖的virtio.ko、virtio_pci.ko和virtio_ring.ko,请继续安装Virtio1.1驱动。​
  • 若回显为空,表示临时文件系统没有包含Virtio驱动,请执行步骤三修复临时文件系统。​
步骤三:修复临时文件系统​
​
CentOS 6及以上版本/Redhat 6及以上版本
Debian/Ubuntu
​
  1. 执行如下命令,打开dracut.conf文件。​
  • ​
    vim /etc/dracut.conf​
    ​
  1. 按i进入编辑模式,添加如下内容。​
  • ​
    add_drivers+="virtio_blk virtio_scsi virtio_net virtio_pci virtio_ring virtio"​
    ​
  1. 修改完成后按ESC键,并输入:wq后按下回车键,保存并退出。​
  1. 执行以下命令,重新生成initrd。​
  • ​
    dracut -f​
    ​
​
步骤四:验证修复结果​
临时文件修复完成后,可再次执行步骤二命令,验证Virtio驱动已成功包含在临时文件系统initramfs或initrd中。​
安装Virtio1.1驱动​
若您制作的镜像用于平台自研DPU(Data Processing Unit)架构的实例,且镜像内核不支持Virtio 1.1协议,请根据本节指引安装Virtio 1.1驱动。​
​
DPU架构的实例规格
内核支持Virtio 1.1协议的镜像
​
说明​
下表列举了基于DPU架构的平台实例规格,若您制作的镜像不在如下规格的实例中使用,请跳过本步骤。​
​
系统架构​
类型​
实例规格​
x86计算​
  • 通用型g3i​
  • 通用型g3a​
​
  • 计算型c3i​
  • 计算型c3a​
​
  • 内存型r3i​
  • 内存型r3a​
​
本地SSD型i3s​
​
  • 高主频内存型hfr3i​
  • 高主频内存增强型hfre3i​
弹性裸金属​
所有弹性裸金属实例规格​
-​
异构计算​
  • GPU计算型gni3​
  • GPU计算型gna3c/gna3cd​
​
​
​
说明​
  • 安装驱动前:​
  • 请为虚拟机安装kernel-headers和kernel-devel,并确保与kernel版本一致,否则可能会出现安装驱动失败的情况(如有升级kernel,请重启后再安装驱动)。您也可以根据驱动源代码进行编译适配,或提交工单获取支持。​
  • 确保虚拟机可以访问公网。​
  1. 执行如下命令,下载Virtio1.1驱动管理脚本。​
  • ​
    wget -O virtio_tool https://virtio11-drivers.tos-cn-beijing.volces.com/virtio_tool_1.1.2​
    ​
  1. 执行如下命令,为脚本文件添加执行权限。​
  • ​
    chmod +x ./virtio_tool​
    ​
  1. 在virtio_tool文件所在目录中,执行如下命令,检查Virtio1.1驱动版本是否符合要求。​
  • ​
    ./virtio_tool -check​
    ​
  • 若回显如下所示,表示您的虚拟机中已安装符合要求的Virtio1.1驱动,请跳过本节。​
  • ​​​
  • 若回显如下所示,表示您的虚拟机中未安装符合要求的Virtio1.1驱动,请继续执行本节操作。​
  • ​​​
  1. 通过virtio_tool安装Virtio1.1驱动。​
  • ​
    CentOS
    Ubuntu
    Debian
    ​
    说明​
    暂仅支持如下操作系统及内核版本,安装Virtio1.1驱动。​
    ​
    镜像版本​
    内核版本​
    CentOS 7.9 64位​
    3.10.0-1160.x​
    CentOS 7.8 64位​
    3.10.0-1127.x​
    CentOS 7.7 64位​
    3.10.0-1062.x​
    CentOS 7.6 64位​
    3.10.0-957.x​
    CentOS 7.5 64位​
    3.10.0-862.x​
    CentOS 7.4 64位​
    3.10.0-693.x​
    CentOS 7.3 64位​
    3.10.0-514.x​
    CentOS 7.2 64位​
    3.10.0-327.x​
    ​
    在virtio_tool脚本所在目录中,执行如下命令,安装Virtio1.1驱动。​
    ​
    yum -y install rpm-build redhat-lsb-core​
    yum -y install epel-release​
    ​
    sed -e 's!^metalink=!#metalink=!g' \​
    -e 's!^#baseurl=!baseurl=!g' \​
    -e 's!//download\.fedoraproject\.org/pub!//mirrors.volces.com!g' \​
    -i /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel-testing.repo​
    ​
    yum -y install --enablerepo=epel dkms​
    ​
    ./virtio_tool -install​
    ​
    ​
  1. 安装驱动后,若您在实例内更换了内核版本,需重新安装适配该内核版本的Virtio1.1驱动,否则可能导致实例无法正常使用。​
安装LTS-内核与Virtio1.1驱动(可选)​
本节仅适用于制作弹性裸金属实例并采用LTS-内核方式使用的Linux镜像,如果您的镜像不用于该规格实例,请跳过此步骤。​
说明​
  • 此操作不可以直接在裸金属实例上执行,需要在平台ECS虚拟机上执行,制作自定义镜像后给裸金属实例使用。​
  • 本节仅提供一种裸金属实例使用自定义内核的思路与方法。​
  • 整体安装流程:​
  • 若存在旧版本的Virtio1.1驱动,需先将其删除。​
  • 在平台ECS实例中安装LTS-内核,并重启到指定版本的LTS-内核。​
  • 安装LTS-内核版本指定的Virtio1.1驱动包。​
  • 更新initramfs/initrd,并重启实例查看是否正常。​
  1. 执行如下命令,通过公网下载Virtio1.1驱动管理脚本。​
  • ​
    wget -O virtio_tool https://virtio11-drivers.tos-cn-beijing.volces.com/virtio_tool_1.1.2​
    ​
  1. 执行如下命令,为脚本文件添加执行权限。​
  • ​
    chmod +x ./virtio_tool​
    ​
  1. 在virtio_tool文件所在目录中,执行如下命令,检查虚拟机是否已经安装了Virtio1.1驱动。​
  • ​
    ./virtio_tool -check​
    ​
  • 若回显如下所示,表示您的虚拟机中已安装Virtio1.1驱动。​
  • ​​​
  • 请执行如下命令,卸载旧的Virtio1.1驱动后,再继续后续操作。​
  • ​
    ./virtio_tool -uninstall​
    ​
  • 卸载成功示例:​
  • ​​​
  • 若回显如下所示,表示您的虚拟机中未安装Virtio1.1驱动,请继续后续操作。​
  • ​​​
  1. 安装内核与驱动。​
  • ​
    CentOS 7.x
    Debian 9/10
    Ubutun Server 16.04/18.04
    ​
    1. 安装LTS-内核。​
    1. 依次执行以下命令安装LTS-内核。​
    • LTS-4.9内核:依次执行以下命令安装LTS-内核。​
    • ​
      wget https://virtio11-drivers.tos-cn-beijing.volces.com/lts-rpm/kernel-4.9.324-1.x86_64.rpm​
      wget https://virtio11-drivers.tos-cn-beijing.volces.com/lts-rpm/kernel-devel-4.9.324-1.x86_64.rpm​
      wget https://virtio11-drivers.tos-cn-beijing.volces.com/lts-rpm/kernel-headers-4.9.324-1.x86_64.rpm​
      yum install -y kernel-headers-4.9.324-1.x86_64.rpm kernel-devel-4.9.324-1.x86_64.rpm​
      yum install -y kernel-4.9.324-1.x86_64.rpm​
      ​
    • LTS-4.14内核:依次执行以下命令安装LTS-内核。​
    • ​
      wget https://virtio11-drivers.tos-cn-beijing.volces.com/lts-rpm/kernel-4.14.289-1.x86_64.rpm​
      wget https://virtio11-drivers.tos-cn-beijing.volces.com/lts-rpm/kernel-devel-4.14.289-1.x86_64.rpm​
      wget https://virtio11-drivers.tos-cn-beijing.volces.com/lts-rpm/kernel-headers-4.14.289-1.x86_64.rpm​
      yum install -y kernel-headers-4.14.289-1.x86_64.rpm kernel-devel-4.14.289-1.x86_64.rpm​
      yum install -y kernel-4.14.289-1.x86_64.rpm​
      ​
    • LTS-4.19内核:依次执行以下命令安装LTS-内核。​
    • ​
      wget https://virtio11-drivers.tos-cn-beijing.volces.com/lts-rpm/kernel-4.19.253-1.x86_64.rpm​
      wget https://virtio11-drivers.tos-cn-beijing.volces.com/lts-rpm/kernel-devel-4.19.253-1.x86_64.rpm​
      wget https://virtio11-drivers.tos-cn-beijing.volces.com/lts-rpm/kernel-headers-4.19.253-1.x86_64.rpm​
      yum install -y kernel-headers-4.19.253-1.x86_64.rpm kernel-devel-4.19.253-1.x86_64.rpm​
      yum install -y kernel-4.19.253-1.x86_64.rpm​
      ​
    1. 依次执行以下命令切换内核并重启到指定的LTS内核版本(以LTS-4.9为例)。​
    1. 查看当前系统有几个内核。​
    • ​
      cat /boot/efi/EFI/centos/grub.cfg |grep menuentry​
      ​
    • 回显示例​
    • ​
      if [ x"${feature_menuentry_id}" = xy ]; then​
      menuentry_id_option="--id"​
      menuentry_id_option=""​
      export menuentry_id_option​
      menuentry 'CentOS Linux (4.9.324) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1127.19.1.el7.x86_64-advanced-bf734ac7-0328-4e7f-8ada-ca0917a32945' {​
      menuentry 'CentOS Linux (3.10.0-1127.19.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1127.19.1.el7.x86_64-advanced-bf734ac7-0328-4e7f-8ada-ca0917a32945' {​
      menuentry 'CentOS Linux (0-rescue-ccc58c7f32cb4030969ada15e4ae0d0f) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-ccc58c7f32cb4030969ada15e4ae0d0f-advanced-bf734ac7-0328-4e7f-8ada-ca0917a32945' {​
      ​
    1. 设置默认的启动内核。​
    • 以上一步回显中的“CentOS Linux (4.9.324) 7 (Core)”内核为默认启动。​
    • ​
      grub2-set-default "CentOS Linux (4.9.324) 7 (Core)"​
      ​
    1. 查看默认启动的系统内核。​
    • ​
      grub2-editenv list ​
      ​
    • 回显示例:​
    • ​
      saved_entry=CentOS Linux (4.9.324) 7 (Core)​
      ​
    1. 重启实例。​
    • ​
      reboot​
      ​
    1. 重启后,查看当前的系统内核。​
    • ​
      uname -r ​
      ​
    • 回显示例:​
    • ​
      4.9.324​
      ​
    1. 成功切换到LTS-内核版本后,安装LTS-Virtio1.1驱动。​
    1. 安装依赖的dkms包工具。​
    • 在平台实例中安装。​
    • ​
      yum -y install rpm-build redhat-lsb-core​
      yum -y install epel-release​
      sed -e 's!^metalink=!#metalink=!g' \​
      -e 's!^#baseurl=!baseurl=!g' \​
      -e 's!//download\.fedoraproject\.org/pub!//mirrors.ivolces.com!g' \​
      -i /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel-testing.repo​
      yum -y install --enablerepo=epel dkms​
      ​
    • 在非平台实例中安装。​
    • ​
      yum -y install rpm-build redhat-lsb-core​
      yum -y install epel-release​
      sed -e 's!^metalink=!#metalink=!g' \​
      -e 's!^#baseurl=!baseurl=!g' \​
      -e 's!//download\.fedoraproject\.org/pub!//mirrors.volces.com!g' \​
      -i /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel-testing.repo​
      yum -y install --enablerepo=epel dkms​
      ​
    1. 依次执行如下命令,安装LTS-Virtio1.1驱动。​
    • ​
      wget https://virtio11-drivers.tos-cn-beijing.volces.com/virtio-1.1.0.dkms.tar.gz​
      dkms ldtarball virtio-1.1.0.dkms.tar.gz​
      dkms build virtio/1.1.0​
      dkms install virtio/1.1.0​
      ​
    1. CentOS 7/8操作系统,添加内核启动参数。​
    • ​
      sed -i 's/\(^GRUB_CMDLINE_LINUX=.*\)"/\1 pci=realloc intel_idle.max_cstate=1 processor.max_cstate=1 iommu=pt"/g' /etc/default/grub​
      grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg​
      dracut --force /boot/initramfs-$(uname -r).img $(uname -r)​
      ​
    ​
安装MLNX驱动(可选)​
如需使用网卡Offload特性,请在虚拟机上安装MLNX驱动,操作详情可查看Linux Drivers。​
说明​
若您使用支持网卡Offload特性的规格(例如GPU计算型gni2),需要安装MLNX驱动。​
安装mpi3mr驱动(可选)​
本节仅适用于制作大数据型弹性裸金属ebmd3s实例的镜像,若您的镜像不用于该实例,请跳过此步骤。​
说明​
暂仅支持veLinux 1.0 64 bit、veLinux 2.0 64 bit操作系统安装mpi3mr驱动。​
  1. 执行如下命令,添加extra-tools源。​
  • ​
    if [ -f "/etc/velinux-release" ]; then​
    RELEASE=`cat /etc/velinux-release | grep VERSION_CODENAME | awk -F '=' '{print $2}'`​
    else​
    RELEASE=`lsb_release -a | grep Codename| awk '{print $2}'`​
    fi​
    echo "deb http://mirrors.ivolces.com/extra-tools/velinux/ ${RELEASE} main" >> /etc/apt/sources.list.d/extra-tools.list​
    wget -O - http://mirrors.ivolces.com/extra-tools/velinux/GPG-KEY-system | apt-key add -​
    apt-get update​
    ​
  1. 安装mpi3mr-dkms驱动包。​
  • ​
    apt-get install -y mpi3mr-dkms​
    ​
  1. 执行如下命令,加载mpi3mr驱动。​
  • ​
    modprobe mpi3mr​
    ​
  1. 执行如下命令,确认已成功安装mpi3mr驱动。​
  • ​
    lsmod |grep mpi3mr​
    ​
  • 回显如下所示时,表示您已成功安装mpi3mr驱动。​
  • ​​​
第六步:在虚拟机中安装插件​
  • 密码插件​
  • 为实现用于重置、绑定/解绑密码功能,您制作的自定义镜像必须安装密码插件,否则可能导致镜像无法正常使用。安装操作可查看安装密码插件。​
  • 若您需要通过加固模式访问元数据,请安装支持加固模式的密码插件。关于元数据的查看方式以及支持查看的元数据项,可查看实例元数据。​
    ​
  • 云监控插件​
  • 如需从实例内部进行监控,以获取更深层、更准确的实例运行情况,您还可以为自定义镜像安装云监控插件。安装操作可查看安装插件。​
  • blk-none​
  • 为避免在实例中解压大压缩包时出现I/O问题,平台提供了blk-none工具,该工具会根据实例磁盘类型,将磁盘调度算法置为none或者noop避免该问题出现。安装操作详情可查看解决方案。​
注意​
若您制作CentOS 7.x、Ubuntu 16.04、Ubuntu 18.04或Debian 9镜像,且该自定义镜像将用于通用型(g3a/g3i)/计算型(c3a/c3i)/内存型(r3a/r3i)规格实例,必须安装本工具。​
第七步:在虚拟机中安装个性化软件(可选)​
您可以按照业务的需求,自行将个性化软件安装在系统盘中,例如JDK、Linux图形化桌面。​
第八步:检测镜像规范​
您可以在虚拟机中运行自定义镜像规范检测工具,检测当前操作系统各项配置是否符合创建云服务器实例规范,避免通过自定义镜像创建出功能不齐全的实例,操作详情可查看使用工具检测自定义镜像规范。​
第九步:导出镜像​
  1. 在虚拟机界面顶部选择“Virtual Machine > Shut Down > Shut Down”关闭虚拟机。​
  • ​​​
  1. 在宿主机中执行如下命令,打开存放镜像的文件夹,通过虚拟机名称即可查看镜像文件。​
  • ​
    xdg-open /var/lib/libvirt/images/​
    ​
  • ​​​
第十步:转换镜像格式​
目前仅支持上传QCOW2、RAW、VHD、VMDK格式的镜像,否则,请转换镜像格式。了解更多。​
后续操作​
您可以将创建的镜像文件上传至平台作为自定义镜像,上传成功后,即可使用该镜像创建实例,操作详情可查看导入自定义镜像。​
最近更新时间:2026.07.02 19:37:45
这个页面对您有帮助吗?
有用
有用
无用
无用