❶ 手機刷 kvm 硬體虛擬化
"您好,官網沒有提供刷機軟體。由於刷機存在風險,如因自行刷機後導致的手機問題,還有可能會影響包修,因此我們不建議您自行刷機。
若手機因系統故障無法正常使用或自行刷機後導致手機出現問題,建議您將機器送到售後服務中心,由工程師幫助檢查處理。"
❷ linux虛擬化 編譯安裝qemu-kvm的時候出現gcc內部錯誤
基於64位的操作系統在虛擬機下是不行的,即使成功的安裝完成也不能做到真正的虛擬化,因為虛擬機的環境下不允許做。
❸ 如何在Debian或Ubuntu上編譯virt-manager
眼下有幾種不同的方法可以管理在KVM虛擬機管理程序上運行的虛擬機。比如說,virt-manager就是一種廣受歡迎的基於圖形用戶界面(GUI)的前端工具,可用來管理虛擬機。不過,如果你想在無外設伺服器上使用KVM,那麼基於GUI的解決方案並非理想方案。這時候,virsh就派得上用場。virsh是一種命令行工具,可用於管理來賓虛擬機(guest
VM)。就其底層而言,virsh依賴libvirtd服務,該服務可以控制幾種不同的虛擬機管理程序,其中包括KVM、Xen、QEMU、LXC和OpenVZ。
如果你想讓虛擬機的配置和管理實現自動化,virsh等命令行管理界面也大有用處。此外,virsh支持多種虛擬機管理程序,這就意味著你可以通過同一個virsh界面,管理不同的虛擬機管理程序。
我在本教程中將演示如何在Debian或Ubuntu上使用virsh,從命令行運行KVM。
第一步:證實主機支持硬體虛擬化
作為第一步,證實主機的處理器配備硬體虛擬化擴展機制(比如英特爾VT或AMD-V),KVM需要這樣的機制。下面這個命令就能證實一點。
$
egrep '(vmx|svm)' --color /proc/cpuinfo flags : fpu vme de
pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts
mmx fxsr sse sse2
ss syscall nx rdtscp lm constant_tsc up arch_perfmon pebs bts nopl
xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3
cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx f16c rdrand
hypervisor lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi
ept vpid fsgsbase smep
如果輸出結果並不含有vmx或svm標記,這意味著主機的處理器沒有支持硬體虛擬化的功能。因而,你就無法在主機上使用KVM。證實了主機處理器隨帶vmx或svm後,接下來繼續安裝KVM。
第二步:安裝KVM
使用apt-get,安裝KVM及相關的用戶空間工具。
$ sudo apt-get install qemu-kvm libvirt-bin
下一步,將你的用戶ID添加到libvirt群組,那樣你就能以非root普通用戶的身份,管理虛擬機了。作為上面安裝KVM的一部分,必須創建libvirt群組。
$ sudo adser [youruserID] libvirt
重新裝入更新後的群組成員信息,如下所示。看到要求輸入密碼的提示後,輸入你的登錄密碼。
$ exec su -l $USER
這時候,你應該能夠以普通用戶的身份運行virsh了。為了測試一下,不妨試一試下面這個命令,它會列出可用的虛擬機(目前沒有一個虛擬機)。要是你沒有遇到許可權錯誤,這意味著到目前為止,一切正常。
$ virsh --connect qemu:///system list Id Name State
❹ 虛擬化與雲計算中KVM,Xen,Qemu的區別和聯系
虛擬化類型
全虛擬化(Full Virtualization)
全虛擬化也成為原始虛擬化技術,該模型使用虛擬機協調guest操作系統和原始硬體,VMM在guest操作系統和裸硬體之間用於工作協調,一些受保護指令必須由Hypervisor(虛擬機管理程序)來捕獲處理。
圖1 全虛擬化模型
全虛擬化的運行速度要快於硬體模擬,但是性能方面不如裸機,因為Hypervisor需要佔用一些資源
半虛擬化(Para Virtualization)
半虛擬化是另一種類似於全虛擬化的技術,它使用Hypervisor分享存取底層的硬體,但是它的guest操作系統集成了虛擬化方面的代碼。該方法無需重新編譯或引起陷阱,因為操作系統自身能夠與虛擬進程進行很好的協作。
圖2 半虛擬化模型
半虛擬化需要guest操作系統做一些修改,使guest操作系統意識到自己是處於虛擬化環境的,但是半虛擬化提供了與原操作系統相近的性能。
虛擬化技術
KVM(Kernel-based Virtual Machine)基於內核的虛擬機
KVM是集成到Linux內核的Hypervisor,是X86架構且硬體支持虛擬化技術(Intel VT或AMD-V)的Linux的全虛擬化解決方案。它是Linux的一個很小的模塊,利用Linux做大量的事,如任務調度、內存管理與硬體設備交互等。
圖3 KVM虛擬化平台架構
Xen
Xen是第一類運行再裸機上的虛擬化管理程序(Hypervisor)。它支持全虛擬化和半虛擬化,Xen支持hypervisor和虛擬機互相通
訊,而且提供在所有Linux版本上的免費產品,包括Red Hat Enterprise Linux和SUSE Linux Enterprise
Server。Xen最重要的優勢在於半虛擬化,此外未經修改的操作系統也可以直接在xen上運行(如Windows),能讓虛擬機有效運行而不需要仿
真,因此虛擬機能感知到hypervisor,而不需要模擬虛擬硬體,從而能實現高性能。
圖4 Xen虛擬化平台架構
QEMU
QEMU是一套由Fabrice Bellard所編寫的模擬處理器的自由軟體。它與Bochs,PearPC近似,但其具有某些後兩者所不具備的特性,如高速度及跨平台的特性。經由kqemu這個開源的加速器,QEMU能模擬至接近真實電腦的速度。
KVM和QEMU的關系
准確來說,KVM是Linux
kernel的一個模塊。可以用命令modprobe去載入KVM模塊。載入了模塊後,才能進一步通過其他工具創建虛擬機。但僅有KVM模塊是
遠遠不夠的,因為用戶無法直接控制內核模塊去作事情,你還必須有一個運行在用戶空間的工具才行。這個用戶空間的工具,kvm開發者選擇了已經成型的開源虛
擬化軟體
QEMU。說起來QEMU也是一個虛擬化軟體。它的特點是可虛擬不同的CPU。比如說在x86的CPU上可虛擬一個Power的CPU,並可利用它編譯出
可運行在Power上的程序。KVM使用了QEMU的一部分,並稍加改造,就成了可控制KVM的用戶空間工具了。所以你會看到,官方提供的KVM下載有兩
大部分(qemu和kvm)三個文件(KVM模塊、QEMU工具以及二者的合集)。也就是說,你可以只升級KVM模塊,也可以只升級QEMU工具。這就是
KVM和QEMU 的關系。
圖5 KVM和QEMU關系
❺ 如何在centos6.5的kvm虛擬機中永久激活windows2008
一、激活原理
目前激活Windows7/Windows2008的各種方法充斥互聯網,但公認比較完美的激活方式是將品牌機(例如DELL、LENOVO等)的SLIC信息表刷寫進需要安裝Windows系統的計算機BIOS中,將該計算機「模擬」為品牌機,然後安裝微軟的OEM版Windows7/Windows2008並自動激活。
相信喜歡搞破解的童鞋都應該知道其中的奧秘,微軟和PC廠商為了減輕對於操作系統的激活負荷,對大多數品牌機實行了有別於聯網激活的「SLIC激活機制」:當Windows操作系統啟動時,就會自行讀取本機BIOS中的SLIC信息表,以及操作系統的「OEM密鑰」和「OEM證書」,如果三者完全吻合、驗證一致,Windows7/Windows2008系統就會被識別為自動激活的OEM版本。
筆者研究發現,Windows2012(注意不是Windows2012_R2,下同)與以往激活Windows7/Windows2008的方式類似,依然可以採用刷寫BIOS中SLIC信息表安裝OEM版系統的方式實現永久激活,只不過激活Windows2012需要SLIC2.2版,經測試SLIC2.2能夠向下兼容SLIC2.1/2.0。
眾所周知,虛擬機軟體也是有BIOS的,目前市場上常見的虛擬機軟體,如VMware、Xen、Kvm等均通過軟體模擬的方式「模擬」硬體BIOS。既然可以採用刷寫計算機硬體BIOS的方式實現永久激活,那麼如果能夠將SLIC2.2信息表通過軟體再編譯方式「灌入」虛擬機的BIOS中,然後再安裝Windows2012的OEM版本,不就可以與刷寫BIOS硬體實現自動激活「異曲同工」了嗎?
二、核心問題
激活原理已經非常明確了,現在的關鍵問題是如何重新編譯Linux虛擬機的問題了,這涉及Linux內核的重新編譯,一些菜鳥可能望而生畏,盡管編譯 Linux全部內核確實需要較高的技術水平,但重新編譯Linux的BIOS難度並不高,初學者也可以輕松實現。本文以Linux的常見版本CentOs6.5為例,詳細講解重新編譯KVM虛擬機BIOS的步驟。本文的方法同樣適用Ubuntu等 Linux版本。
CentOs6.5虛擬機KVM的BIOS實際是一個二進制的可執行文件,默認安裝路徑為/usr/share/seabios/bios.bin。筆者研究發現,KVM虛擬機BIOS使用的是開源軟體 seabios,該軟體的源代碼可以在互聯網上找到,開源組織也製作了為seabios軟體增加相應SLIC信息表的補丁包,下載seabios的源代碼並打上該補丁包,然後重新編譯並替換Linux默認的bios.bin文件,就可以將虛擬機「模擬」為品牌機,然後自動激活OEM版的Windows2012系統了,這種激活方式是永久激活,激活後的Windows2012可以打上微軟的後續補丁且絕對不會被封殺。
三、詳細步驟
1.獲取SLIC2.2信息表。當前SLIC2.1的信息表網上很容易找到,SLIC2.2的信息表不多,比較容易找到的是DELL 版的SLIC2.2信息表。當然也可以找一台預裝了Windows2012的品牌機(市面上比較常見的是DELL的機器),然後使用SLIC_Toolkit3.2工具導出該機器的SLIC表。SLIC2.1/2.2表為二進制文件,長度均為374位元組(這一點一定要注意)。
2.安裝CentOs6.5_x64版操作系統。記得把gcc安裝上,然後將上一步已經獲取的SLIC2.2表拷貝在/ opt目錄中(假定文件名稱為DELL_SLIC2.2.BIN)。
3.在root用戶下安裝git,、iasl及所有依賴包。
#yum install git
#yum install iasl //這是必須安裝的包
4.使用git獲取sealic項目的源碼。
# mkdir bios //目錄可以自己隨便建
#cd bios
#git clone git://github.com/ghuntley/seaslic //獲取源代碼
#ls -ls
Seaslic //用git軟體獲取源代碼後會有多出一個目錄
# cd seaslic
#ls
patch.sh README.markdown seabios.patch seabios.submole
//該目錄共包含三個文件和一個子目錄,其中子目錄seabios.submole需要刪除掉,用我們後面下載的內容重建。
#rm -rf seabios.submole
5.從地址code.coreboot.org/p/seabios下載的SeaBios的源碼並解壓。注意源代碼一定要下載1.7.3.2版本的,這一點也很關鍵,千萬不能搞錯了。
#tar xzvf seabios-1.7.3.2.tar.gz 解壓在/bios目錄下。
6.重建seabios.submole
#cd /bios
# cp –r seabios-1.7.3.2 seaslic/seabios.submole
# cd seaslic
# ls
patch.sh README.markdown seabios.patch seabios.submole
進入我們重建的seabios.submole目錄,可以發現有bios的源代碼存在:
# cd seabios.submole
# ls
COPYING COPYING.LESSER Makefile README README.CSM src TODO tools vgasrc
# cd src
可以發現seabios的源代碼,我們需要重新編譯這些源代碼,生成新的bios.bin 文件,用於替代CentOs6.5系統自帶的bios.bin。
7.查看/bios/seaslic /patch.sh文件。這是一個批處理文件,只有2行有用。用Linux的命令方式執行,為防止輸入錯誤,最好從patch.sh中復制粘貼後在root用戶下執行:
①將SLIC2.2文件轉換為C語言包含文件格式(acpi-slic.hex)的命令:
#xxd -i /opt/DELL_SLIC2.2.BIN | grep -v -E "len "| sed 's/unsigned char.*/static char SLIC[] = {/' > seabios.submole/src/acpi-slic.hex
說明:這條命令執行後將會把SLIC2.2表(即/opt/DELL_SLIC2.2.BIN文件)轉換為C語言包含文件格式(文件名../src/acpi-slic.hex),並以數組形式存在。這一步非常非常關鍵,轉換完成的acpi-slic.hex文件應為2333位元組。如果本條命令執行不成功的話,編譯出來的bios.bin文件不會包含SLIC2.2信息,也就無法實現激活了。
②為acpi.c 文件打補丁的命令:
# cd /bios/seaslic /seabios.submole
#patch -p1 < ../seabios.patch
說明:這條語句執行後將給../ src/acpi.c 文件打上補丁,執行後系統將會提示:
Hunk #1 succeeded at 20 with fuzz 2 (offset -194 lines).
Hunk #2 succeeded at 37 with fuzz 2 (offset -194 lines).
Hunk #3 succeeded at 631 with fuzz 2 (offset -205 lines).
注意:至此我們的准備工作已經全部完成了,下面將重新編譯生成新的bios了。
8.重新編譯生成bios.bin文件
# cd /bios/seaslic /seabios.submole
#make //編譯需要花幾十秒鍾吧,應提示無錯誤、無警告,否則可能需要仔細檢查以上步驟。
查看..seabios.submole/out/bios.bin
看到最後生成的結果了吧,會在..seabios.submole/out/中多出一個bios.bin文件,這個文件就是我們重新編譯生成的虛擬機的bios,將用來替換KVM的系統原有的bios.bin文件。
說明:這里編譯生成bios.bin文件包含有DELL品牌機的SLIC2.2,可以激活DELL的Windows2012_OEM版。同理,我們只要找到其他品牌機的SLIC2.2信息表,重新編譯後就可以安裝激活其他品牌機的OEM版Windows7/2008/2012(SLIC2.1隻能支持Vista/Win7/2008,不支持 Win2012;SLIC2.2則支持XP/Vista以及Win2008/2012並兼容SLIC2.1),與刷寫計算機硬體BIOS實現自動激活的方式相比,採用這種方式激活Windows的風險為零,非常適合批量激活虛擬機的Windows2008/Windows2012。
9.替換CentOs6.5系統默認的bios.bin文件
# cp out/bios.bin /usr/share/seabios/bios.bin
#reboot //重新啟動一下宿主機,然後再重新啟動Windows虛擬機,在啟動KVM虛擬機的時候,可以發現虛擬機的bios 已經更新為最新版本了。
10.激活windows2012
至此KVM虛擬機的bios已經重新配置完成,在KVM中啟動WINDOWS客戶機,然後利用SLIC_Toolkit3.2工具檢查SLIC,會發現你的SLIC信息已經獲取成功,如果你安裝的是OEM版本的 Win2008/2012的話,無需輸入key和證書就能自動激活。你可以從網上網路如下OEM鏡像(我已試驗過可自動激活):
(1)Lenovo的OEM版Windows2008_R2鏡像:
Windows_Server-2008_R2_ENT_OEM.iso或者
Win_Server_08_R2_SP1_33in1.iso
(2)Dell的OEM版Windows2012鏡像:
Ser2012_ST_DA_OEM.iso
(3)如果你手上暫時沒有OEM版的話,也不要緊,可以用slmgr命令手工增加證書及OEM序列號也可以激活Windows2008/20012。直接用管理員身份進入命令行模式:
①slmgr -ilc DELL2.2.XRM-MS //這里找到的是DELL計算機的Windows2012版OEM證書。
②接下來就是寫入注冊號了:
slmgr -ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
說明:下面是我從網上找到的 OEM版序列號(經測試可以激活):
Windows Server 2012 Standard DELL OEM KEY
2G9DG-XKFR6-VG8D3-DN9T9-CDG98
Windows Server 2012 Datacenter DELL OEM KEY
2BVGY-TNRWK-6927W-866R9-66J3H
Windows Server 2008 R2 Standard DELL OEM KEY
D7TCH-6P8JP-KRG4P-VJKYY-P9GFF
Windows Server 2008 R2 Enterprise DELL OEM KEY
BKCJJ-J6G9Y-4P7YF-8D4J7-7TCWD
③執行slmgr –dlv //顯示全部激活信息
④執行slmgr -xpr //顯示Windows2008/2012已經永久激活。
❻ 如何在 VMware ESXi 虛擬機上運行 KVM
你的問題有點不理解啊,首先vsphere和KVM都可以作為虛擬平台單獨使用的,當然還有一個概念KVM是控制主機的,顯然不是你想要了解的。
所以你如果想運行虛擬化平台可以使用vsphere或者KVM,如果你想通過vsphere實現KVM管理或者搭建,這個可能需要涉及到雲的概念,但是他們的關聯是需要單獨開發的。
建議你把自己想要的在了解下概念。
❼ 我卸載了kvm,可是編譯內核產生的mole還是有kvm
編譯內核產生kvm模塊跟config有關,如果你卸載kvm後沒有重新進行config的話,編譯出來的東西與先前是一樣的,先前有kvm此時照樣有kvm。
卸載後,如果通過make localmodconfig進行配置的話應該就沒有kvm模塊的。
可以在linux源文件目錄下的.config中查看KVM相關的模塊配置。
❽ kvm怎麼使用
你好。16口的kvm
這樣連接,將kvm上的輸入1~16,用kvm線纜和計算機後面的,鍵盤,滑鼠,顯示器介面連接起來,然後在kvm的輸出連接上鍵盤,滑鼠和顯示器,然後就可以來切換控制計算機了。一般的快捷鍵是,按兩下
ctrl
鍵,用方向鍵來選擇,回車來確定,。如果有不懂,加我
2996
1676
❾ KVM命令行安裝時--os-variant 參數怎麼寫才對
兩個方法:
復制環境:找一台類似的機器,將你的目前機器上的lamp
memcache
python
svn的所有文件,使用rsync的方式,直接同步到新的機器上,再在新機器上進行安裝測試;
直接編譯或安裝:不知道你是不是使用的php-fpm,如果是得話,那就更簡單了,將5.3.10編譯到某個指定目錄,再啟一個apache的旦閥測合爻骨詫攤超揩虛擬機主,然後直接使用新的5.3.10的php-fpm,這樣測試就不沖突了;
❿ kvm跨系統原理
KVM源代碼分析1:基本工作原理 下了很大決心挖這個坑,雖然之前對kvm有些了解,但紙上得來終覺淺,只有深入到代碼層面,才能擯棄皮毛,看到血肉,看到真相。作為挖坑的奠基石,准備寫上幾篇:kvm基本工作原理、CPU
調度原理、KVM內存管理、KVM存儲管理、KVM設備管理。挖好之後進入正題。 所有的虛擬化都是兩部分組成:虛擬機和宿主(HOST),虛擬機內運行正常的業務程序,HOST則正常運行虛擬機,此處的虛擬機則是KVM,負責在HOST裡面虛擬化出獨立的OS環境。 KVM屬於完全虛擬化,功能組件上由兩部分組成,KVM Driver(內核態)和Qemu(用戶態)。KVM Driver負責模擬虛擬機的CPU運行,內存管理,設備管理等;Qemu則模擬虛擬機的IO設備介面以及用戶態控制介面。 kvm-oenhan 如上圖所示,Qemu在最上層,將虛擬機的整體呈現到host用戶上,可以理解成客戶模式;Qemu通過中間層libkvm或者ioctl等控制/dev/kvm設備介面,從而掌握內核態中kvm
驅動進行的資源分配,即用戶態模式;kvm驅動接收用戶態操作指令,控制虛擬機在內核態的資源分配,稱之為內核模式。在HOST裡面,客戶模式的體現就是一個虛擬機內部環境,用戶態則是虛擬機進程。
oenhan_kvm 上圖是一個執行過程圖,首先啟動一個虛擬化管理軟體,開始啟動一個虛擬機,通過ioctl等系統調用向內核中申請指定的資源,搭建好虛擬環境,啟動虛擬機內的系統,虛擬機內的系統向內核反饋相關資源申請處理,如果是io請求,則提交給用戶模式下的qemu處理,非io請求則將處理結果反饋給客戶模式。 libkvm是qemu自己使用的用戶態介面,可以把qemu源代碼解開,裡面有libkvm的函數庫,不過並不對外呈現,虛擬機編程介面一般使用libvirt。
KVM的思想是在Linux內個的基礎上添加虛擬機管理模塊,重用Linux內核中已經完善的進程調度,內存管理,IO管理等部分,因此KVM並不是一個完整的模擬器,而只是一個提供虛擬化功能的內核插件,具體的模擬器工作是藉助QEMU來完成的. 在Xen的體系結構中,Xen Hypervisor運行於硬體之上,並且將系統資源進行了虛擬化,將虛擬化的資源分配給上層的虛擬機(VM),然後通過虛擬機VM來運行相應的客戶機操作系統. 在KVM中,一個虛擬機就是一個傳統的Linux中的線程,擁有自己的PID號,也可以被kill系統調用直接殺死(在這種情況下,虛擬機的行為表現為"突然斷電").在一個Linux系統中,有多少個VM,就有多少個進程.如: 以上VM進程信息是通過qemu-kvm來進行的,相關的控制開關作為命名行參數輸入,如虛擬映像對應的磁碟,虛擬網卡,VNC設置,顯卡設置和IO設置等. KVM的API是通過/dev/kvm設備進行訪問的./dev/kvm是一個字元型設備. 1 root@ubuntu:~# ls -l /dev/kvm 2 crw-rw---- 1 root kvm 10, 232 Mar 14 14:20 /dev/kvm kvm僅僅是Linux內核的一個模塊,管理和創建完整的KVM虛擬機,需要更多的輔助工具. 1.qemu-Kvm:僅有KVM模塊是遠遠不夠的,因為用戶無法直接控制內核模塊去做事情,還必須有一個用戶空間的工具。關於用戶空間的工具,KVM 的開發者選擇了已經成型的開源虛擬化軟體 QEMU.QEMU 是一個強大的虛擬化軟體,它可以虛擬不同的 CPU 構架. 運行在內核態的KVM模塊通過/dev/kvm字元設備文件向外提供操作介面.KVM通過提供libkvm這個操作庫,將/dev/kvm這一層面的ioctl類型的API轉化成為通常意義上的函數API調用,提供給QEMU的相應適配層. 比如說在x86 的CPU上虛擬一個Power的CPU,並利用它編譯出可運行在 Power上