centos7

确认模块是否已加载

  • 若输出包含 virtio_net(网络)、virtio_blk(硬盘)、virtio_pci 等模块,则已加载。否则需配置自动加载。

lsmod | grep virtio

配置模块开机自动加载

创建模块加载配置文件

echo -e "virtio\nvirtio_blk\nvirtio_net\nvirtio_pci" | sudo tee /etc/modules-load.d/virtio.conf

立即加载模块(无需重启)

sudo modprobe -a virtio virtio_blk virtio_net virtio_pci

安装cloud-init

查询当前系统环境是否已安装cloud-init

cloud-init -v
sudo yum install cloud-init cloud-utils-growpart -y

删除cloud-init缓存目录

rm -rf /var/lib/cloud/*

安装cloud-init依赖包

yum install python3-pip -y
yum install python3-devel

vim /etc/cloud/cloud.cfg.d/10_resize_fs.cfg
#cloud-config
growpart:
  mode: auto
  devices: ['/']
  ignore_growroot_disabled: false

在配置文件/etc/cloud/cloud.cfg禁用cloud-init接管网络

vi /etc/cloud/cloud.cfg
network:
  config: disabled

重新生成initramfs

echo 'add_drivers+="virtio virtio_blk virtio_net virtio_pci"' | sudo tee /etc/dracut.conf.d/virtio.conf
sudo dracut -f --regenerate-all

更新GRUB(可选,通常无需操作)

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

重启cloud-init, 查看cloud-init 状态

systemctl restart cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service

执行如下命令检查cloud-init版本以及是否正常运行。

cloud-init -v
cloud-init init --local

作者:张旭  创建时间:2025-05-28 09:26
最后编辑:张旭  更新时间:2025-06-10 14:08