現在很少開虛擬機, 如果有, 也都是用 kvm -pflash ... 指令簡單用一下我的 UEFI 隨身碟。 今天需要讓區網裡的機器看見虛擬機, 所以必須開 virt-manager。 太久沒用, 都快忘記怎麼用了。 花了一小時挖出自己散落在好幾篇的舊設定, 終於慢慢想起來, 趕快記錄下來:
2025年9月14日 星期日
2024年6月1日 星期六
原來 docker 會破壞 virt-manager 虛擬機的 bridge 連線
"bridge": "brext" 就可以了。
這裡 brext 是我的 bridge 的名字。
奇怪,這是 2017 年的 bug report 耶!?
有大大 (Dmitry Smirnov) 說
docker 團隊不太在意這個 bug, 希望大家都用 docker 就好,
後來他就改用 rkt 了。 可是後來 rtk 也停止更新了。
2024年5月27日 星期一
建立 bridge 連線, nmcli 版
我喜歡把 virt-manager 所管理的虛擬機從自閉的網路裡面拉到跟 host 同一層的家中區網, 以便手機、 平板等等其他裝置可以看到這些虛擬機。 過去幾年是用 netplan 來建立 bridge; 今年 (從 linux mint) 移民到 debian, 預先安裝的是 nmcli 而不是 netplan。 那就跟著改吧, 這樣比較方便在社群裡求助。
2022年9月27日 星期二
電腦教室的 bridge 同名之亂
虛擬機通常躲在 host 的後面, 區網的其他機器看不到虛擬機的 IP。 這樣比較安全但也比較不方便。 我在電腦教室要叫學生互相檢查或攻擊同學的虛擬機, 這時就需要用 bridge (橋接器) 把虛擬機提升到跟 host 位於相同的區網。
觀念上來說, 需要做的事包含:
- 建立一個虛擬 bridge, 比方說叫做 brext 好了。
- 停用 eth0。
- 把實體網卡 eth0 接在 brext 底下。
- 透過 brext 對外尋求 dhcp 服務。 (Host 的網路又恢復連線。)
- 以後虛擬機的網路也都接在 brext 上。
2020年9月4日 星期五
virt-manager 的一些設定:虛擬機區網曝光、 實體硬碟、 UEFI
如果說 kvm 是 linux 虛擬機的引擎, 那麼 virt-manager 就是完工的車子。
以前年輕喜歡耍帥直接開著
引擎裸露 的
(網路連線) 拼裝車 上街拉風; 現在懶惰了,
還是開著完工的成品車比較簡單。
gtwang 的文章 有 virt-manager 慢動作分解教學;
笑傲紅塵路 有更多關於虛擬化技術的詳盡解說。
這篇我只想簡單筆記一下我的使用方式, 特別是對外網路的部分。
2020年9月3日 星期四
(幾乎不談指令) 概念性的 netplan 簡介
Ubuntu 18.04 (還是更早?) 棄 /etc/network/interfaces
改用 netplan 以來, 我一直不敢面對, 一直還是堅持用
懷舊網路設定。 最近
移民 mint 20 ulyana, 總算搞懂 netplan:
它只是一個最高階層、 負責出一張嘴的空殼,
在它的設定檔 /etc/netplan/*.yaml
裡面有一句最重要的 renderer, 由這句話指定到底要用
NetworkManager 還是要用 networkd 來實作網路連線 --
它們才是真正做苦工的程式。
有點像是董事長 (呃,我剛剛說了什麼~)
決定要請哪一位來當總經理/執行長:
沒有太多選擇, 大概就只有這兩位, 而且最好不要請兩位同時上任。
爬文時, 有人也人把這兩個選擇稱為不同的 backends。
很棒的 stackexchange 問答。
2019年7月9日 星期二
「Docker pull 卡住不動」 的實驗計畫
不太確定為什麼, 偶爾會遇到 docker pull 抓映像檔抓到一半突然卡住不動。 很多人都遇過相同的問題, 而且很多年了都沒有解決, 到現在 Bounty Source 還在懸賞。 我在電腦教室特別常遇到這個問題; 可惜上課期間來不及研究。 這篇的目的是希望下次再遇到時, 可以做一些實驗, 確認一下到底是伺服器那頭的問題, 還是我們這頭的問題。 如果夠多人測試不同的排列組合, 並且到上述 issue 回報自己的排列組合, 說不定對開發者除錯會有一些幫助。
以下提到設定檔的地方, 都以 lubuntu 18.04 bionic beaver 為準。
2018年7月6日 星期五
在 ubuntu 18.04 底下為 kvm 打造的虛擬區域網路
[2020/9/3 改推薦採用 netplan 設定 bridge 搭配 virt-manager 會比本文簡單很多。]
Ubuntu 18.04 Bionic Beaver 的網路設定改用 netplan 取代舊的 /etc/network/interfaces 設定方式。 如果只是單純的固定 IP 或 DHCP, 據說設定很簡單。 可是我想採用類似 手工精簡版 的方式來幫未來的 qemu-kvm guests 設定獨立式或可橋接外界的虛擬區域網路。 暫時沒有力氣學 netplan, 所以就照著 這個問答 強制改成舊的設定方式比較簡單。 但若不小心, 有可能會在開機時無限等待 dhcp 服務。 以下是我的 lubuntu 18.04 最終網路設定, 及一些有助除錯的筆記。
2017年9月5日 星期二
百毒不侵救命碟 「貴哥實驗室版」: 不必燒毀、 麻瓜可自製、 圖書館/電腦教室幾乎零管理
注意: mbootuz.py 僅限用於處理傳統 MBR 方式分割的硬碟/隨身碟。 mbootuz.py 不適用於處理 GPT 方式分割的硬碟/隨身碟。
請到 這裡 下載最新版的 *.iso 。 以 2024 年為例, 可以下載 24/gx24B-debian-trixie.iso 這是以 debian 13 trixie (testing) 為基礎的版本 [或更輕巧的 32bit gantix*.iso、 文字模式救援光碟 grml linux] 這些是我上課用的 live CD。 請把它燒成 DVD、 用它開機之後, 打開一個終端機, 可以這樣自製 「百毒不侵救命碟」:
ls /dev/sd* # 插入隨身碟 ls /dev/sd* # 查看一下比剛才多出什麼? 例如多出 /dev/sdz 跟 /dev/sdz1, 那麼就: sudo mbootuz.py mkboot /dev/sdz # 密碼是一個空格 (不良示範, 不要學) sudo mbootuz.py cplive -p greg.img -Z 2G /dev/sdz
其中 -p 後面的檔名請根據你的姓名或代號命名; -Z 後面的值代表幫 linux 預留多大的可寫入空間。 (也就是會多吃掉隨身碟那麼多空間。) 就這樣, 兩個指令, 複製時間從五分鐘十五分鐘不等, 你已成功自製 mbootuz.py cplive 版的開機隨身碟! 以下是詳細解說。 [2017/10/22 mbootuz.py 大改寫, mklive 子命令已被 cplive 子命令取代。]
2017年9月3日 星期日
Debian Live: 把已灌入硬碟的系統變成 live cd
玩出來了! 太感動了! Debian 系列 (含 *ubuntu) 有一個
live-boot 套件, 它可以把你已安裝在硬碟上的
linux 系統打包變成一張開機光碟 (live CD)。 這有什麼好處?
- 因為光碟是唯讀的, 所以你可以把系統用 squashfs 的方式壓縮到很小, 很省空間。
- 這張光碟可以用 pxe 從網路開機。
- 你可以把這張光碟放到隨身碟上, 再加上 persistence 功能, 又讓它變成可寫入的版本。 幫麻瓜製作開機隨身碟變得又快又簡單!。
2022/10/30 若要製作 UEFI 版的開機光碟, 請參考 支援 UEFI 光碟的開機載入程式 rEFInd。
2017年5月30日 星期二
透過 pxe 網路開機載入開機光碟
很久以前就想玩 pxe 網路開機;
最近想要攻佔不歸我管的 windows 電腦教室, 才開始認真學。
做壞事克服逆境真是進步的最佳動力啊! 這篇 (中文) 很詳盡;
不過如果區網內已有一個 dhcp 伺服器,
而且不能關掉, 那該怎麼辦呢?
把自己的 dhcp 服務設定成 proxy 就可以了。
本文主要參考
這篇 manski.net 的英文文章, 因為它採用 dnsmasq,
讓設定變得很簡單, 而且文章本身也寫得簡單明瞭。
最後, 本文也說明如何透過 pxe 啟動特定幾張 live cd。
搜尋 「pxe 光碟」 時, 會看到很多 「透過 pxe 啟動 linux
安裝光碟」 類型的文章; 但如果只是想要網路開機, 並沒有要安裝呢?
這是本文的重點。
2017年5月22日 星期一
窮人的 proxmox (可攜式/行動) 機房
業餘機房管理員貴哥向系上要了一部較高階的桌機,
在上面安裝 proxmox 虛擬環境, 用它來架設私有雲、
管理幾部 linux 教學伺服器已經兩年了, 感覺超簡單超方便的,
很想分享給中小企業網管們,
還有喜歡電腦自主又想幫學校省錢的老師們。
小格舊版的
「虛擬機新手恩物 proxmox」 那篇蠻受歡迎的;
新版的 4.* 系列有很多改變, 所以決定重寫一篇。
也順便示範: 沒有伺服器和固定 IP 可用的窮人也能把
proxmox 安裝在一個 qcow2 檔或隨身碟裡面,
背著一間機房到處跑、 隨時拿出來練習!
這招拿來教 proxmox 很方便,
不會影響到電腦教室裡原本的 linux 系統。
(<== 真正的原始動機)
但本篇並不只限定於對隨身碟/行動版有興趣的讀者 --
如果你只是單純想玩 proxmox、 而且手邊有實體伺服器可用,
則可以省略前面的 (第一層) 虛擬環境架設, 直接用 proxmox 光碟啟動伺服器,
並且跳到第二節第4步。
2017年5月14日 星期日
手工精簡版 qemu-kvm 虛擬區域網路
本文已過時。 請改參考 在 ubuntu 18.04 底下為 kvm 打造的虛擬區域網路
qemu/kvm 是蠻底層的 linux 虛擬化工具, 只適合用於單一虛擬機的場合。 它固定配 10.0.2.15 的 IP 給虛擬機, 這個 IP 僅供虛擬機自嗨用, 從 host 並不能用這個 IP 連到虛擬機; 。 如果要管理一整群虛擬機, 各自要有 ip、 彼此要能互連, 理論上應該改用 virsh 跟 virt-manager 比較好。 不過這兩者的相依套件蠻多的。 對於喜歡騎腳踏車勝過騎機車/開車的人來說, 其實 「含有多部 kvm 虛擬機的區域網路環境」 還是可以用 qemu/kvm 指令徒手建立出來。
大人問小孩: 「全世界的玩具隨便你挑? 這怎麼可能?
如果我要的玩具只有一個, 正好又被別人借走了呢?」