qemu-img命令怎么用

這篇文章將為大家詳細講解有關(guān) qemu-img命令怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

目前創(chuàng)新互聯(lián)已為上1000+的企業(yè)提供了網(wǎng)站建設、域名、虛擬主機、網(wǎng)站托管、服務器租用、企業(yè)網(wǎng)站設計、廣信網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

qemu-img是QEMU的磁盤管理工具,在qemu-kvm源碼編譯后就會默認編譯好qemu-img這個二進制文件。qemu-img也是QEMU/KVM使用過程中一個比較重要的工具,本節(jié)對其用法和實踐使用方法進行介紹。

qemu-img工具的命令行基本用法如下:

qemu-img command [command options]

它支持的命令分為如下幾種:

(1)check [-f fmtfilename

對磁盤鏡像文件進行一致性檢查,查找鏡像文件中的錯誤,目前僅支持對“qcow2”、“qed”、“vdi”格式文件的檢查。其中,qcow2是QEMU 0.8.3版本引入的鏡像文件格式,也是目前使用最廣泛的格式。qed(QEMU enhanced disk)是從QEMU 0.14版開始加入的增強磁盤文件格式,為了避免qcow2格式的一些缺點,也為了提高性能,不過目前還不夠成熟。而vdi(Virtual Disk Image)是Oracle的VirtualBox虛擬機中的存儲格式。參數(shù)-f fmt是指定文件的格式,如果不指定格式qemu-img會自動檢測,filename是磁盤鏡像文件的名稱(包括路徑)。

如下命令行演示了qemu-img的check命令的使用方法。

[root@jay-linux kvm_demo]# qemu-img check rhel6u3.qcow2

No errors were found on the image.

(2)create [-f fmt] [-o optionsfilename [size]

創(chuàng)建一個格式為fmt大小為size文件名為filename的鏡像文件。根據(jù)文件格式fmt的不同,還可以添加一個或多個選項(options)來附加對該文件的各種功能設置,可以使用“-o ?”來查詢某種格式文件支持那些選項,在“-o”選項中各個選項用逗號來分隔。

如果“-o”選項中使用了backing_file這個選項來指定其后端鏡像文件,那么這個創(chuàng)建的鏡像文件僅記錄與后端鏡像文件的差異部分。后端鏡像文件不會被修改,除非在QEMU monitor中使用“commit”命令或者使用“qemu-img commit”命令去手動提交這些改動。這種情況下,size參數(shù)不是必須需的,其值默認為后端鏡像文件的大小。另外,直接使用“-b backfile”參數(shù)也與“-o backing_file=backfile”效果相同。

size選項用于指定鏡像文件的大小,其默認單位是字節(jié)(bytes),也可以支持k(?%x8?K)、M、G、T來分別表示KB、MB、GB、TB大小。另外,鏡像文件的大?。╯ize% F???%9 并非必須寫在命令的最后,它也可以被寫在“-o”選項中作為其中一個選項。

對c2eate命令的演示如下所示,其中包?eAC查詢qcow2格式支持的選項、創(chuàng)建有backing_file的qcow2格式的鏡像文件、創(chuàng)?%B 沒?e89backing_file的10GB大小的qcow2格式的鏡像文件。

[root@jay-linux kvm_demo]# qemu-img create -f qcow2 -o ? temp.qcow

Supported options:

size             Virtual disk size

compat           Compatibility level (0.10 or 1.1)

backing_file     File name of a base image

backing_fmt      Image format of the base image

encryption       Encrypt the image

cluster_size     qcow2 cluster size

preallocation    Preallocation mode (allowed values: off, metadata)

[root@jay-linux kvm_demo]# qemu-img create -f qcow2 -b rhel6u3.img  r(el6u3.qcow2

Formatting ‘rhel6u3.qcow2′, fmt=qcow2 size=8589934592 backing_file=’rhel6u3.img’ encryption=off cluster_size=6u536

[root@jay-linux kvm_demo]# qemu-img create -f qcow2 -o backing_file=rhel6u3.img  rhel6u3-1.qcow2

Formatting ‘rhel6u3-1.qcow2′, fmt=qcow2 size=8589934592 backing_file=’rhel6u3.img’ encryption=off cluster_size=65536

[root@jay-linux kvm_demo]# qemu-img create -f qcow2 -o backing_file=rhel6u3.img,size=20G  rhel6u3-2.qcow2

Formatting ‘rhel6u3-2.qcow2′, fmt=qcow2 size=21474836480 backing_file=’rhel6u3.img’ encryption=off cluster_size=65536

[root@jay-linux kvm_demo]# qemu-img create -f qcow2 ubuntu.qcow2 10G

Formatting ‘ubuntu.qcow2′, fmt=qcow2 size=10737418240 encryption=off cluster_size=65536

(3)commit [-f fmtfilename

提交filename文件中的更改到后端支持鏡像文件(創(chuàng)建時通過backing_file指定的)中去。

(4)convert [-c] [-f fmt] [-O output_fmt] [-o optionsfilenam% [filename2 [...]] output_filename

fmt格式的filename鏡像文件根據(jù)options選項轉(zhuǎn)換為格式為output_fmt的名為output_filename的鏡像文件。它支持不同格式的鏡像文件之間的轉(zhuǎn)換,比如可以用VMware用的vmdk格式文件轉(zhuǎn)換為qcow2文件,這對從其他虛擬化方案轉(zhuǎn)移到KVM上的用戶非常有用。一般來說,輸入文件格式fmt由qemu-img工具自動檢測到,而輸出文件格式output_fmt根據(jù)自己需要來指定,默認會被轉(zhuǎn)換為與raw文件格式(且默認使用稀疏文件的方式存儲以節(jié)省存儲空間)。

其中,“-c”參數(shù)是對輸出的鏡像文件進行壓縮,不過只有qcow2和qcow格式的鏡像文件才支持壓縮,而且這種壓縮是只讀的,如果壓縮的扇區(qū)被重寫,則會被重寫為未壓縮的數(shù)據(jù)。同樣可以使用“-o options”來指定各種選項,如:后端鏡像、文件大小、是否加密等等。使用backing_file選項來指定后端鏡像,讓生成的文件是copy-on-write的增量文件,這時必須讓轉(zhuǎn)換命令中指定的后端鏡像與輸入文件的后端鏡像的內(nèi)容是相同的,盡管它們各自后端鏡像的目錄、格式可能不同。

如果使用qcow2、qcow、cow等作為輸出文件格式來轉(zhuǎn)換raw格式的鏡像文件(非稀疏文件格式),鏡像轉(zhuǎn)換還可以起到將鏡像文件轉(zhuǎn)化為更小的鏡像,因為它可以將空的扇區(qū)刪除使之在生成的輸出文件中并不存在。

下面的命令行演示了兩個轉(zhuǎn)換:將VMware的vmdk格式鏡像轉(zhuǎn)換為KVM可以使用的qcow2鏡像,將一個raw鏡像文件轉(zhuǎn)化為qcow2格式的鏡像。

[root@jay-linux kvm_demo]# qemu-img convert my-vmware.vmdk my-kvm.img

(此處并無實際存在vmdk文件,僅演示其命令行操作)

[root@jay-linux kvm_demo]# qemu-img convert -O qcow2 rhel6u3.img rhel6u3-a.img

(5)info [-f fmtfilename

展示filename鏡像文件的信息。如果文件是使用稀疏文件的存儲方式,也會顯示出它的本來分配的大小以及實際已占用的磁盤空間大小。如果文件中存放有客戶機快照,快照的信息也會被顯示出來。下面的命令行演示了前面進行文件轉(zhuǎn)換的輸入、輸出文件的信息。

[root@jay-linux kvm_demo]# qemu-img info rhel6u3.img

image: rhel6u3.img

file format: raw

virtual size: 8.0G (8589934592 bytes)

disk size: 8.0G

[root@jay-linux kvm_demo]# qemu-img info rhel6u3-a.img

image: rhel6u3-a.img

file format: qcow2

virtual size: 8.0G (8589934592 bytes)

disk size: 6.8G

cluster_size: 65536

(6)snapshot [-l | -a snapshot | -c snapshot | -d snapshotfilename

“-l” 選項是查詢并列出鏡像文件中的所有快照,“-a snapshot”是讓鏡像文件使用某個快照,“-c snapshot”是創(chuàng)建一個快照,“-d”是刪除一個快照。

(7)rebase [-f fmt] [-t cache] [-p] [-u] -b backing_file [-F backing_fmtfilename

改變鏡像文件的后端鏡像文件,只有qcow2和qed格式支持rebase命令。使用“-b backing_file”中指定的文件作為后端鏡像,后端鏡像也被轉(zhuǎn)化為“-F backing_fmt”中指定的后端鏡像格式。

它可以工作于兩種模式之下,一種是安全模式(Safe Mode)也是默認的模式,qemu-img會去比較原來的后端鏡像與現(xiàn)在的后端鏡像的不同進行合理的處理;另一種是非安全模式(Unsafe Mode),是通過“-u”參數(shù)來指定的,這種模式主要用于將后端鏡像進行了重命名或者移動了位置之后對前端鏡像文件的修復處理,由用戶去保證后端鏡像的一致性。

(8)resize filename [+ | -]size

改變鏡像文件的大小,使其不同于創(chuàng)建之時的大小?!?”和“-”分別表示增加和減少鏡像文件的大小,而size也是支持K、M、G、T等單位的使用??s小鏡像的大小之前,需要在客戶機中保證里面的文件系統(tǒng)有空余空間,否則會數(shù)據(jù)丟失,另外,qcow2格式文件不支持縮小鏡像的操作。在增加了鏡像文件大小后,也需啟動客戶機到里面去應用“fdisk”、“parted”等分區(qū)工具進行相應的操作才能真正讓客戶機使用到增加后的鏡像空間。不過使用resize命令時需要小心(最好做好備份),如果失敗的話,可能會導致鏡像文件無法正常使用而造成數(shù)據(jù)丟失。

如下命令行演示了兩個鏡像的大小改變:將一個8GB的qcow2鏡像增加2GB的空間,也將一個8GB大小的raw鏡像減少1GB空間。

[root@jay-linux kvm_demo]# qemu-img resize rhel6u3-a.img +2G

Image resized.

[root@jay-linux kvm_demo]# qemu-img info rhel6u3-a.img

image: rhel6u3-a.img

file format: qcow2

virtual size: 10G (10737418240 bytes)

disk size: 6.8G

cluster_size: 65536

[root@jay-linux kvm_demo]# qemu-img resize rhel6u3-b.img -1G

Image resized.

[root@jay-linux kvm_demo]# qemu-img info rhel6u3-b.img

image: rhel6u3-b.img

file format: raw

virtual size: 7.0G (7516192768 bytes)

disk size: 6.5G

關(guān)于“ qemu-img命令怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

新聞標題:qemu-img命令怎么用
鏈接URL:http://muchs.cn/article46/ihiseg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設計公司、面包屑導航、品牌網(wǎng)站制作虛擬主機、網(wǎng)站建設、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)