基於libvirt 和QEMU在macOS安裝Ubuntu

2020-09-04 蟲蟲安全



在流行的虛擬架構體系中,最重要的技術當然要數libvirt和QEMU了。包括Linux虛擬化技術中KVM和xen都使用了QEMU。關於Xen和KVM進行虛擬化,以及在Window下使用Vmware,VirtualBox和hyper-v構建虛擬機,可能大家都有過很多的嘗試。今天我們來探索一下在macOS的用libvirt和QEMU構建虛擬機的方法。

概述

首先我們概要介紹一下QEMU和libvirt。

QEMU

QEMU由Fabrice Bellard開發的的CPU開源模擬器,QEMU支持高性能擴平臺,可以虛擬出不同架構的虛擬機,如在x86平臺上可以虛擬出Solaris來。

libvirt

libvirt是當最常用的KVM虛擬機管理的開源工具和API。以Libvirtd為守護進程,可以被本地或者遠程調用,Libvirtd通過調用qemu-kvm操作虛擬機。libvirt由紅帽公司開發並用於KVM管理,也支持Xen等虛擬架構下的管理。libvirt旨在為各種虛擬機架構提供一套通用的編程接口,而且支持與Java,Python多種語言的綁定,所以湧現了一批基於基libvirt的虛擬機管理工具,比如virt-manager(GUI工具),virsh(命令行工具)。其架構示意圖如下:

MacOS下的虛擬方案

在MacOS支持收費的虛擬機方案,比如Parallels Desktop和VMWare Fusion,也有一個開源的VirtualBox。但是,VirtualBox不支持macOS的Hypervisor.Framework。

安裝libvirt和QEMU

首先,確保macOS安裝了,軟體包管理器homebrew。此後其他包都用它來安裝。

運行一下命令安裝qemu和libvirt:

brew install qemu gcc libvirt

如果安裝了libvirt6.6.0版本會導致安裝失敗,這時候請在Terminal中運行以下命令:


