制作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, 定位到viostor\sk12R2\amd64 :

 

 選擇加載的驅動

 

點擊下一步就可以識別到硬盤了:
 

安裝完成,系統進入登錄界面,使用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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM