遠程服務器QEMU+Ubuntu+GRUB+VNC最佳實踐

遠程服務器QEMU+Ubuntu+GRUB+VNC最佳實踐

    • 1. 準備
    • 2. QEMU啟動安裝Ubuntu
      • 2.1 服務器端
      • 2.2 本地端
    • 3. 從服務器終端控制虛擬機GRUB與虛擬機終端

這段時間參與大量內核切換測試工作,實體機需要硬件自檢太過笨重,因此主要通過QEMU驗證正確性。有一個很大的問題是QEMU運行起來后終端看不到系統的狀態,只能通過VNC連接,這無疑是比較低效的方法。更為重要的是,QEMU搭載在遠程服務器上。下面介紹本人的最佳實踐。

1. 準備

  • 遠程服務器:(ip) a.b.c.d
    • QEMU
    • Ubuntu鏡像
  • 本地機器
    • ssh
    • VNCViewer

2. QEMU啟動安裝Ubuntu

2.1 服務器端

OS_IMG=./ubuntu20.img
qemu-system-x86_64 -m 4G\-hda ${OS_IMG} \-enable-kvm \-cpu host \-device e1000,netdev=net \-netdev user,id=net,hostfwd=tcp::2333-:22 \-smp cpus=20 \-serial stdio \-vnc :2
  • -netdev ... hostfwd=tcp::2333-:22:此時a.b.c.d:2333端口被轉發到虛擬Ubuntu的22端口,意味著可以通過ssh a.b.c.d:2333連接虛擬機。不過需要虛擬機上安裝openssh
  • -serial stdio:虛擬機的串口使用服務器的標準輸出(也就是能夠在終端顯示)
  • -vnc :2:暴露VNC口a.b.c.d:5902

2.2 本地端

此時只能使用VNC連接安裝,如何快速連接遠端VNC口呢?參考

  • 在服務器上用qemu制作虛擬機

  • vnc通過ssh隧道連接到Linux服務器

總的來說,首先在本地建立起 ssh隧道

ssh -L 5902:localhost:5902 username@a.b.c.d

這代表本地端的5902端口與a.b.c.d:5902建立起了一條隧道,將本地機的5902端口轉發到遠端機器的5902端口

然后打開VNCReviewer,連接localhost:5902即可

在這里插入圖片描述

3. 從服務器終端控制虛擬機GRUB與虛擬機終端

安裝完畢后,重新運行QEMU,終端上仍然在等待VNC連接,沒有任何輸出。參考

  • UbuntuHelp:SerialConsoleHowto

遠程連接虛擬機

ssh username@a.b.c.d -p 2333

修改虛擬機配置/etc/default/grub如下:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'GRUB_DEFAULT=saved
# GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="maybe-ubiquity"
GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"# Uncomment to disable graphical terminal (grub-pc only)
GRUB_TERMINAL="serial"# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

關鍵點如下:

  • GRUB_TERMINAL="serial",GRUB的輸出通過串口輸出
  • GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8" :Ubuntu Linux的輸出通過串口輸出

sudo reboot后就能夠在服務器終端上看到GRUB菜單以及Ubuntu的輸出信息,然后就可以徹底拋棄VNC了。


OK,從現在開始就可以起飛了🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/206929.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/206929.shtml
英文地址,請注明出處:http://en.pswp.cn/news/206929.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JavaSE基礎50題:11. 輸出一個整數的每一位

概述 輸出一個整數的每一位。 如:1234的每一位是4,3,2,1 。 個位:1234 % 10 4 十位:1234 / 10 123 123 % 10 3 百位:123 / 10 12 12 % 10 2 千位: 12 / 10 1 代碼 ublic sta…

ResourceBundle使用詳解

ResourceBundle使用詳解 這個類主要用來解決國際化和本地化問題。國際化和本地化可不是兩個概念,兩者都是一起出現的。可以說,國際化的目的就是為了實現本地化。比如對于“取消”,中文中我們使用“取消”來表示,而英文中我們使用…

【小白專用】MySQL入門(詳細總結)

3. 創建數據庫 使用 create database 數據庫名; 創建數據庫。 create database MyDB_one; create database DBAliTest; 創建數據庫成功后,數據庫的數量變成了6個,多了剛才創建的 dbalitest 。 4. 創建數據庫時設置字符編碼 使用 create database 數據…

YouTube網紅營銷:出海品牌擴大影響力的關鍵

隨著數字媒體的興起,社交媒體已成為品牌與消費者之間建立聯系的重要橋梁。其中,YouTube作為全球最大的視頻分享平臺,不僅擁有龐大的用戶群體,還聚集了眾多有影響力的網紅。這些網紅在各自的領域內擁有強大的話語權和號召力&#x…

MySQL數據庫,初學SQL知識點引入

數據庫的相關概念: DB:數據庫(Database): 即存儲數據的倉庫,其本質是一個文件系統。保存了一系列有組織的數據。 DBMS:數據庫管理系統(Database Management System)&…

董明珠:格力從制造商到自主創新企業的轉變之路

中國制造業的崛起是近幾十年來全球經濟舞臺上最顯著的事件之一,而格力電器作為中國制造業的代表之一,其漫長而堅定的自主創新之路,將其從一家傳統的制造商轉變為一個自主創新的企業,是中國制造業發展歷程中的一個亮點。本文將探討…

虛擬化之指令的Trap和仿真

