android上的QEMU命令行詳解(全系列)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??QEMU(前言)
實際上,我們離Qemu并不遙遠,像我們所熟悉的limbo,Qemu啟動器,APQ等眾多的安卓應用,內布仍采用的是Qemu作為核心,就連wine也有基于Qemu的內容 ,Qemu有許多很棒的功能,也不僅僅是虛擬x86,也可作為內核調試,當然,這些內容我們現在不談,現在的目標是學會它,并且能夠熟練的運用它,把它的每一個功能都發(fā)揮在必要的地方上,
但是在這之前,我們先來糾正幾個誤區(qū):首先,Qemu并不是一個apk安卓應用,它能夠在linux windows android等眾多系統(tǒng)中運行,很多人以為Qemu啟動器就是Qemu的本體,其實并不是這樣,這個只是一個軟件,它只是核心基于QEMU,其次就是把它圖形化,讓安卓用戶更容易的操作,但是這個軟件存在的bug比較多,并且高安卓版本無法運行,所以很多人就自認為自己手機用不了Qemu,這個觀念其實是錯誤的
其次,QEMU不僅僅只是windows模擬器,很多人認為QEMU只是千篇一律的模擬windows X86這種觀念也是錯誤的,一套完整編譯的QEMU,可模擬幾十幾百個架構(例如win10 arm debian ppc64el) QEMU可以模擬的系統(tǒng)很多,還不僅僅局限在windows,它小到應用程序,大到操作系統(tǒng)
效率:很多人認為手機上的QEMU就是個垃圾低效率虛擬機,但是,您仔細想想,如果一臺正常的手機,要去運行windows系統(tǒng),那能快嗎? 答案肯定是不能,因為大部分手機的架構是ARM,而大部分windows是X86 這樣子運行的話QEMU效率就會因為異架構損耗而被消耗殆盡,還有一個原因,就是手機不能夠啟用虛擬化,因為廠商幾乎閹割虛擬化,因為正常的手機,要這個特性也沒用,現在的人的手機幾乎用來打游戲,上網聊天,很少有人用手機去折騰這些,所以為了簡化,大部分的手機出廠都不帶虛擬化的,這一點就是為什么即使是同架構的模擬,效率仍然會被損耗殆盡的原因了
當然也并不是絕對的,也有幾臺手機是例外
前言介紹已經講完,現在開始我們研究Qemu命令行的第1步--安裝
上文說過Qemu并不是一個安卓上軟件,他本身核心是要靠命令行去驅動,那些軟件只不過是把它接近圖形化,實則內部仍是命令行腳本驅動
首先想要學習QEMU,必須得自身擁有一個QEMU,有很多方法,但是這里強烈推薦proot+Linux ubuntu+QEMU
此方法是在安卓搭建一個proot容器,并在其內部安裝/運行l(wèi)inux發(fā)行版,再在其中安裝Qemu以達到目的
在安卓搭建linux的方法大有很多,可以隨便百度或者是找個視頻
這里推薦幾個軟件:如果沒有root可以嘗試以下軟件
userland termux Utermux
root用戶可以嘗試linux deploy
這些應用的教程在網絡上是應有盡有,可以隨便搜一個
所安裝的linux并不需要圖形界面,只需一個命令行窗口即可
如果您不懂linux的用法,建議您選擇ubuntu,如果你很精通linux,你可以選擇一個你喜歡的發(fā)行版
你需要做的操作就是su
輸入密碼
執(zhí)行apt update & apt install qemu -y
如果你沒有換軟件源,或者是您不懂如何換軟件源,請參考我的《userland手機免root運行ubuntu教程》
apt install 一系列的命令執(zhí)行完以后,您將會安裝一個qemu2.11.1(這里以ubuntu18.04為例)不同的發(fā)行版安裝的版本不同
安裝完畢后您首先要確認它是否安裝到位
輸入以下命令來驗證:
qemu-system-i386 --version
以上驗證通過以后,那么恭喜你,你成功的安裝了QEMU


