Linuxword Global
当前位置: Linux技术 > 如何制作 SolusVM 系统所需要的Debian 12 模板中文教材

本教程详细说明如何使用 debian-12-nocloud-amd64-20250416-2084.qcow2 文件(Debian 12 Cloud Image,AMD64 架构)制作一个适用于 SolusVM 的模板,输出格式为 .gz。由于你的电脑系统是 Windows 10,而制作过程需要 Linux 环境,我们将在 Windows 10 上通过 VirtualBox 运行一个 CentOS 7 虚拟机来完成操作。以下是完整的中文教材,每一步都包含详细的操作说明,确保你能轻松跟随。


images-3

制作 SolusVM Debian 12 模板的中文教材

准备工作

1. Windows 10 环境准备

在你的 Windows 10 电脑上,需要安装以下工具:

  • VirtualBox:
    • 访问 VirtualBox 官网 下载并安装最新版本(免费)。
    • 安装完成后,启动 VirtualBox,确保可以创建虚拟机。
  • CentOS 7 ISO:
    • 访问 CentOS 官网,下载 CentOS 7 Minimal ISO 文件(例如 CentOS-7-x86_64-Minimal-2009.iso)。
    • 保存到 Windows 10 的某个文件夹(如 C:\Downloads)。
  • WinSCP:
    • 下载并安装 WinSCP,用于在 Windows 10 和虚拟机或 SolusVM 服务器之间传输文件。
  • PuTTY:
    • 下载并安装 PuTTY,用于通过 SSH 连接到 CentOS 7 虚拟机和 SolusVM 服务器。
  • Debian 12 Cloud Image:
    • 使用浏览器访问以下地址下载镜像:
      • https://cdimage.debian.org/images/cloud/bookworm/20250416-2084/debian-12-nocloud-amd64-20250416-2084.qcow2
    • 下载后保存到 Windows 10 的某个文件夹(如 C:\Downloads)。

2. 创建 CentOS 7 虚拟机

  1. 启动 VirtualBox:
    • 打开 VirtualBox,点击“新建”按钮。
  2. 配置虚拟机:
    • 名称:CentOS7-VM(任意命名)。
    • 类型:Linux。
    • 版本:CentOS (64-bit)。
    • 内存:分配 4096 MB(4GB)。
    • 硬盘:创建虚拟硬盘,选择 VDI,动态分配,大小 50GB。
  3. 加载 CentOS 7 ISO:
    • 选择新建的虚拟机,点击“设置” > “存储” > “光驱” > 选择下载的 CentOS 7 ISO 文件。
    • 网络:确保网络适配器为“桥接”或“NAT”,以便虚拟机可以访问互联网。
  4. 安装 CentOS 7:
    • 启动虚拟机,选择“Install CentOS 7”。
    • 选择“Minimal Install”,设置 root 密码(记录下来),完成安装。
    • 安装完成后,重启虚拟机,登录 root 用户。
  5. 配置网络:
    • 运行以下命令确保虚拟机可以联网:
      bash
       

      nmcli d nmcli con up "System eth0" ping google.com
       
       
      • 如果 ping 成功,网络正常。

3. 在 CentOS 7 虚拟机中安装工具

  1. 更新系统:
    • 登录 CentOS 7 虚拟机(通过 VirtualBox 界面或 PuTTY,使用虚拟机 IP 和 root 账户)。
    • 运行:
      bash
       

      yum update -y
       
       
  2. 安装必要工具:
    bash
     

    yum install -y libguestfs-tools qemu-img scp
     
     
    • libguestfs-tools:用于挂载和编辑镜像。
    • qemu-img:用于转换镜像格式。
    • scp:用于文件传输。
  3. 验证安装:
    bash
     

    guestfish --version qemu-img --version
     
     
    • 确保输出版本信息,确认工具安装成功。

4. 获取 Debian 12 Cloud Image

  1. 传输镜像:
    • 如果在 Windows 10 下载了 debian-12-nocloud-amd64-20250416-2084.qcow2,使用 WinSCP 将其传输到 CentOS 7 虚拟机:
      • 打开 WinSCP,连接到虚拟机(IP 地址、root 用户、密码)。
      • 将文件拖到 /root/ 目录。
    • 或者,在 CentOS 7 虚拟机中直接下载:
      bash
       

      wget https://cdimage.debian.org/images/cloud/bookworm/20250416-2084/debian-12-nocloud-amd64-20250416-2084.qcow2 -O /root/debian-12-nocloud-amd64.qcow2
       
       
  2. 验证镜像:
    bash
     

    ls -lh /root/debian-12-nocloud-amd64.qcow2 qemu-img info /root/debian-12-nocloud-amd64.qcow2
     
     
    • 确认文件存在,格式为 qcow2,大小合理(通常几百 MB)。

