个性化制作OpenStack镜像|Windows7

823 阅读4分钟

欢迎留言讨论,期待与你共同进步掘金人的第一篇博客 - 掘金 (juejin.cn)

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录,涉及基本环境准备、常见类型操作系统的镜像制作。
让你可以从零开始安装一个操作系统,并支持个性化制作OpenStack镜像。

掘金社区:个性化制作OpenStack镜像|系列教程

个性化制作OpenStack镜像|环境准备
个性化制作OpenStack镜像|Windows7
个性化制作OpenStack镜像|Windows10
个性化制作OpenStack镜像|Linux
个性化制作OpenStack镜像|Windows Server2019


CSDN:OpenStack镜像制作教程指导(全)


省略部分前序步骤,请参考前面几篇文章。

Windows7镜像制作

1.文件准备

  • cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso
  • virtio-win-0.1.171.iso
  • virtio-win-0.1.171_amd64.vfd
  • 方便使用上述3个文件放到同一个文件下面
$ pwd

/home/centos

$ mkdir tmp

$ cd tmp/

$ ls

cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso  virtio-win-0.1.171_amd64.vfd  virtio-win-0.1.171.iso 

2.创建镜像磁盘文件

创建一个安装虚拟机的镜像文件,这个文件相当于物理机的硬盘

格式为qcow2,

名称为win7.qcow2,

设置大小为64G。(PS:创建虚拟机的磁盘的时候注意查看物理机磁盘空间是否足够)

qemu-img create -f qcow2 -o preallocation=metadata win7.qcow2 64G 

qemu-img info win7.qcow2

注意:上述命令在直接创建qcow2格式之后,注意镜像制作完成后压缩一下qcow2文件的占用空间。
也有可能是virt-install --connect具体命

令内容的不同,可详细比较CentOS中使用的命令。

3.网络配置

查看网桥,用于将虚拟机网卡桥接到某个网桥上:

brctl show


这个virbr0网桥用于自动生成的NAT网络,为了方便,一般创建一个跟物理网络直接桥接的网桥,比如创建的网桥名为br0:

sudo brctl addbr br0

brctl show

加入一张与物理网络连接的网卡,并且将网卡的IP设置到网桥上。
现在与物理网络相连的网卡是ens33,IP是172.28.0.151:

将ens33这张网卡加入br0的网桥:

sudo brctl addif br0 ens33

取消ens33的IPv4地址:

sudo ifconfig ens33 0.0.0.0

配置br0的IPv4地址为ens33原来的IP:

sudo ifconfig br0 172.28.0.151/24

再次查看网桥可以发现ens33已经连接到了br0上了:

brctl show

ens33的IP已经配置到br0上了:

4.开始制作

使用创建的磁盘安装虚拟机,以win7的iso镜像为例:

sudo virt-install --connect qemu:///system -n win7 \
--vcpus=1 -r 2048 \
--disk path=/home/win7.img,format=qcow2,device=disk,size=64,bus=virtio,cache=none \
--disk path=/home/cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso,device=cdrom,perms=rw  \
--vnc --vnclisten=0.0.0.0  \
--os-type windows --os-variant=win7 \
--accelerate --network=default,model=virtio  \
--disk path=/home/virtio-win-0.1.110.iso,device=cdrom,perms=rw \
--disk=/home/virtio-win-0.1.110_amd64.vfd,device=floppy


注:
#(1)-r 1024表示内存大小为1024M

#(2)--network=bridge:br0,model=virtio表示将网卡桥接到br0这个网桥上,网卡驱动为virtio

#(3)--disk path=/var/win7_ultimate_empty.qcow2,size=20,format=qcow2,bus=virtio,cache=none表示使用win7.qcow2作为硬盘,大小为20G,磁盘格式为qcow2,磁盘驱动为virtio,不使用缓存

#(4)--disk path=/home/hjj/cn_windows_7_ultimate_x64_dvd_x15-66043.iso,device=cdrom,perms=ro使用cn_windows_7_ultimate_x64_dvd_x15-66043.iso文件作为插入的CD光盘,ro代表只读

#(5)--os-type windows --os-variant=win7操作系统类型为windows,且变种为win7。此处可以只填写windows。

命令介绍与详解可以百度一下

如果装了virt-viewer,则会自动弹出win7的安装界面,不需执行5-7步,直接到第8步.

如果没装virt-viewer或未弹出则可以进行5-7步,使用其他机器连接。(另找一台能连接上此机器的电脑,系统为windows即可)

5.进行windows安装

需要注意的是:驱动的安装,其他安装步骤在此就不演示了。

使用virtio作为磁盘和网卡的驱动,由于一开始未安装virtio驱动,所以扫描不到磁盘:

需要先加载驱动程序,安装磁盘和网卡的virtio驱动:

磁盘驱动:

继续选择加载驱动程序,

网卡驱动:

接下来的过程就和安装普通win7一样了:

虚拟机在安装过程中可能会重启,如果重启时未自动开机,则可以使用virsh list --all查看所有创建的虚拟机,然后virsh start win7打开关闭的win7虚拟机。

6.镜像文件占用空间压缩

参考链接

ubuntu@ubuntu:~/Desktop/ops$ qemu-img info win7.qcow2 

ubuntu@ubuntu:~/Desktop/ops$ qemu-img convert -O qcow2 win7.qcow2 win7_new.qcow2


ubuntu@ubuntu:~/Desktop/ops$ ll -lh win7*

-rw-r--r-- 1 ubuntu ubuntu 7.3G Sep 30 10:41 win7_new.qcow2

-rw-r--r-- 1 root   root    65G Sep 30 10:33 win7.qcow2 

ubuntu@ubuntu:~/Desktop/ops$

7.上传镜像

将安装好系统的qcow2文件上传到openstack平台即可使用此镜象启动实例。
当实例安装了软件需要保存时即可创建快照,此快照为硬盘快照,使用快照创建的实例就都安装了此软件。