如何创建华为HCS中可用的CentOS QCow镜像

以下所有操作均在Ubuntu 24.10桌面版中进行。

1.安装相关包。

sudo apt install guestfs-tools virt-manager cloud-utils

2.下载CentOS Cloud Image,以CentOS 7版本为例。

wget https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2c

3.将下载的img转换为qcow2格式,华为HCS建议Linux磁盘大小不低于20G。

qemu-img convert -f qcow2 -O qcow2 CentOS-7-x86_64-GenericCloud.qcow2c root-disk.qcow2

qemu-img resize root-disk.qcow2 20G

4.编写cloud-init配置,并另存为cloud-init.cfg,以下配置的主要含义是:

  • 自动更新软件包,自动重启。
  • 安装x11-utils、hwinfo(检测分辨率)包。
  • 设置cent用户默认密码为cent。
  • 软件源修改为中科大源。
  • ssh认证允许使用密码认证。 
  • datasource使用OpenStack类型。
  • 禁用CentOS-Base.repo文件中默认的base、updates、extras源。
#cloud-config
package_reboot_if_required: True
package_update: True
package_upgrade: True

system_info:
  default_user:
    name: centos
    home: /home/centos

datasource:
  OpenStack:
    metadata_urls: ["http://169.254.169.254"]
    max_wait: 120
    timeout: 5
    apply_network_config: False

yum_repos:
  ustc:
    name: USTC
    baseurl: https://mirrors.ustc.edu.cn/centos-vault/centos/$releasever/os/$basearch/
    gpgcheck: 1
    gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

password: "centos"
chpasswd: { expire: False }

ssh_pwauth: True
runcmd:
  - yum-config-manager --disable base,updates,extras

5.将cloud-init.cfg文件封装成iso文件。

cloud-localds cloud-init.iso cloud-init.cfg

6.创建虚拟机,虚机名字使用“centos”,graphics参数配置为spice,网卡采用默认NAT方式。

  virt-install \
  --name centos \
  --memory 4096 \
  --disk root-disk.qcow2,device=disk,bus=virtio \
  --disk cloud-init.iso,device=cdrom \
  --os-variant centos7 \
  --virt-type kvm \
  --graphics spice \
  --network network=default,model=virtio \
  --import

7.要提升分辨率,首先要安装hwinfo。

sudo apt install hwinfo

8.使用hwinfo命令查看支持的分辨率。

sudo hwinfo --framebuffer

注:方式一安装的虚机运行以上命令结果为空,因此无法提升分辨率。

9.选择1024x768作为新分辨率。

sudo vim /etc/default/grub

GRUB_GFXMODE=1024x768x24
GRUB_GFXPAYLOAD_LINUX=1024x768

sudo update-grub

10.在虚机中安装vmtools,从而使得OC可以监控虚机CPU、内存等资源使用情况。

sudo snap install vmagent

11.在宿主机中执行以下命令,清理相关资源。

sudo virt-sysprep -d centos

12.把镜像压缩一下,一般可以压缩至500M左右。

qemu-img convert -f qcow2 -O qcow2 -c root-disk.qcow2 centos.qcow2

参考文章:

1.https://waynerv.com/posts/create-out-of-box-ubuntu-qcow2-image/

2.https://unix.stackexchange.com/questions/17027/how-to-set-the-resolution-in-text-consoles-troubleshoot-when-any-vga-fail

3.https://linux.die.net/man/1/virt-install

评论

此博客中的热门博文

Clash Verge全局扩展配置及脚本

ShadowRocket懒人配置

如何创建华为HCS中可用的Ubuntu Qcow2镜像