qemu 虛擬機器


本文件已過時。 請改參考 五分鐘開始玩 qemu-kvm 虛擬機

qemu [鏡射] 是一個虛擬機器/硬體模擬器, 可以讓假裝開啟另外一部機器。 有點像 vmware; 不過 qemu 是自由軟體。 在這類軟體的文件中, 正在使用的作業系統稱為 host; 被 qemu (或其他模擬器) 啟動的作業系統稱為 guest

從 Linux 底下啟動另外一個作業系統

在 Linux 底下要啟動另外一個 Linux 很簡單。 例如要啟動可開機光碟片, 可以下 qemu -cdrom /dev/cdrom; 如果是光碟片的映象檔, 就把 /dev/cdrom 改成映象檔的名字 (但還是要保留 -cdrom 告訴它採取 cdrom 的開機方式)。 又例如要啟動可開機隨身碟, 可以下 qemu -usb /dev/sdx

在 slax 底下, 若以普通使用者而非 root 的身份登入 X Windows, 則應該下 sudo qemu -usb /dev/sdx。 若企圖用 su 變身成 root 然後下 qemu, 因為普通使用者不准 root 開視窗而失敗。

警告: 用同一個 Linux 分割同時當做 host 與 guest, 確實可以開機, 也還稍微可以用一下; 不過檔案系統會被搞亂掉, 最後只好整個分割 format 掉重新安裝系統...

要從 Linux 底下用 qemu 開啟 Windows, 請見 官方文件

從 Windows 底下啟動 Linux

windows 版 的網頁找到 資訊 說明在 windows 下如何使用。

我用它來啟動 grub, 進而進入一個 Mandriva 2006 的分割。 建議實驗前, 先將 /etc/inittab 的 initdefault 從 5 (X Window) 改成 3 (文字, 多工模式), 並且將你的 /etc/X11/xorg.conf 備份起來! 試過內定的 vga 顯示方式, 無法進入 X Window。 因此用 qemu 啟動時改用標準 vga 如下: qemu -L . -std-vga //./PhysicalDrive0 & 成功進入 Linux 之後, 再用 xorgcfg 產生新的 X Window 設定檔 /etc/X11/xorg.conf 然後就可以 telinit 5 或 startx 進入 X Window。

進入 Linux 後, 用 ifconfig eth0 看一下有沒有抓到網路。 如果沒有, 就手動載入 ne2k-pci 的網卡驅動程式: modprobe ne2k-pci。 這是 qemu 模擬給 Linux 看的網卡。 然後啟動 dhcp: dhclient eth0。 這樣 Linux 就可以透過 Windows 對外連線了。

如果要讓 Windows 可以用 ssh 連線進入 Linux, 可以在啟動 qemu 時加上: -redir tcp:5556:10.0.2.15:22 那麼在 Windows 底下就可以用 pietty 連線。 從 Windows 的角度來看, 它看到的並不是另外一部機器, 只是自己這一部機器的另外一個 port, 所以主機名稱填 localhost, 且 port 填 22。 這裡的 10.0.2.15 最後一位數字, 可能會有出入, 在 Linux 啟動 dhcp 之後, 請下 ifconfig eth0 以讀出來的數字為準。

使用心得

  1. Ctrl-Alt-F 可以切換全螢幕/視窗模式, 很好用
  2. 我的滑鼠被吃掉了! 沒關係, 請注意看視窗標題列: 他有提示按 Ctrl-Alt 可讓滑鼠逃出來。