使用qemu安裝虛擬機

使用虛擬機就和物理機一樣,第一步就是要裝機。

安裝一臺虛擬機

事前準備

就和我們要安裝物理機一樣,我們在安裝虛擬機之前也要做點事先的準備。要準備這麼幾樣東西。

  • 必要的系統檢查
  • 創建虛擬機的虛擬磁盤
  • 下載guest系統的iso鏡像

必要的系統檢查

檢查分爲兩種,硬件和軟件,軟件上又可以分爲內核模塊和應用程序。

  • 首先芯片上要支持kvm,比如x86的架構需要有vmx。這個在linux系統上通過命令“cat /proc/cpuinfo | grep vmx”來判斷。如果有這個標誌,說明芯片是支持的。

  • 然後看內核是否支持。通過命令“lsmod | grep kvm”。如果看到有兩個模塊kvm, kvm_intel,那麼表示當前的內核已經加載了這兩個模塊。如果沒有加載,請加載或者需要重新編譯內核。

  • 最後看有沒有qemu安裝。這個每個發行版的可執行文件的名字或許有差別,但基本都以qemu開頭。有的叫qemu-kvm, qemu-system-x86_64等,當然也有特別的就是叫kvm。具體在你的發行版上如何命名,可以使用包管理軟件搜索qemu來確認和安裝。

創建虛擬機的虛擬磁盤

這個就和我們裝物理機,要求物理機上有硬盤一樣。我們安裝的虛擬機也是要有虛擬磁盤的。

虛擬磁盤有多種形式和格式,這裏就不展開了。簡單來講,虛擬磁盤在host上就是一個文件。我們可以用以下命令創建一個虛擬磁盤。

qemu-img create -f raw fedora.img 30G

這樣就在當前目錄下創建了一個大小爲30G的虛擬磁盤文件fedora.img。這個虛擬磁盤的格式是raw的。關於格式,不在這裏介紹。有興趣的童鞋可以自行查閱資料。

下載guest系統的iso鏡像

你喜歡裝什麼系統就下什麼系統吧。和你主機一樣的也行,能裝就行。

比如說這裏有一個Fedora 25的iso文件,有興趣的話可以嘗試一下。

開始安裝

命令很簡單

qemu-kvm -m 4096 -smp 4 \
-hda fedora.img -cdrom Fedora.iso \
-boot dc

就這麼簡單,這一條命令就可以啓動虛擬機並進入安裝的界面了。

簡單介紹一下各個參數

-m 4096: 虛擬機內存是4096MB
-smp 4: 虛擬機有4個vcpu
-hda: 硬盤的文件
-cdrom: 光盤文件
-boot: 啓動順序,從光盤啓動

啓動後就能看到和真實物理機安裝一樣的界面。按照提示一步步往下走就好了。現在的發行版已經做得很人性化了。

啓動虛擬機

在我們玩高級貨之前,還是先來看看已經安裝好的虛擬機吧。

啓動也很簡單,一條命令。

qemu-kvm -m 4096 -smp 4 \
-hda fedora.img

就是把cdrom和啓動順序的參數去掉就可以了~

歡迎來到虛擬機的世界。

小進階 – 通過字符界面安裝虛擬機

有的時候我們沒有圖形界面,或者無法很好地使用圖形界面。比如我們在服務器上安裝虛擬機,有時候不安裝圖形界面的,或者網絡帶寬受到限制,使用圖形界面操作會讓你崩潰。

小編今天傾情奉獻獨家祕籍,告訴你如何通過字符界面安裝虛擬機。

備註: 該方法不一定適合所有發行版。下面的例子安裝的是rhel6.7。

掛載虛擬機iso

掛載iso是爲了找到其中的kernel和initrd。

sudo mount -o loop rhel-server-6.7-x86_64-dvd.iso tmp/

找到 啓動kernel 和 initrd

一般情況下啓動的kernel和initrd在光盤文件的isolinux目錄內。

比如在rhel6.7種,文件分別是

isolinux/vmlinuz
isolinux/initrd.img

路徑和名字若有變化,請自行探索。

開始安裝

好了,這就要開始安裝了哈。我使用的命令是:

sudo qemu-system-x86_64 --enable-kvm \
-m 4096 -smp 4 \
ubuntu.img \
-cdrom rhel-server-6.7-x86_64-dvd.iso \
--nographic \
-append console=ttyS0 \
-kernel tmp/isolinux/vmlinuz \
-initrd tmp/isolinux/initrd.img

前面和正常安裝的是一樣的,就是多了後面四個選項。

--nographic  不使用圖形界面
--append     啓動時傳給內核的參數
--kernel     使用哪個內核
--initrd     使用哪個initrd 

如果該發行版本可以通過字符安裝,那麼你就會看到字符的安裝界面。雖然和圖形界面相比醜了一點,但是用起來倒是一樣的。

再進一步–一鍵安裝

好了,懶人的天性要發揮一下。雖然現在的安裝界面已經很友好,步驟也很簡單了,但是如果能夠一鍵安裝,世界會是有多麼美好。你要知道裝機是件很無聊的事兒,有這時間不如忙裏偷閒喝杯咖啡。再說了,要是碰到要安裝N臺機器怎麼破?

嘿,其實這事兒早就有人做好了。這個東西叫做kickstart。

PS: kickstart主要用在RHEL和CentOS。其他發行版據說也有類似的功能,請童鞋自行探索。

使用kickstart的方式有幾種,我這裏提供一種把腳本放到iso文件的方式。

編寫kickstart腳本

kickstart其實就是一個事先寫好的腳本,按照特定的語法寫上了安裝過程中的信息,比如用戶名密碼,如何劃分硬盤,需要安裝的包以及安裝完成後的一些動作。功能挺強大,具體細節我也沒有仔細研究,這裏給出一個可以安裝的例子。

# This is an installation
install
# From cdrom
cdrom
lang en_US.UTF-8
keyboard us
# root password, plaintest
#rootpw --plaintext abc123
# root password encrypted
rootpw --iscrypted $6$27qsH/RZygFeKCF9$iDAZJsCnN7N
firewall --service=ssh
autoconfig --enableshadow --passalog=sha512 --enablefingerprint
selinux --enforcing
# power off after installation
poweroff
timezone --utc America/New_York
bootloader --location=mbr --driverorder=sda --append="console=ttyS0 crashkernel=auto"
# clear the disk
clearpart --all --drivers=sda --initlabel
autopart
zerombr
repo --name="Red Hat Enterprise Linux" --baseurl=file:///mnt/source --cost=100

%packages --nobase
@core

%end

整個腳本也還好,有些不是特別明白,但是基本的東西能看懂。有幾個點特別註釋一下:

  • poweroff 這個有幾個選項,reboot, halt。試了一下,只有在poweroff的時候安裝完qemu是退出的,其他的都會卡在那。不利於用腳本批量安裝虛擬機。
  • autopart 一定要加上,否則安裝過程中還是會提示你要怎麼分區,就比較蛋疼了

大家看了這個kickstart腳本估計還是會不知道要怎麼寫。告訴大家兩個可以借鑑別人例子的地方。

  • RHEL手動安裝完後會有一個腳本在/root目錄下,上面這個例子就是從這個文件拷貝出來的
  • RHEL帶有一個配置的軟件, system-config-kickstart。有些選項不知道怎麼寫,可以借鑑這個軟件的。

製作帶有kiskstart腳本的iso

這個步驟so easy

mkisofs -o ks.iso ks.cfg

這樣你就有了一個帶有kickstart腳本的iso。

腳本的文件名一定是ks.cfg
腳本的文件名一定是ks.cfg
腳本的文件名一定是ks.cfg

反正我改成這個名字才裝成功了。

傳說的一鍵安裝

好了,開始安裝吧。其實就是一條命令~

sudo qemu-system-x86_64 --enable-kvm \
-m 4096 -smp 4 \
ubuntu.img \
-drive file=rhel-server-6.7-x86_64-dvd.iso,media=cdrom,index=1 \
-drive file=ks.iso,media=cdrom,index=2 \
--nographic \
-append "console=ttyS0 ks=cdrom:/ks.cfg"\
-kernel tmp/isolinux/vmlinuz \
-initrd tmp/isolinux/initrd.img

是在沒啥可以說的,照着運行吧。從此以後就再也不怕虛擬機被整死了。

Hope you would enjoy it~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章