制作模板的步骤

1. 清理和优化镜像

Debian 12 Cloud Image 包含 Cloud-Init 和云环境配置,需要清理以确保 SolusVM 兼容性。

  1. 挂载镜像:
    bash
     

    guestmount -a /root/debian-12-nocloud-amd64.qcow2 -i /mnt
     
     
    • 这会将镜像的文件系统挂载到 /mnt 目录。
    • 如果报错,检查 libguestfs-tools 是否正确安装,或尝试:
      bash
       

      export LIBGUESTFS_BACKEND=direct guestmount -a /root/debian-12-nocloud-amd64.qcow2 -i /mnt
       
       
  2. 清理 Cloud-Init 数据:
    bash
     

    rm -rf /mnt/var/lib/cloud/*
     
     
    • 删除 Cloud-Init 缓存和状态,防止新虚拟机继承旧配置。
  3. 重置机器 ID:
    bash
     

    rm -f /mnt/etc/machine-id /mnt/var/lib/dbus/machine-id
     
     
    • 清空机器 ID,避免克隆虚拟机时产生冲突。
  4. 清理日志和缓存:
    bash
     

    rm -rf /mnt/var/log/* /mnt/var/cache/apt/*
     
     
    • 删除日志和 APT 缓存,保持模板干净。
  5. 配置网络为 DHCP:
    • Debian Cloud 镜像通常使用 systemd-networkd。创建网络配置文件:
      bash
       

      echo -e "[Match]\nName=eth*\n[Network]\nDHCP=yes" > /mnt/etc/systemd/network/20-dhcp.network
       
       
    • 启用 systemd-networkd 服务:
      bash
       

      ln -s /mnt/lib/systemd/system/systemd-networkd.service /mnt/etc/systemd/system/multi-user.target.wants/systemd-networkd.service
       
       
    • 如果镜像使用传统网络配置,编辑 /mnt/etc/network/interfaces:
      bash
       

      echo -e "auto eth0\niface eth0 inet dhcp" >> /mnt/etc/network/interfaces
       
       
  6. 清理 Bash 历史记录:
    bash
     

    echo > /mnt/root/.bash_history
     
     
    • 清空 root 用户的命令历史。
  7. 卸载镜像:
    bash
     

    guestunmount /mnt
     
     
    • 确保所有修改保存并卸载。

2. 转换为 raw 格式

SolusVM 要求模板为 raw 格式。

  1. 执行转换:
    bash
     

    qemu-img convert -f qcow2 -O raw /root/debian-12-nocloud-amd64.qcow2 /root/debian-12-nocloud-amd64.raw
     
     
  2. 验证文件:
    bash
     

    ls -lh /root/debian-12-nocloud-amd64.raw
     
     
    • 确认生成的文件存在,通常比 qcow2 文件大。

3. 压缩为 .gz 格式

SolusVM 模板需要使用 gzip 压缩。

  1. 压缩文件:
    bash
     

    gzip /root/debian-12-nocloud-amd64.raw
     
     
    • 输出文件为 /root/debian-12-nocloud-amd64.raw.gz。
  2. 验证文件:
    bash
     

    ls -lh /root/debian-12-nocloud-amd64.raw.gz
     
     
    • 确认文件生成且大小合理(通常几百 MB)。

4. 传输到 SolusVM 主控服务器

  1. 获取 SolusVM 服务器信息:
    • 确保你有 SolusVM 主控服务器的 IP 地址(例如 123.123.123.123)和 root 账户凭据。
  2. 使用 SCP 传输:
    • 在 CentOS 7 虚拟机中运行:
      bash
       

      scp /root/debian-12-nocloud-amd64.raw.gz [email protected]:/home/solusvm/kvm/template/
       
       
      • 按提示输入 SolusVM 服务器的 root 密码。
    • 或者,使用 WinSCP:
      • 连接到 CentOS 7 虚拟机,下载 debian-12-nocloud-amd64.raw.gz 到 Windows 10。
      • 再连接到 SolusVM 服务器,上传文件到 /home/solusvm/kvm/template/。
  3. 重命名模板:
    • 登录 SolusVM 服务器(使用 PuTTY 或 WinSCP 的终端)。
    • 运行:
      bash
       

      mv /home/solusvm/kvm/template/debian-12-nocloud-amd64.raw.gz /home/solusvm/kvm/template/linux-debian-12-amd64-nocloud.gz
       
       

5. 在 SolusVM 中添加模板

  1. 登录 SolusVM 管理面板:
    • 打开浏览器,访问 SolusVM 管理地址(例如 https://your-solusvm-ip:5353),使用管理员账户登录。
  2. 添加模板:
    • 导航到 Media > Add KVM Template。
    • 填写以下信息:
      • Filename:linux-debian-12-amd64-nocloud.gz
      • Generation:选择 2(适用于现代 KVM 环境)。
      • Disk Driver:选择 virtio(Debian Cloud 镜像支持 VirtIO)。
      • Partition # to Resize:输入 1(通常为根分区 /dev/vda1)。
      • Swap Partition:输入 2(如果镜像包含 swap 分区,否则留空)。
  3. 检查分区(可选):
    • 如果不确定分区布局,在 CentOS 7 虚拟机中运行:
      bash
       

      guestfish --ro -a /root/debian-12-nocloud-amd64.qcow2 run list-filesystems
       
       
      • 确认根分区(通常 /dev/sda1 或 /dev/vda1)和 swap 分区(如果有)。
  4. 保存并同步:
    • 点击保存。
    • 导航到 Media > Synchronize Templates,选择目标节点,点击同步。

6. 测试模板

  1. 创建虚拟机:
    • 在 SolusVM 面板中,导航到 Virtual Servers > Add KVM Virtual Server。
    • 选择刚添加的模板(linux-debian-12-amd64-nocloud)。
    • 配置 CPU、内存、磁盘大小等(建议 1 核心、2GB 内存、10GB 磁盘)。
    • 创建并启动虚拟机。
  2. 连接虚拟机:
    • 使用 SolusVM 的 VNC Console 或 SSH 连接:
      • 默认用户可能是 debian(Cloud 镜像默认),密码可能为空或需通过 Cloud-Init 设置。
      • 如果无法登录,检查 /mnt/etc/cloud/cloud.cfg 中的用户设置(在步骤 1 中可预配置)。
  3. 验证系统:
    • 检查磁盘:
      bash
       

      df -hT
       
       
      • 确保根分区大小正确。
    • 检查网络:
      bash
       

      ip a
       
       
      • 确认 eth0 有 IP 地址。
    • 检查内存:
      bash
       

      free -h
       
       
  4. 修复常见问题:
    • 网络不可用:
      • 登录虚拟机,运行:
        bash
         

        systemctl restart systemd-networkd dhclient eth0
         
         
      • 或者在 SolusVM 面板中重新分配网卡(Manage > Network)。
    • 磁盘大小未扩展:
      • 登录虚拟机,运行:
        bash
         

        resize2fs /dev/vda1
         
         
      • 确认 SolusVM 模板设置中的分区编号(应为 1)。
    • Cloud-Init 未初始化:
      • 手动触发:
        bash
         

        cloud-init init
         
         
      • 或者禁用 Cloud-Init(在步骤 1 中清理 /mnt/var/lib/cloud/*)。

注意事项

  • Cloud-Init 配置:
    • Debian Cloud 镜像内置 Cloud-Init,可能在首次启动时尝试配置用户、网络等。为避免干扰,步骤 1 中清理了 Cloud-Init 数据。
    • 如果需要在虚拟机中保留 Cloud-Init 功能,可在步骤 1 中编辑 /mnt/etc/cloud/cloud.cfg,设置默认用户(如 debian)和 SSH 密钥:
      yaml
       

      users: - name: debian ssh-authorized-keys: - ssh-rsa 你的公钥 sudo: ALL=(ALL) NOPASSWD:ALL
       
       
    • 生成 SSH 密钥对:
      • 在 Windows 10 的命令提示符或 PowerShell 中运行:
        cmd
         

        ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
         
         
      • 公钥位于 ~/.ssh/id_rsa.pub。
  • 分区布局:
    • Debian Cloud 镜像通常只有一个根分区(ext4)和可能的 swap 分区。使用 guestfish 确认:
      bash
       

      guestfish --ro -a /root/debian-12-nocloud-amd64.qcow2 run list-partitions
       
       
    • 如果没有 swap 分区,SolusVM 的 Swap Partition 字段留空。
  • VirtIO 驱动:
    • debian-12-nocloud-amd64 镜像支持 VirtIO 磁盘和网络驱动,与 SolusVM 的 KVM 环境兼容。
  • Windows 10 操作:
    • WinSCP 和 PuTTY 提供图形化界面,适合初学者。
    • 如果 VirtualBox 虚拟机运行缓慢,检查 Windows 10 的 CPU 和内存使用情况,必要时关闭其他程序。
  • SolusVM 文档:
    • 参考 SolusVM 官方模板制作指南。

所需工具总结

  • Windows 10:
    • VirtualBox(运行 CentOS 7)
    • WinSCP(文件传输)
    • PuTTY(SSH 客户端)
  • CentOS 7 虚拟机:
    • libguestfs-tools
    • qemu-img
    • scp
  • 其他:
    • Debian 12 Cloud Image(debian-12-nocloud-amd64-20250416-2084.qcow2)
    • SolusVM 主控服务器的 SSH 访问权限

常见问题及解决方法

  1. 模板启动后网络不可用:
    • 检查虚拟机的网络配置文件:
      bash
       

      cat /etc/systemd/network/20-dhcp.network
       
       
    • 确保 systemd-networkd 启用:
      bash
       

      systemctl status systemd-networkd
       
       
    • 在 SolusVM 面板中重新分配网卡(Manage > Network > Reconfigure)。
  2. 磁盘大小未正确扩展:
    • 登录虚拟机,检查分区:
      bash
       

      lsblk
       
       
    • 扩展文件系统:
      bash
       

      resize2fs /dev/vda1
       
       
    • 确认 SolusVM 模板设置中的 Partition # to Resize 为 1。
  3. 无法通过 SSH 登录:
    • 检查 /etc/cloud/cloud.cfg 是否配置了默认用户和 SSH 密钥。
    • 临时通过 SolusVM 的 VNC 控制台登录,设置用户密码:
      bash
       

      passwd debian
       
       
  4. SolusVM 报错“无效模板”:
    • 确保文件名正确(linux-debian-12-amd64-nocloud.gz)。
    • 检查 .gz 文件是否损坏:
      bash
       

      gunzip -t /home/solusvm/kvm/template/linux-debian-12-amd64-nocloud.gz
       
       
    • 必要时重新压缩和传输。

快速参考命令

以下是在 CentOS 7 虚拟机中执行的核心命令:

bash
 

# 安装工具 yum install -y libguestfs-tools qemu-img scp # 清理镜像 guestmount -a /root/debian-12-nocloud-amd64.qcow2 -i /mnt rm -rf /mnt/var/lib/cloud/* rm -f /mnt/etc/machine-id /mnt/var/lib/dbus/machine-id rm -rf /mnt/var/log/* /mnt/var/cache/apt/* echo -e "[Match]\nName=eth*\n[Network]\nDHCP=yes" > /mnt/etc/systemd/network/20-dhcp.network ln -s /mnt/lib/systemd/system/systemd-networkd.service /mnt/etc/systemd/system/multi-user.target.wants/systemd-networkd.service echo > /mnt/root/.bash_history guestunmount /mnt # 转换为 raw 格式 qemu-img convert -f qcow2 -O raw /root/debian-12-nocloud-amd64.qcow2 /root/debian-12-nocloud-amd64.raw # 压缩为 .gz gzip /root/debian-12-nocloud-amd64.raw # 传输到 SolusVM scp /root/debian-12-nocloud-amd64.raw.gz [email protected]:/home/solusvm/kvm/template/
 
 

如果你在操作过程中遇到具体问题(例如网络配置失败、模板无法启动)或需要额外的自定义(例如预安装软件、配置特定用户),请提供详细信息,我会为你提供针对性的解决方案!

「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」

赞(0) 打赏
一分也是爱

支付宝扫一扫打赏

微信扫一扫打赏

上一篇:

下一篇:

相关推荐

博客简介

本站CDN采用VmShell免费提供离中国大陆最近的香港CMI高速网络做支撑,ToToTel打造全球最快速的边沿网络支撑服务,具体详情请见 :https://vmshell.com/ 以及 https://tototel.com/,网站所有的文件和内容禁止大陆网站搬迁复制,谢谢,VPS营销投稿邮箱: [email protected],我们免费帮大家发布,不收取任何费用,请提供完整测试文稿!

精彩评论

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

站点统计

  • 文章总数: 2833 篇
  • 草稿数目: 31 篇
  • 分类数目: 6 个
  • 独立页面: 0 个
  • 评论总数: 2 条
  • 链接总数: 0 个
  • 标签总数: 27552 个
  • 注册用户: 139 人
  • 访问总量: 8,653,733 次
  • 最近更新: 2025年5月12日