zoukankan      html  css  js  c++  java
  • 制作openstack的windows server 2012r2镜像

    1. 基础环境安装

    yum groupinstall Virtualization "Virtualization Client"
    yum install libvirt
    

    2. 启动服务

    systemctl enable libvirtd
    systemctl start libvirtd
    systemctl status libvirtd
    

    3. 系统镜像准备

    使用迅雷下载镜像并上传到服务器

    mkdir /openstack-image
    cd /openstack-image
    ed2k://|file|cn_windows_server_2012_r2_with_update_x64_dvd_6052725.iso|5545705472|121EC13B53882E501C1438237E70810D|/
    

    4. 创建磁盘文件

    chown -R qemu:qemu /openstack-image
    qemu-img create -f qcow2 ws2012r2-dc.qcow2 20G
    

    5. 准备 windows 兼容驱动

    wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.126-2/virtio-win-0.1.126.iso
    wget https://cloudbase.it/downloads/CloudbaseInitSetup_0_9_11_x64.msi
    

    6. 启动虚拟机

    由于在windows下需要下载Cloudbase,网络较慢,我将提前下好的文件CloudbaseInitSetup_0_9_11_x64.msi 打包成 CloudbaseInitSetup_0.9.11_x64.iso, 并上传到服务器与windows镜像相同的目录,启动时添加如下参数,同时挂载3个光驱到系统,以便开机后能够一次性完成个性化配置、网卡驱动更新、cloudbase安装。

    6.1 使用virt-install安装

    这个工具的使用方法找了千百种,发现不能同时添加安装镜像和驱动镜像,直到找到这篇文章:

    http://bart.vanhauwaert.org/hints/installing-win10-on-KVM.html

    qemu-img create -f qcow2 ws2012r2-dc.qcow2 20G
        
    virsh destroy ws2012r2 && virsh undefine ws2012r2
    virt-install --name=ws2012r2 --ram=2048 --cpu=host --vcpus=2 
     --os-type=windows --os-variant=win2k12r2 
     --disk ws2012r2-dc.qcow2,bus=virtio 
     --disk cn_windows_server_2012_r2_datacenter_with_update_x64_dvd_4048415.iso,device=cdrom,bus=ide 
     --disk virtio-win-0.1.126.iso,device=cdrom,bus=ide 
     --disk CloudbaseInitSetup_0.9.11_x64.iso,device=cdrom,bus=ide 
     --network network=default,model=virtio 
     --graphics vnc,listen=0.0.0.0 --noautoconsole
    

    6.2 使用qemu-kvm安装

    这里的-vnc 参数值为ip:数字, 即VNC端口默认从5900开始,加上指定的数字,我这里设置的 0.0.0.0:0, 因此能够直接连接5900VNC端口。

    qemu-img create -f qcow2 ws2012r2.qcow2 20G
        
    qemu-kvm -m 2048 -drive file=ws2012r2.qcow2,if=virtio,index=0,media=disk 
     -drive file=cn_windows_server_2012_r2_datacenter_with_update_x64_dvd_4048415.iso,index=1,media=cdrom 
     -drive file=virtio-win-0.1.126.iso,index=2,media=cdrom 
     -drive file=CloudbaseInitSetup_0.9.11_x64.iso,index=3,media=cdrom 
     -net nic,model=virtio -net user -boot d -nographic -vnc 0.0.0.0:0
    

    7. 安装系统

    netstat -ntlp | grep qemu-kvm 查找到虚拟机的vnc端口为5900,使用tigerVNC进行连接,并在控制台完成系统安装。
    ip就是服务器的ip,端口默认第一个为5900以此类推,也可以通过命令virsh vncdisplay vmname查询端口,推荐使用tigervnc来打开。

    8. 驱动添加

    由于windows并不自带openstack的驱动,系统启动后无法识别到硬盘,需要手动加载virtio驱动;并且网卡驱动也需要使用virtio驱动。因为前面启动虚拟机时已经挂载了virtio镜像,这里可以直接到计算机里面全安装。

    8.1 硬盘驱动添加(安装时完成)

     点击 浏览--光驱vortio-win-0.1.1, 定位到viostorsk12R2amd64 :

     

     选择加载的驱动
    点击下一步就可以识别到硬盘了:
     

    安装完成,系统进入登录界面,使用F8快捷键召唤 TigerVNC菜单,选择Send Ctrl+Alt+Del:

     8.2 网卡驱动更新(进入系统后完成)

    在设备管理的以太网控制器上右键,浏览到光驱下面的NetKVM,选择2k12R2:

     确认安装

     

    9. 安装cloudbase-init

    在打开光驱,双击msi文件安装cloudbase-init

     按照如下截图选择

     

     10. 压缩镜像
    virt-sparsify --compress ./ws2012r2-dc.qcow2 Windows-Server-2012R2-DC.qcow2
    

    11. 添加镜像到glance

    openstack image create "Windows-Server-2012R2-DC" --file ./Windows-Server-2012R2-DC.qcow2 --disk-format qcow2 --container-format bare --public
    

    12. 删除虚拟机

    从virsh删除虚拟机,但磁盘会被保留。

    virsh list --all
    virsh undefine ws2012r2
    

    13. 使用已有磁盘

    如果需要再次使用这个磁盘创建虚拟机,使用如下命令创建

    virt-install --name ws2012r2 --memory 2048 --vcpus 2 --disk ws2012r2-dc.qcow2,format=qcow2 
     --import --os-type=windows --os-variant=win2k12r2 
     --disk virtio-win-0.1.126.iso,device=cdrom,bus=ide 
     --disk CloudbaseInitSetup_0.9.11_x64.iso,device=cdrom,bus=ide 
     --network network=default,model=virtio 
     --graphics vnc,listen=0.0.0.0 --noautoconsole



    作者:NOZUONOHIGH
    链接:https://www.jianshu.com/p/c92c3c9a2d6f#comment-13996075

  • 相关阅读:
    [pytorch][模型压缩] 通道裁剪后的模型设计——以MobileNet和ResNet为例
    [面试]DeeCamp2020面试记录
    [python][pytorch]多GPU下的模型保存与加载
    [目标检测][python][cpp]非极大值抑制(NMS)算法原理以及CPP实现
    [pytorch]动态调整学习率
    [pytorch][持续更新]pytorch踩坑汇总
    [CPP]push_back和emplace_back的区别
    [LeetCode in Python] 199 (M) binary tree right side view 二叉树的右视图
    [LeetCode in Python] 5390 (M) minimum number of frogs croaking 数青蛙
    [LeetCode in Python] 1345 (H) jump game iv 跳跃游戏 IV
  • 原文地址:https://www.cnblogs.com/kcxg/p/11088483.html
Copyright © 2011-2022 走看看