QEMU基礎命令行2
這里涉及到一個知識點-文件概念
什么是文件概念呢,就是你必須對系統(tǒng)內置存儲文件目錄有一定的了解,光靠手機上的文件管理器是不行的(大部分無法解壓7z,更不用說我們后面要講的tar.gz格式了)
首先,想要使用QEMU運行一個操作系統(tǒng),需要一個合適的鏡像,鏡像是文件系統(tǒng)存儲的一種形式,我們把系統(tǒng)封存在鏡像里面,然后使用QEMU掛在運行,鏡像起到一個系統(tǒng)盤的作用,QEMU最常見的鏡像格式是qcow,qcow2,img等等,像電腦上的vmware虛擬機,也是采用鏡像的方式,他的常見格式是vmdk,還有vbox虛擬機,他的常見格式是vdi, 這里推薦盡量使用qcow2作為主流格式
選好一個要運行的鏡像,你需要知道你的鏡像位置以及路徑,一般的安卓內置存儲都是在/sdcard路徑下面,可能會有特殊的設備不同,這里強烈建議安裝一個ES文件瀏覽器por,我們需要搞清楚我們的鏡像文件的路徑,并且記住他
進入ES文件瀏覽器,他的頂上會顯示你當前內置存儲路徑


圖片上的是一般內置存儲的路徑,如果是使用linux deploy可以再/屬性/允許掛載android上的資源/然后添加掛載點,輸入以下路徑即可
如果是使用userland或Utermux那就方便一點,里面部署完成linux應該會自動給你掛載上安卓的內置存儲,你只需要在跟目錄找一找,使用cd命令進入某個目錄,然后輸ls直到里面的目錄名稱和es文件瀏覽器內的目錄文件夾名稱一樣即可
接下來是部署命令,找到你要運行的鏡像,一般鏡像的作者都會說明鏡像的配置信息,比如網絡聲音顯卡CPU等等,由于本教程是新手教程,我們先從簡單的命令行配置開始
QEMU分為系統(tǒng)模式(qemu-system)和用戶模式(qemu-user)
系統(tǒng)模式是指模擬一個操作系統(tǒng)(包括完整的主板以及硬件)
用戶模式是指運行一個應用程序(例如wine就是依賴這個來運行)
我們需要模擬一個操作系統(tǒng),當然是要啟用它的系統(tǒng)模式
我們就模擬常見的X86架構的windows
想要模擬x86我們需要第1個核心部分的命令:
qemu-system-i386
注釋:i386代表的是x86硬件平臺架構,x64則代表x86_64
這條命令的大概意思呢是這樣的:
QEMU進入系統(tǒng)模式!現在命令你立刻模擬x86架構的硬件
命令行第1步,就是先輸寫這個命令,你需要告訴QEMU你要模擬的架構是什么
第2步,你需要告訴QEMU你的鏡像在哪里?
那么具體怎么告訴呢? 你需要把鏡像以磁盤的方式掛載給QEMU
假設我的內置存儲在linux下的路徑就是/sdcard,鏡像名稱叫做win7mini格式是qcow2那么接下來
我們接著第1步面臨的后面來書寫
qemu-system-i386 -hda /sdcard/win7mini.qcow2
這條命令的意思是:將路徑為/sdcard/下的win7mini.qcow2掛載為磁盤A
注意事項:QEMU對命令行的表達方式極為嚴格,在輸入每一條命令時必須用空格隔開,然后在第2條命令開頭加上“-”這樣才是正確的表達式,如果都糊在一塊那么QEMU將會翻臉不認人
舉例:[命令一](空格)-[命令二]
就類似于我們上面的命令:qemu-system-i386就代表命令一,我們需要再在后面加上空格和一個"-"號 命令二代表的是hda /sdcard/win7mini.qcow2
我們現在已經告訴了QEMU我們需要運行的架構,以及鏡像位置,接下來是需要告訴他,我們的運行內存應該設定多少,就相當于電腦上的內存條中的內存(檢稱ram)
這一步很簡單,只需要加上參數 -m xxxxM 我們在接著之前的命令,繼續(xù)往下寫
qemu-system-i386 -hda /sdcard/win7mini.qcow2 -m 800M
這條命的意思是:分配800MB給虛擬機用來作為啟動系統(tǒng)的ram
給多少內存要根據你的手機ram進行酌情分配,建議不要給太多,否則會造成殺后臺
注意符號空格及大小寫!!!
[命令一](空格)-[命令二](空格)-[命令三]
提示:-m后面還有一個空格,必須要先把這個空格給出后才可以寫數據,單位:G或M
錯誤示范:xxx -m1024M
正確示例:xxx -m 1024M
告訴他內存信息硬盤以及架構后,我們需要給他設定一個圖形輸出,因為我們是在命令行界面,命令行界面是無法進行圖形輸出的,因此我們需要設定一個輸出的方式以及端口,這里推薦使用VNC,虛擬機的連接方式有三種,具體可以查看我之前的視頻《安卓手機虛擬機APQ使用詳細教程》,里面分了很多P,其中有一個是專門講連接方式的特點的,我們使用最簡單的vnc連接,我們需要加上一條命令: -vnc :0
這條命的意思是:使用vnc進行圖像輸出,端口視為本地ip的0號端口(既本地回環(huán)端口127.0.0.1:0)當然并不限定于0,如果0號端口被占用,將會導致虛擬機啟動失敗,因此你可以把它隨便設定一個你喜歡的數值
你可以設定不同的數值,如果設定為2,那么對應的地址就應改為127.0.0.1:2如果是3,那應該改成127.0.0.1:3以此類推
127.0.0.1:(設立的端口值)
承接上面的命令,那么接下來命令應該是這樣
qemu-system-i386 -hda /sdcard/win7mini.qcow2 -m 800M -vnc :0
這條命令總結起來的大概意思是:QEMU使用系統(tǒng)模式,模擬x86指令集及硬件,磁盤A為/sdcard路徑下的win7mini.qcow2文件,分配的運行內存為800MB給虛擬機,使用vnc作為圖像輸出,端口為0
然后你需要安裝一個vnc viewer軟件,新建一個地址為127.0.0.1的連接
如果成功,那么終端將會陷入忙碌狀態(tài),這時候進入vnc viewer軟件進入那個127.0.0.1地址連接將會彈出一個紅色的界面,這時候你只需要點擊紅色界面上面的ok就可以進入虛擬機界面了,那么到此簡單配置這一步就結束了,接下來將會介紹,網絡聲音顯卡硬件的使用
QEMU基礎命令行3
之前的配置中,我們已經學會了基本配置QEMU命令行,是不是很簡單呢?
現在我們要逐漸走向復雜化,之前的啟動命令稱為最簡啟動命令,是沒有網絡和聲音的,甚至連顯卡都沒有,分辨率只能定在一定的范圍,不能適應屏幕
在下列教程中,我們要學習網絡聲音以及一系列附加選項的應用
我們先把之前列出的命令拿出來qemu-system-i386 -hda /sdcard/win7mini.qcow2 -m 800M -vnc :0
為了工整暫且先去掉vnc選項
qemu-system-i386 -hda /sdcard/win7mini.qcow2 -m 800M
現在我們要先添加網絡,讓整個虛擬機內有網絡支持
QEMU上網方式分為兩種,一種是user,還有一種是TAP,TAP連接方式需要設備有root權限,所以這里使用user(用戶模式連接網絡,ip地址一般為10.0.2.2)
那么想要上網,就必須添加一塊網卡給QEMU,并且應用到操作系統(tǒng)中
需要添加一下指令:-net user -net nic,model=rtl8139
這里的rtl8139并不是絕對只能模擬這一種型號網卡,你還可以把它換成e1000等其他不同型號網卡
那么整體的命令將為以下所示
qemu-system-i386 -hda /sdcard/win7mini.qcow2 -m 800M -net user -net nic,model=rtl8139
這里的空格很夸張,但是不要緊,他只有一個空格,夸張的原因是想讓大家不要少了空格
這條命要大概意思是:啟用網絡連接,模擬網卡型號為rtl8139 使用user用戶模式連接
有了網絡,接下來就是聲音了,但是呢vnc并不支持聲音,所以這個選項可有可無,如果你是強迫癥患者的話,你可以加上聲音的命令
需要添加的命令為:-soundhw ac97 (這里的ac97指的是聲卡型號,并不只有這一種聲卡,還有其他的,例如es1370)
那么整體命令將變更為qemu-system-i386 -hda /sdcard/win7mini.qcow2 -m 800M -net user -net nic,model=rtl8139 -soundhw ac97
這條命令的大概意思是:啟用聲音服務,模擬聲卡型號為ac97(但是這個型號在vista以上的系統(tǒng)都不會自動安裝驅動,需要自己手動安裝)
現在有了聲音,有了網絡,接下來就是顯卡了,顯卡可以讓你擁有更高的分辨率,讓你在虛擬機里體驗更舒適,你可以根據你自己手機的屏幕來調整分辨率
需要添加命令:-vga vmware(個人喜歡這個顯卡,因為他支持的分辨率多,聽說有15MB的顯存)你還可以模擬cirrus顯卡,根據個人喜好吧,不過現在只是基礎教程,后面會給出這些硬件的部分型號
命令行將變更為:
qemu-system-i386 -hda /sdcard/win7mini.qcow2 -m 800M -net user -net nic,model=rtl8139 -soundhw ac97 -vga vmware
這條命令的大概意思是:啟用顯卡,顯卡設定為vmware
切記每一步都不要忘記加上空格以及標點!!
然后再把之前省略掉的vnc選項補上就完整了
指定需要模擬的cpu
QEMU可以模擬很多型號的cpu,這些主要是根據你模擬的系統(tǒng)來決定的,這個命令很簡單,你只需要加上參數 -cpu(你需要模擬的型號)即可
這里推薦一個cpu : Opteron_G5
那么命令就是-cpu Opteron_G5
總命令將變更為
qemu-system-i386 -hda /sdcard/win7mini.qcow2 -m 800M -net user -net nic,model=rtl8139 -soundhw ac97 -vga vmware -cpu Opteron_G5
這條命令就是說,模擬的cpu型號為Opteron_G5
好了,現在我們的虛擬機已經擁有網絡聲音以及顯卡了,可以去實踐實踐,看看有哪一步做錯了,或者不懂的,可以在評論區(qū)討論
QEMU基礎命令4
之前我們已經能夠完整的模擬一個擁有網絡聲音顯卡的操作系統(tǒng),但是這還完全不夠,因為QEMU功能不僅僅只有這么一點點,他還有許多的強大功能
QEMU可以掛載cdrom以便啟動光盤iso鏡像(例如winpe,各種操作系統(tǒng)的安裝盤等)
這條命令很簡單,只需要在總命令上面加上 -cdrom /sdcard/(這里應該寫你的光盤鏡像路徑)假設我有一塊光盤,路徑為/sdcard,名稱為12345,格式為iso
那么我之前的總命令應該變更為
qemu-system-i386 -hda /sdcard/win7mini.qcow2 -m 800M -net user -net nic,model=rtl8139 -soundhw ac97 -vga vmware -cpu Opteron_G5 -cdrom /sdcard/12345.iso
這條命令大概意思是:掛載一個cd光盤鏡像到虛擬機,一般可以直接在操作系統(tǒng)內訪問光驅內文件
但是,假如我這個光驅是winpe,并且硬盤內有操作系統(tǒng),我需要把虛擬機從光盤啟動,這樣應該怎么做呢?
很簡單,你需要給虛擬機定義一個啟動項
命令如下: -boot d
注釋:
?-boot d 指的是從光盤啟動
?-boot c 指的是從硬盤啟動
?-boot a 指的是從軟盤A啟動
?-boot b 指的是從軟盤B啟動
?-boot n 指的是從網絡啟動
這條命令的大概意思是 從光盤啟動
那么命令變更成這樣就可以從光驅啟動了
qemu-system-i386 -hda /sdcard/win7mini.qcow2 -m 800M -net user -net nic,model=rtl8139 -soundhw ac97 -vga vmware -cpu Opteron_G5 -cdrom /sdcard/12345.iso -boot d
當然,光驅不僅僅可以啟動操作系統(tǒng),也可以作為系統(tǒng)安裝,傳輸文件等途徑
最后別忘了!補上vnc參數才可以正常運行哦
好了,經過這些學習,我們配置的虛擬機幾乎是一個比較完整的虛擬機了,下一講我們將研究qemu-img
QEMU基礎命令5
現在我們已經學會如何配置及使用虛擬機,但是僅僅學習這些是完全不夠的,我們還必須深入的了解
這一講主要是針對鏡像及轉換,這里設及的知識點為qemu-img的使用
qemu-img 這個是專門管理QEMU系統(tǒng)鏡像的一個組件
可以通過它進行系統(tǒng)的鏡像轉換,生成,以及擴容
首先我們要會使用qemu-img功能生成一個空鏡像(用來裝系統(tǒng)或者是分區(qū)給主系統(tǒng)使用)
假設我要生成一個格式為qcow2,名稱為beta,路徑為/sdcard,大小為1g的鏡像用來裝系統(tǒng),我應該怎么做呢?
我們要用到的命令是qemu-img create -f qcow2 /sdcard/beta.qcow2 1G
注釋:create -f 后面跟的是鏡像的后綴名格式
格式后面跟的是生成的路徑
生成的路徑后面跟的是生成鏡像的大小
不要忘了空格和標點符號
例題:我要生成一個大小為60G格式為qcow2名稱為www路徑為/sdcard/bfg/ddf的鏡像用來裝系統(tǒng),請問應該如何使用qemu-img命令進行生成呢?
解:依據題意可知將使用qemu-img create -f 命令進行生成,又可知格式為qcow2,大小為60G,名稱為www,路徑為/sdcard/bfg/ddf
將使用以下命令:qemu-img create -f qcow2 /sdcard/bfg/ddf www.qcow2 60G
進行生成,完畢!
根據以上例題,你只要掌握,那么就應該不難了
接下來是轉換鏡像的格式
如果一個格式為qcow2的鏡像,我想在lbochs這個虛擬機上面使用,但是很巧的是lbochs并不支持qcow2這個格式,那我總不可能用文件管理器直接改后綴名吧,這時候就需要用到qemu-img鏡像轉換的功能了
假設我有一塊名稱為mmp,格式為qcow2路徑為/sdcard的鏡像
現在我想把它轉換成img格式,并且從命名為Output.img,我應該怎么做呢?
命令如下
qemu-img convert -O raw qcow2 /sdcard/mmp.qcow2
/sdcard/Output.img
注釋:convert -O 后面跟著想要轉換的格式,格式后面填寫未轉換鏡像的路徑,未轉換鏡像的路徑后面填寫轉換完畢后新的鏡像路徑 注意,不要忘記空格和符號
(raw既代表img,如果要轉換成vmdk,則把raw改成vmdk既可)
接下來是鏡像擴容
在我們使用QEMU運行操作系統(tǒng)的時候,往往會發(fā)生一些虛擬系統(tǒng)內部的磁盤空間不足,因為有可能是最初始設定的值小了,導致后面不夠用,這時候我們就需要使用qemu-img功能進行擴容
假設我有一塊名稱為mp,格式為qcow2,路徑為/sdcard的鏡像,但是現在他內部的虛擬磁盤空間不夠用了,我想給他增加一G的空間,應該怎么做呢?
指令如下:
qemu-img resize /sdcard/mp.qcow2 +1G
Image resized
注釋:resize后面跟著鏡像的路徑 +號應該填寫增加的大小
好了qemu-img 這三大基本功能,如果你能夠了解并且掌握它,那么就說明你是一個很棒,很聰明,有才干的人,加油!
QEMU基礎命令6
我們已經學會了如何使用QEMU運行一個我們已經學會了如何運行一個完整硬件的操作系統(tǒng),并且對其進行鏡像管理,接下來我們要學習虛擬機的加速,相信現在運行虛擬機的你會感覺到非常的卡頓吧,這里暫且用幾個方法,能夠緩解一部分的卡頓
首先,我們要講的是TCG加速
TCG,可以在異架構模擬中起到少量加速作用
如果要啟用他,那么命令后面應該加上
--accel tcg,thread=multi -smp 2,cores=2,threads=1,sockets=1
那么這樣子總體命令就應該變成
qemu-system-i386 -hda /sdcard/win7mini.qcow2 -m 800M -net user -net nic,model=rtl8139 -soundhw ac97 -vga vmware -cpu Opteron_G5 -cdrom /sdcard/12345.iso -boot c --accel tcg,thread=multi -smp 2,cores=2,threads=1,sockets=1 -vnc :0
注釋:
smp 后面的參數是核心數
cores后面指的是核心
threads=后面的參數是線程數
sockets應該指的是插槽數
“開核盛世”(--accel tcg,thread=multi -smp 16,cores=2,threads=1,sockets=1)
其次是virtio-disk虛擬磁盤加速
這個教程也有不少,我最近幾天才錄了一個APQ的
我在本教程中再提一遍,首先你必須擁有virtio的驅動盤(去我那個教程視頻底下下載),將驅動盤使用cdrom掛載到虛擬機,然后生成一塊鏡像,格式為qcow2
然后使用以下命令,掛載到虛擬機
-drive file=/sdcard/你生成的鏡像,format=qcow2,if=virtio,id=drive-virtio-disk0
開機以后打開任務管理器,找到帶嘆號的SCIC設備/然后右鍵這個設備,選擇更新驅動程序,然后從掛載的那個cdrom之中尋找驅動程序等待安裝,安裝完成后關機,把上面命令中的你生成的鏡像替換為你hda的主鏡像,然后刪除hda掛載選項,然后完成
經計算可以減少48%的開機速度
QEMU基礎命令7
快照管理(選學,自行研究內容)
qemu-img snapshot -l 7.qcow2?
qemu-img snapshot -c snapshot 7.qcow2
qemu-img snapshot -l 7.qcow2?
qemu-img snapshot -a 1 7.qcow2
qemu-img snapshot -d snapshot 7.qcow2
注釋: -l 選項是查詢鏡像文件中的所有快照,-a snapshot是讓鏡像文件使用某個快照,-c snapshot是創(chuàng)建一個快照,-d是刪除一個快照
虛擬機引導
在我們運行的虛擬機中,如果使用之前的命令啟動,那么他默認使用BIOS進行引導,但是呢,對于一些必須使用UEFI的系統(tǒng)來說這樣就不能引導了,所以說我們要讓虛擬機可以使用UEFI進行引導
想要使用UEFI,就必須要擁有固件,沒有固件的也不要著急,我的視頻簡介會有
有了固件以后,我們需要添加一個自定義BIOS參數,讓虛擬機采用這個固件作為BIOS,假設我的固件在/sdcard,名稱為EFI,格式為fd
那么命令如下
-bios /sdcard/EFI.fd
這條命令的大概意思是:自定義BIOS,使用路徑為。
/sdcard下的EFI.fd文件
把這項命令加到之前的總啟動命令里
那么命令將變更為
qemu-system-i386 -hda /sdcard/win7mini.qcow2 -m 800M -net user -net nic,model=rtl8139 -soundhw ac97 -vga vmware -cpu Opteron_G5 -cdrom /sdcard/12345.iso -boot d --accel tcg,thread=multi -smp 2,cores=2,threads=1,sockets=1 -bios /sdcard/EFI.fd -vnc :0
注意:并不是所有系統(tǒng)都支持UEFI,當你使用這個固件,發(fā)現所要運行的操作系統(tǒng)無法引導時,你應該刪除這個選項
共享文件夾:
假設,我需要傳一個文件到虛擬機去,但是呢,總不能一直使用光驅,那我還可以怎么傳文件呢?
這里就要介紹共享文件夾了
首先,想要使用共享文件夾,就必須找一個安卓下的目錄,作為存放文件的地方,你可以生成一個文件夾,用來作為文件存放的目錄
假設我生成的文件夾叫disk,目錄在/sdcard/disk我需要把它里面的文件傳給虛擬機,那應該怎么做呢?
首先,我們要啟動第2塊硬盤的選項,之前的命令是,使用第1塊硬盤作為系統(tǒng)盤(既hda),所以現在我們需要啟動hdb作為共享文件盤
命令如下
-hdb fat:rw:/sdcard/disk
注釋:fat指的是使用fat作為掛載后的磁盤文件系統(tǒng)
rw表示掛載的磁盤只能讀,不可寫入,如果要讓他可
寫,可以去掉rw,但是這樣子就大大增加了虛擬機出錯的概率
警告:共享文件內的文件不可以超過512MB,否則無法啟動
那么總體命令將變更為
qemu-system-i386 -hda /sdcard/win7mini.qcow2 -m 800M -net user -net nic,model=rtl8139 -soundhw ac97 -vga vmware -cpu Opteron_G5 -cdrom /sdcard/12345.iso -boot d --accel tcg,thread=multi -smp 2,cores=2,threads=1,sockets=1 -hdb fat:rw:/sdcard/disk -vnc :0
usb設備
如果想改善vnc鼠標移動,你可以通過添加usb設備來達到目的
比如說我想讓鼠標跟著vnc的小黑點
那么命令為
-usb -device usb-mouse
-usb -device usb-tablet
把這兩條命令寫到剛才的總命令去
那么命令將變更為
qemu-system-i386 -hda /sdcard/win7mini.qcow2 -m 800M -net user -net nic,model=rtl8139 -soundhw ac97 -vga vmware -cpu Opteron_G5 -cdrom /sdcard/12345.iso -boot c --accel tcg,thread=multi -smp 2,cores=2,threads=1,sockets=1 -hdb fat:rw:/sdcard/disk -usb -device usb-tablet -usb -device usb-mouse -vnc :0