for f in /usr/local/Cellar/libvirt/6.6.0/lib/libvirt/*/*.bundle; do

ln -s $f ${f%.bundle}.so;

done

由於macOS不支持QEMU安全功能,因此禁用:

echo &34;none&39; >> /usr/local/etc/libvirt/qemu.conf

echo &34; >> /usr/local/etc/libvirt/qemu.conf

echo &34; >> /usr/local/etc/libvirt/qemu.conf

最後啟動libvirt服務:

brew services start libvirt

Ubuntu Server 20.04鏡像準備和安裝

有兩種方法可以使用VNC客戶端或virt-viewer來,查看虛擬機界面。推薦RealVNC Viewer。VNC客戶端響應迅速且安裝迅速,但是如果有多個VM,則需要手動管理不同的埠。使用virt-viewer,會彈出一個彈出窗口,其中包含當前正在運行的所有VM,但是它很耗時,並且安裝需要很長時間。

在主目錄中創建一個文件夾vms,並生成一個磁碟映像。更改50g為首選磁碟的大小:


mkdir ~/vms && cd ~/vms

qemu-img create -f qcow2 ubuntu.qcow2 50g


下載Ubuntu Server 20.04安裝包和和libvirt XML配置模板,然後將.iso和.xml文件放在同一文件夾中。

修改ubuntu.xml文件中的以下元素,以匹配VM首選項和對應文件路徑。

<domain type=&39; xmlns:qemu=&39;>

<name>ubuntu</name>

<memory unit=&39;>50</memory>

<vcpu>2</vcpu>

...

<disk type=&39; device=&39;>

<source file=&39;/>

...

<disk type=&39; device=&39;>

<source file=&39;/>


保存,然後運行virsh define ubuntu.xml之後virsh start ubuntu。

啟動RealVNC Viewer並連接到localhost。單擊Ctrl+Alt+Del按鈕重新啟動計算機,然後快速按Esc進入啟動菜單。按與Ubuntu Server映像匹配的數字。

正常安裝Ubuntu Server,確保啟用SSH伺服器。重新啟動後,可以通過運行從終端連接到VM ssh -p 2222 user@localhost。

要將關閉VM,請運行virsh shutdown ubuntu。

要強制關閉,請運行virsh destroy ubuntu。

要將埠(例如,埠443)從VM轉發到本地的埠8443,請運行以下命令:

ssh -p 2222 -L8443:localhost:443 user@localhost

多個虛擬機支持

如果要創建多個VM,請為每臺計算機創建一個具有唯一UUID,VM名稱和VNC埠的XML文件。由於不支持橋接,虛擬不能自動網絡,所以更改hostfwd參數,給每個VM的SSH公開一個不同的埠,例如2223代替2222。

定義所有它們之後,可以獲得當前正在運行的VM的列表:

virsh list。

相關焦點

  • 使用 qemu-kvm 安裝和運行 Vagrant
    如果你已經熟悉 Vagrant 的基礎知識,那麼該文檔為所有的功能和內部結構提供了更好的參考。Vagrant 提供了基於行業標準技術構建的、易於配置、可複製、可移植的工作環境,並由一個一致的工作流程控制,幫助你和你的團隊最大限度地提高生產力和靈活性。
  • OpenStack | libvirt基本原理及應用
    1. libvirt簡介在OpenStack的nova服務默認採用libvirt來管理虛擬機,libvirt
  • Manjaro上安裝KVM和圖形管理virt-manager
    安裝 libvirtLibvirt 是用於管理虛擬化平臺的開源的 API,後臺程序和管理工具。它可以用於管理 KVM、Xen、VMware ESX,QEMU 和其他虛擬化技術。sudo pacman -S libvirt開機啟動服務,因為 kvm 是內核的模塊,這個 libvirtd 服務就是來使用這個模塊的。
  • 基於KVM、VNC和webvirtcloud的自建虛擬平臺
    而其中基於Linux內核的開放虛擬機KVM更是最重要虛擬化基礎架構。本文蟲蟲將帶領大家一起實例學習利用KVN構建自己的虛擬平臺。其中包括:基於Centos 7.6安裝KVM、組網、配置VNC、安裝webvirtcloud進行KVM虛擬平臺管理,安裝kalil inux虛擬機實例。
  • 基於Ubuntu16.04使用KVM實現Linux環境虛擬機化
    Apt-get updateApt-get install qemu-kvm libvirt-bin virtinst bridge-utils virt-viewer virt-manger virt-top libguestfs-tools libosinfo-bin if-top如上兩步操作完成,沒有報錯就安裝好了。現在介紹一下安裝的各個軟體內容。
  • 基於OpenStack的虛擬機在線遷移
    /etc/sysconfig/libvirtd:before :# LIBVIRTD_ARGS="--listen"after :LIBVIRTD_ARGS="–listen"5.在源計算節點上修改要遷移虛機的/var/run/libvirt/qemu/instance–xxx.xml文件,刪除migrate-qemu-fd這一行,將vnc參數修改成0.0.0.0
  • qemu運行自製arm64架構Linux系統
    sudo apt-get install gcc-aarch64-linux-gnu libncurses5-dev build-essential flex bison bc 查找aarch64相關安裝包:apt-cache search aarch64
  • 「自動化實戰」ubuntu系統上快速搭建KVM虛擬機
    一、準備工作1、宿主機作業系統準備號自己的宿主機作業系統為ubuntu16.042、確定CPU的類型egrep"(svm|vmx)" /proc/cpuinfo//這一步是在查看你的電腦的CPU是否支持KVM,如果輸出的一大段字符中有紅色的VMX就代表你的硬體可以支持,那麼可以繼續3、下載好安裝虛擬機所用的系統的
  • Ubuntu 16.04 搭建KVM環境
    2 安裝KVM及相關依賴包sudo apt-get install qemu-kvmsudo apt-get install qemusudo apt-get install virt-managersudo apt-get install virt-viewer sudo apt-get install libvirt-bin sudo apt-get install bridge-utils
  • Linux虛擬機-安裝部署kvm虛擬機(命令行+VNC遠程)
    通過yum進行安裝yum install -y qemu-kvm libvirt virt-install 啟動並設置開機啟動systemctl start libvirtd && systemctl enable libvirtd
  • Fedora32下編譯安裝Qemu5.1並創建ARM版虛擬機
    QEMU是一種通用的開源計算機仿真器和虛擬器。1、全系統仿真:在任何受支持的體系結構上為任何計算機運行作業系統2、用戶模式仿真在任何受支持的體系結構上為另一個Linux / BSD目標運行程序3、虛擬化以接近本機的性能運行KVM和Xen虛擬機
  • Fedora32下編譯安裝Qemu5.1並創建ARM版本Linux虛擬機
    QEMU是一種通用的開源計算機仿真器和虛擬器。下編譯最新版本Qemu5.1並創建ARM版本Linux虛擬機一、編譯安裝Qemu5.1wget https://download.qemu.org/qemu-5.1.0.tar.xztar xvJf qemu-5.1.0.tar.xzcd qemu
  • QEMU 2.0 發布,開源系統模擬器
    QEMU 2.0 發布了,下載地址: http://wiki.qemu.org/download/qemu-2.0.0.tar.bz2QEMU
  • Linux虛擬化-KVM-虛擬機安裝
    是基於硬體的完全虛擬化。一個普通的 Linux 進程有兩種運行模式:內核和用戶。KVM 增加了第三種模式:客戶模式(有自己的內核和用戶模式)XEN :需要升級內核,只能支持和物理機系統一樣的作業系統。xen 虛擬上,可以運行windows.KVM:支持linux以外的其它系統。
  • 使用QEMU模擬樹莓派Raspberry Pi
    ​樹莓派被譽為 「世界上最流行最便宜的小型電腦」 的「樹莓派」Raspberry Pi 是一款性價比超高的迷你電腦主機 (僅有信用卡大小), 深受全球開發者、極客、技術愛好者們的追捧和喜愛由於樹莓派的體積很小很輕,並且功能極其豐富強大,這也使得它的應用範圍和潛力幾乎是無限的下面介紹在之前的編譯安裝Qemu5.1的文章基礎下安裝raspberrypi樹莓派Fedora32下編譯安裝Qemu5.1並創建ARM版本Linux虛擬機1、下載樹莓派系統
  • 使用QEMU模擬樹莓派Raspberry Pi
    樹莓派可以安裝多種 Linux 系統發行版 (官方為 Debian 的衍生版),可當伺服器搭建各種網站、應用服務來使用, 也能用來學習編程、控制硬體或日常辦公。由於樹莓派的體積很小很輕,並且功能極其豐富強大,這也使得它的應用範圍和潛力幾乎是無限的下面介紹在之前的編譯安裝Qemu5.1的文章基礎下安裝raspberrypi樹莓派Fedora32下編譯安裝Qemu5.1並創建ARM版本Linux虛擬機1、下載樹莓派系統最新版本下載地址 http://downloads.raspberrypi.org/raspbian
  • CentOS7環境下的安卓開發:Android studio 的安裝
    之前,小叮噹為大家分享了,CentOS7環境下的安卓開發之Android studio 的安裝環境搭建。在搭建好環境之後,我們便可以來正式安裝Android studio 了。首先,我們從Android studio官網下載相應的系統安裝包。