在virtualbox上使用cloud images云镜像

经过不断的研究,搜索资料,终于搞定了在virtualbox上使用cloud images云镜像。

一:准备材料

1、Virtualbox虚拟化环境。
可以在官网下载。也可以在清华镜像站下载 https://mirrors.tuna.tsinghua.edu.cn/virtualbox/

2、cloud-init.iso(用于触发cloud-init)

3、cloud云镜像
下载地址可以看我的另一篇文章 在Proxmox VE pve里使用cloud-init 构建(centos\ubuntu\debian)cloud images

二:创建cloud-init.iso

这里需要一个linux系统来创建ISO。建议用ubuntu简单高效。

1、在一台ubuntu的机子上,安装cloud-image-utils

apt update && apt install cloud-image-utils -y

2、创建cloud-user-data。默认账号密码为root/rootroot

cat > cloud-init.cfg << EOF
#cloud-config
hostname: vm
manage_etc_hosts: true
user: root
disable_root: False
password: rootroot                                               
chpasswd:
  expire: False

EOF

写法规范见cloud-init官网https://cloudinit.readthedocs.io/en/latest/topics/examples.html

3、创建iso

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

4、将cloud-init.iso复制到virtualbox主机

在主机上,创建web服务,然后将iso复制到web根目录

apt install nginx -y
mv cloud-init.iso /var/www/html

在virtualbox主机上,下载cloud-init.iso

三:下载并导入cloud-images

这里下载一个centos8的镜像

在virtualbox的虚拟机介质管理器里,注册刚才下载的cloudimages和cloud-init.iso

并且点击复制,复制一个vdi格式的镜像

四:创建虚拟机

1、创建虚拟机, 硬盘选择刚才创建的vdi镜像。

2、修改配置文件

将磁盘控制器型号,设为virtio-scsi

在IDE控制器那里,添加虚拟光盘

修改网卡为桥接模式。芯片设置为virtio-net

添加一个串口(端口号为com1)。绝大部分云镜像需要个串口,所以需要中设置,设置为主机管道,路径为
\\.\pipe\comN (N为非0整数)如下图所示。

五:开启虚拟机

由于centos8引导的问题,只能在串口速率为15200查看。其他os,可以在引导界面,按e,查看速率是多少

这里使用putty,连接到串口\\.\pipe\com4。15200

在putty中,正在开机

成功开机,就会出现login页面。

六:centos8 云镜像关机之后,无法开机问题解决

centos8 包括8.1和8.2,在使用virtualbox之后,关机之后,再开机就会出现错误,找不到sysroot。

解决原理,看这个
CentOS8.1启动时出现Failed to start Switch Root错误如何解决?

本次解决办法为,

在这个页面,输入

mount /dev/sda1 /sysroot   #挂载硬盘
exit      #退出再启动

开机之后,

vi /boot/grub2/grubenv

将第一行#号前的乱码字符去掉,保存即可。

以后,就不会有问题了。

七:照此成功的镜像

centos7/8 opensuse debian ubuntu fedora均能成功

Author: 佛西

Leave a Reply

Your email address will not be published.