好了,到這里,我們的QEMU命令行基礎教程就完畢了,試試看,自己使用一條命令去啟動虛擬機吧
TCG下的win7依然強悍!



接下來出幾道題目,答案寫在評論區(qū),記得標明題目的序號
1.我要裝一個xp系統(tǒng),我從msdn下載了一個安裝盤,上面寫的是i386 位置是在/sdcard/xp.iso,我需要讓他支持網絡聲音以及顯卡,網絡需要的是rtl8139聲音需要的是ac97顯卡需要的是vmware,并且我需要讓鼠標跟著vnc小黑點后面,還要起用TCG加速,格式的話我需要qcow2我需要讓他生成的目錄在 /sdcard/disk下,虛擬磁盤大小為20G,名稱為xp請問應該如何配置?
2.我有一個別人制作的win10 x64,但是他說明了只能通過EFI進行引導,并且規(guī)定了網絡聲音以及顯卡,分別對應的型號是rtl8139,es1370,vmware,cpu對應的型號是Opteron_G5我從壓縮包里獲取了UEFI的固件和鏡像,他們分別位于/sdcard/10.qcow2和/sdcard/efi.fd 由于我需要更好的速度,因此我需要TCG我還要模擬八核,并且我還想使用virtio-disk來加速磁盤的讀寫,請問應該如何配置呢?
3.我有一塊名稱叫做virtual格式為qcow2路徑為/sdcard/disk的鏡像,現在我想把它放到lbochs上面去運行,但是呢lbochs并不支持這個格式,所以我需要把它轉換成img,并且輸出的目錄為/sdcard,我需要怎么做呢? 當我做完這些后,我發(fā)現鏡像內部的虛擬磁盤不夠用,所以說我需要擴容20G,需要怎么做呢?
4.*我運行了一個win7操作系統(tǒng),已經進入了桌面,但是我想把他的狀態(tài)保存為一個快照,我應該怎么做呢? 后面由于發(fā)生了意外,這里面的系統(tǒng)崩潰了,我需要把它還原為上一個快照,那我又應該怎么做呢?(快照名稱為snapshot,鏡像名稱為7.qcow2)
ps:滿分為100,每題25分
參考答案:
1.解依據題意可知是裝系統(tǒng),第1步需要使用命令生成一個鏡像
由于限定了生成目錄為/sdcard/disk,他還規(guī)定了名稱,名稱為xp大小為20G
所以說第1步要輸入的命令為
qemu-img create -f qcow2 /sdcard/disk/xp.qcow2 20G
第2步要確定他的硬件及配置
網卡:rtl8139 ? ? ? ? - ? ? -net user -net nic,model=rtl8139
聲卡:ac97 ? ? ? ? ? - ? ? -soundhw ac97
顯卡vmware ? ? ? ?- ? ? -vga vmware
TCG加速 ? ?--accel tcg,thread=multi -smp 2,cores=2,threads=1,sockets=1
鼠標性能改善 ? ? ? -usb -device usb-mouse ? -usb -device usb-tablet
cdrom位置為/sdcard/xp.iso
生成的鏡像路徑為/sdcard/disk/xp.qcow2
由于并未說明模擬的核心數,根據系統(tǒng)為xp,默認使用雙核
由于第1次裝系統(tǒng),所以說必須從光盤啟動。
因此可以確定
-boot的值為d
因此可以列出以下命令:
qemu-system-i386 -boot d -hda /sdcard/disk/xp.qcow2 -cdrom /sdcard/xp.iso -vga vmware -soundhw ac97 -net user -net nic,model=rtl8139 --accel tcg,thread=multi -smp 2,cores=2,threads=1,sockets=1 -usb -device usb-tablet -usb -device usb-mouse -vnc :0
等待系統(tǒng)安裝完會自動引導到硬盤,第2次啟動就可以把-boot d改為-boot c
END
2.省略(不要光想著抄答案哦,嘗試照著我第1題的方式做一做)
3.省略
4.省略