在Proxmox VE上運行OpenWrt/LEDE虛擬機——導入OW/LEDE固件文件到虛擬機中


PVE的OW/LEDE虛擬機初始化創建完成后,需要將編譯好的固件文件上傳到PVE主機上,然后轉換為更適合KVM使用的磁盤映像格式並導入到OW/LEDE虛擬機中,這樣就可以更好地使用基於KVM的OW/LEDE系統了。主要過程說明如下:

1) 上傳固件文件到PVE主機

PVE默認已開啟SSH服務,故可以通過SCP方式來上傳,除了CLI方式外還可以使用圖形化的工具,如支持scp傳輸的mobaXterm、winscp及FileZilla等。

將編譯好的OW/LEDE固件上傳到PVE主機的指定目錄下,建議給固件設置一個專用的目錄,在本文中將以目錄/var/lib/vz/openwrt為例。

編譯出來的固件文件的擴展名通常為img或img.gz,在本文中將以固件文件everun-v0.1.5.3-b170925-161934-lede-SNAPSHOT-r4907-31e9445-x86-kvm-combined-ext4.img.gz為例。

總之,在此步中選擇最適合自己的傳輸方式將固件文件上傳到PVE主機內的指定目錄下。

2) 轉換固件文件的磁盤映像格式

此過程的大部分工作需要登錄到PVE的shell下通過CLI方式來完成,可以根據個人習慣來選擇支持SSH連接的相應終端工具,如Xshell、mobaXterm、SecureCRT等,若不嫌棄的話也可以直接使用PVE的WebUI中的shell。

(1) 解壓縮固件文件

若已經是img的格式,則可以省略此步驟。

進入到l固件文件所在的目錄並解壓:

cd /var/lib/vz/openwrt/
gunzip everun-v0.1.5.3-b170925-161934-lede-SNAPSHOT-r4907-31e9445-x86-kvm-combined-ext4.img.gz

其中,gunzip是解壓縮工具,后面為要解壓的文件名稱。

(2) 轉換磁盤映像格式為qcom2

這個步驟是可選的,目的是將OW/LEDE固件原來的raw格式轉換為kvm下存儲效率更高的qcow2格式。qcow2格式是QEMU支持的一種主流磁盤映像格式,與raw格式相比,qcow2具有存儲空間占用小、支持寫時拷貝(COW, copy-on-write)、支持zlib壓縮及支持AES加密等特性。

當然,對於OW/LEDE系統來說,不轉換qcow2格式也是可以的,只需直接跳到后面的步驟“3)”就能導入到OW/LEDE虛擬機中,這時參數<source>為固件的文件名。而使用支持精簡配置(Thin Provisioning)的qcow2格式來取代raw格式則可以有效地降低磁盤映像所占用的空間。

將固件文件轉換為qcow2格式的虛擬機磁盤映像,通過命令“qemu-img convert”來實現,qemu-img是QEMU的磁盤管理工具,用來轉換磁盤文件系統所需的格式,后面要加上所需的命令和參數,具體的格式如下:

qemu-img convert -f raw -O qcow2 <firmware_name> <output_diskname>

下面是一個具體的實例:

qemu-img convert -f raw -O qcow2 everun-v0.1.5.3-b170925-161934-lede-SNAPSHOT-r4907-31e9445-x86-kvm-combined-ext4.img vm-201-disk-1.qcow2

其中,固件文件為“everun-v0.1.5.3-b170925-161934-lede-SNAPSHOT-r4907-31e9445-x86-kvm-combined-ext4.img”,輸出的磁盤映像文件為“vm-201-disk-1.qcow2”,其格式為qcow2。使用vm-201-disk-1.qcow2作為輸出文件名稱是為了清晰表明它是為ID為201的VM所使用的格式為qcow2的第1個磁盤文件。

在轉換完成后,可以用qemu-img check命令來檢查結果是否正常,其命令格式為:

qemu-img check vm-201-disk-1.qcow2

正常的會出現“No errors”的提示結果,如:

No errors were found on the image.
703/4360 = 16.12% allocated, 0.00% fragmented, 0.00% compressed clusters
Image end offset: 46399488

此外,還可以用qemu-img info命令獲取更詳細的信息,其命令為:

qemu-img info vm-201-disk-1.qcow2

正常會輸出詳細的信息,如:

image: vm-201-disk-1.qcow2
file format: qcow2
virtual size: 273M (285736960 bytes)
disk size: 44M
cluster_size: 65536
Format specific information:
 compat: 1.1
 lazy refcounts: false
 refcount bits: 16
 corrupt: false

3) 導入磁盤系統到OW/LEDE虛擬機中

在固件文件轉換為VM的磁盤映像文件后就可以將其導入到虛擬機中來使用了,其過程如下:

(1) 導入磁盤映像到VM的存儲中

此步驟也需要在shell下通過CLI方式來完成。通過命令“qm importdisk”來實現,qm是QEMU/KVM虛擬機的管理工具,可以將指定的磁盤映像導入到指定的虛擬機的存儲中,后面要加所需的命令和參數,具體的格式如下:

qm importdisk <vmid> <source> <storage>

下面是一個具體的實例:

qm importdisk 201 vm-201-disk-1.qcow2 local-lvm

其中,VM的ID為201,磁盤文件為“vm-201-disk-1.qcow2”,存儲為“local-lvm”。

命令執行后會輸出下面的信息,顯示磁盤卷已成功創建到VM中。

 Using default stripesize 64.00 KiB.
 Rounding up size to full physical extent 276.00 MiB
 For thin pool auto extension activation/thin_pool_autoextend_threshold should be below 100.
 Logical volume "vm-201-disk-1" created.

這個過程中會創建一個磁盤設備,並將其加入到VM的硬件中成為“未使用的磁盤”。這時在/dev/pve里面可以看到新建立的磁盤設備與VM之間的對應關系。

(2) 將導入的磁盤添加到VM中

登錄到WebUI下,在左側欄中選擇OW/LEDE虛擬機(ID為“201”),然后在右側欄中選擇“硬件”,這時會發現在列表的最下面出現一個“未使用的磁盤 0”,用鼠標點擊選上后再點擊上面的“編輯”,會出現“添加:未使用的磁盤”對話框,點擊下面的“添加”即可將導入的磁盤添加到VM中,這時在“硬件”中會新出現新添加的硬盤——“local-lvm:vm-201-disk-1”,如下圖所示。

pve-import-disk

至此,PVE下的OW/LEDE虛擬機已創建完畢,點擊“啟動”即可開始享用飛快的KVM虛擬機了。

當然,如果嫌這個過程的命令很多,操作起來有些麻煩,也可以試試img2kvm,這里是其使用說明,它可以直接完成從“2)”到“3)(1)”的過程,而且在這個過程中會看到每個步驟的輸出信息,簡單快捷地將OW/LEDE固件文件轉換為VM可使用的磁盤。


免責聲明!

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



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