有時,虛擬機監控程序需要在虛擬機(VM)中模擬操作。例如,VM內的軟件可能嘗試配置與功耗管理或緩存一致性相關的低級處理器控件。通常,您不希望將VM直接訪問這些控件,因為它們可能被用于突破隔離,或影響系統中的其他VM。 trap在執行給定操作(例如讀取寄存器)時引發異常…

2023年全國職業院校技能大賽-大數據應用開發-數據可視化

可視化題目與以往相同,做法類似,我這里展示得到語句后處理優化以后的代碼,以函數式來寫可視化,比以前400-500多行代碼簡潔到100多行。其他題目見本欄目,那里面的代碼都是沒有優化后的,這次主要以效率和精簡…

IDEA版SSM入門到實戰(Maven+MyBatis+Spring+SpringMVC) -Mybatis查詢中返回值四種情況

第一章 Mybatis查詢中返回值四種情況 1.1 查詢單行數據返回單個對象 /*** 通過id獲取員工信息*/ public Employee selectEmpById(int empId);<select id"selectEmpById" resultType"employee">SELECTid,last_name,email,salaryFROMtbl_employeeWHE…

Backend - Django JsonResponse HttpResponse

目錄 一、關系 二、使用 &#xff08;一&#xff09;data 字典傳值 1. HttpResponse &#xff08;1&#xff09;寫法 &#xff08;2&#xff09;前端接收 HttpResponse 回傳的值 2. JsonResponse &#xff08;1&#xff09;寫法 &#xff08;2&#xff09;前端接收 Js…

如何解壓沒有密碼的7-zip文件?

7z壓縮包設置了密碼&#xff0c;解壓的時候就需要輸入正確對密碼才能順利解壓出文件&#xff0c;正常當我們解壓文件或者刪除密碼的時候&#xff0c;雖然方法多&#xff0c;但是都需要輸入正確的密碼才能完成。忘記密碼就無法進行操作。 那么&#xff0c;忘記了7z壓縮包的密碼…

文件重命名大師:批量修改名稱的終極指南

在處理大量文件時&#xff0c;我們往往需要修改它們的名稱。無論是為了整理、歸檔還是為了滿足某種特定需求&#xff0c;重命名文件都是一項常見的任務。然而&#xff0c;手動一個一個地修改文件名無疑是一項耗時且容易出錯的工作。幸運的是&#xff0c;我們可以借助一些強大的…

Python---類的綜合案例

1、需求分析 設計一個Game類 屬性&#xff1a; 定義一個類屬性top_score記錄游戲的歷史最高分 定義一個實例屬性player_name記錄當前游戲的玩家姓名 方法&#xff1a; 靜態方法show_help顯示游戲幫助信息 類方法show_top_score顯示歷史最高分 實例方法start_game開始當前…

13、pytest為失敗的斷言定義自己的解釋

官方實例 # content of ocnftest.py from test_foocompare import Foodef pytest_assertrepr_compare(op, left, right):if isinstance(left, Foo) and isinstance(right, Foo) and op "":return["Comparing Foo instances:",f" vals:{left.val} !…

震坤行走進中國移動電商平臺業務推介啟動會助力政企采購升級

震坤行走進中國移動電商平臺業務推介啟動會助力政企采購升級 7月19日&#xff0c;震坤行受邀參與中國移動供應鏈管理中心在北京舉辦的“和悅彩同行 創供贏未來”主題活動&#xff0c;走入客戶一線面對面溝通&#xff0c;依托MRO領域服務能力為客戶提供專業解決方案&#xff0c…

node后端接口無法插入數據為emoji的表情的問題

原因 emoji的表情一般是這樣的\xF0\x9F\x98\x80或者是\xF0\x9F\x98 &#xff0c;事實上 一般數據庫的utf8的編碼類型都是能保存\xF0\x9F\x98 但是不能保存\xF0\x9F\x98\x80這種樣的emoji&#xff0c;要將數據庫編碼格式為utf8mb4 也就是utf8的超集 另外&#xff0c;除了 數據庫…

angular狀態管理方案(ngrx)

完全基于redux的ngrx方案&#xff0c;我們看看在angular中如何實現。通過一個簡單的計數器例子梳理下整個流程 一 安裝 &#xff1a;npm i ngrx/store 這里特別要注意一點&#xff1a;安裝 ngrx/store的時候會出現和angular版本不一致的問題 所以檢查一下angular/core的版本…

使用 HPA 和 TopologySpreadConstraints 實現可用區間等比擴容

1. 原理介紹 設置 HPA 每次最小擴容 Pod 數為可用區數量&#xff0c;以期可用區間 Pod 同步擴容設置 TopologySpreadConstraints 可用區分散 maxSkew 為 1&#xff0c;以盡可能可用區間 Pod 均勻分布 2. 實驗驗證 2.1. 準備 Kind 集群 準備如下配置文件&#xff0c;命名為 …

軟件測試面試題及答案解析

在軟件測試領域&#xff0c;面試是求職者進入這個行業的重要途徑。為了幫助大家更好地應對軟件測試面試&#xff0c;本文將為大家提供一些常見的軟件測試面試題及答案解析。 請簡要介紹一下軟件測試的目的和重要性。 答&#xff1a;軟件測試的目的是確保軟件產品的質量&#…

千問模型測試環境配置

配置千問環境比較順利&#xff0c;有些由于速度問題較慢&#xff0c;添加源之后提速很多&#xff0c;記錄如下&#xff1a; 1.創建虛擬環境 conda create -p /datanas3/chenjing/envs/qwen python3.8 2.激活虛擬環境 conda activate /datanas3/chenjing/envs/qwen 3.添加源 co…