跳到主要內容

發表文章

QEMU安裝與測試-ARM篇

QEMU安裝與測試-ARM篇 以下都是在 WSL(Windows Subsystem for Linux) 第2版(WSL 2)環境下用 Ubuntu 24.04 測試的: qemu-system-arm --version 上面的指令顯示 QEMU ARM 模擬器的版本,以下都是用 8.2.2 版測試的,如果系統裡面內沒有安裝 QEMU ARM 模擬器,Ubuntu 會提示用套件管理工具(apt)進行安裝(install),例如: sudo apt install qemu-system-arm WSL 使用 NAT(Net Address Translation) 架構存取網路,所以在 WSL 環境下,Ubuntu 安裝好就可以對外連線,如果上面的指令沒有辦法連線安裝 qemu-system-arm 的話,可能是因為需要設定套件管理系統的 proxy,例如: sudo vi /etc/apt/apt.conf.d/proxy.conf 在檔案 proxy.conf 內加入代理伺服器設定,例如: Acquire::http::Proxy "http://proxy.yoyodyne.com:18023/"; Acquire::https::Proxy "http://proxy.yoyodyne.com:18023/"; 參考 QEMU ARM 模擬器說明 ,有些 預先建置好的系統 可以直接拿來用,這裡下載 Squeeze(Debian 6.0) 來測試: wget https://people.debian.org/~aurel32/qemu/armel/README.txt wget https://people.debian.org/~aurel32/qemu/armel/vmlinuz-2.6.32-5-versatile wget https://people.debian.org/~aurel32/qemu/armel/initrd.img-2.6.32-5-versatile wget https://people.debian.org/~aurel32/qemu/armel/debian_squeeze_armel_standard.qcow2 如果沒有辦法連線下載,可能是因為需要設定 ...
最近的文章

QEMU安裝與測試-x86篇

QEMU安裝與測試-x86篇 以下都是在 WSL(Windows Subsystem for Linux) 第2版(WSL 2)環境下用 Ubuntu 24.04 測試的: qemu-system-x86_64 --version 上面的指令顯示 QEMU x86_64 模擬器的版本,以下用 8.2.2 版測試安裝 Windows 10: Windows 10 安裝光碟映像檔可以從微軟下載 媒體安裝工具 ,然後依媒體安裝工具指示下載 ISO 檔,下載完成後準備一個虛擬磁碟機檔案進行安裝,例如: qemu-img create -f qcow2 winten.qcow2 40G 上面的指令用 QEMU 映像檔工具建立虛擬磁碟機檔案 winten.qcow2,設定最多可以成長至40G,準備好就開始進行安裝: sudo qemu-system-x86_64 -M q35 \ -m 2G \ -hda winten.qcow2 \ -cdrom Windows.iso \ -boot d \ -accel kvm \ -device qemu-xhci \ -device usb-tablet 上面的指令用 qemu-system-x86_64 模擬 q35 晶片組的主機,加上 -m 選項模擬 2G 的記憶體,檔案 winten.qcow2 作為磁碟機,檔案 Windows.iso 作為光碟機,設定光碟開機,因為使用 x86 主機模擬 x86 架構,這裡加上 -accel kvm 選項(Kernel-based Virtual Machine)啟動核心虛擬機支援(WSL 已經可以使用),然後加入 USB 控制器,在上面加入 USB 平板以取代 PS/2 滑鼠,避免鼠標錯亂。 請按照正常程序安裝 Windows,建置好的 Windows 虛擬機也需要正常關機,以避免虛擬磁碟機檔案毀損。 由於 /dev/kvm 權限設定的關係,加上 -accel kvm 選項後 qemu-system-x86_64 需要用 root 執行,可以將執行模擬器的帳號加入 kvm 群組,避免後續問題,例如: sudo usermod -a -G kvm username 提醒:加入群組需要重新登入後生效。Windows 安裝完成後,下次啟動 Windows 虛擬...

WSL 與檔案存取

WSL(Windows Subsystem for Linux)提供雙向檔案存取,可以從 Windows 環境存取 Linux 環境的檔案,也可以從 Linux 環境存取 Windows 環境的檔案,在 Windows 執行框或是檔案總管的網址列下達: \\wsl$ 即可存取 WSL 共用資料夾(以及裡面各版本 Linux 環境的檔案)。 前面 介紹過 Linux 版本安裝完成後,檔案總管也會出現該 Linux 版本的項目,以便從 Windows 環境存取 Linux 環境的檔案,這些項目也是經由 Windows UNC 路徑進行存取,在 Linux 命令列視窗下達: explorer.exe . 即可開啟目前所在資料夾的 Windows UNC 路徑。另外,Linux 環境中只要認得檔案系統,都可以掛載進來使用,在 Linux 命令列視窗下達: mount 即可發現 Windows 磁碟機(C:)已經掛載至 Linux 環境裡的 /mnt/c 直接當一般的資料夾存取就可以。

WSL 與應用程式

WSL(Windows Subsystem for Linux) 是 Windows 環境下的 Linux 環境, 前面 介紹過藉由 WSL 可以從 Linux 環境執行 Windows 應用程式,也可以從 Windows 環境執行 Linux 應用程式,兩種應用程式性質有些不同,在 Linux 命令列視窗下達: notepad.exe 即可執行 Windows 裡的記事本,Windows 工作管理員會出現記事本(不會出現在 Linux 工作列表裡面)。在 Windows 命令列視窗(命令提示字元或 PowerShell)下達: wsl   vi 即可執行預設 Linux 版本裡的 vi 編輯器,Linux 工作列表裡面會出現 vi 編輯器(不會出現在 Windows 工作管理員裡面)。在 Linux 命令列視窗下達: ps   -e 即可列出 Linux 工作列表。是的,記事本不是 Linux 應用程式,不會出現在 Linux 工作列表;vi 編輯器不是 Windows 應用程式,不會出現在 Windows 工作管理員。原則上,WSL 限制 Windows 應用程式無法取得 Linux 系統管理員權限。

WSL 與命令列視窗

命令列視窗就是下達命令,執行應用程式的地方,不過 WSL(Windows Subsystem for Linux) 是 Windows 環境下的 Linux 環境,除了執行 Linux 應用程式以外,這個 Linux 命令列視窗也能夠執行 Windows 應用程式,例如記事本(notepad.exe)、小畫家(mspaint.exe)或是 wsl.exe,不能省略副檔名(Linux 環境不以副檔名辨識執行檔)。在 Linux 命令列視窗下達: wsl.exe --list --verbose 即可列出已經安裝的 Linux 版本。還有,Windows 命令列視窗(命令提示字元或 PowerShell)也是 Windows 應用程式,所以在 Windows 命令列視窗或 Linux 命令列視窗下達: cmd.exe 即可執行命令提示字元,進入 Windows 命令列視窗,而在 Windows 命令列視窗或 Linux 命令列視窗下達: wsl.exe 即可進入預設的 Linux 命令列視窗,是的,每次執行命令列視窗都會離開原來的環境,並進入另一個新的命令列視窗,下達: exit 即可結束命令列視窗,離開目前的環境回到上一個命令列視窗。另外,WSL 也提供 Windows 執行 Linux 應用程式的能力,在 Windows 命令列視窗(命令提示字元或 PowerShell)下達: wsl  uname -a 即可列出預設 Linux 版本的 Unix Name。 前面 介紹過 WSL 裡可以安裝多個 Linux 版本,下達: wsl -d Debian uname -a 即可指定執行應用程式的 Linux 版本。藉由 WSL 可以一視同仁地執行 Windows 與 Linux 應用程式,合為一爐而冶之,好吧,兩種應用程式性質上還是有些不同,這個後面再說。

WSL 安裝不同的 Linux 版本

WSL(Windows Subsystem for Linux)裡可以安裝多個 Linux 版本, 前面 介紹過在 Windows 命令列視窗(命令提示字元或 PowerShell)下達: wsl --list --online 即可列出 WSL 有那些 Linux 版本可以安裝。安裝方式都相同,直接指定名稱即可,下達: wsl --install Debian 即可完成 Debian 安裝,不順利的話可以參照 前面 的介紹換一種方式安裝。安裝完成會在 Windows 應用程式列表中建立一個 Debian 項目,用來切換至 Debian Linux 環境,另外,檔案總管裡也會出現 Linux/Debian 項目,以便從 Windows 環境存取 Debian Linux 環境下的檔案。 前面 介紹過安裝完成預設就會切換到 Linux 命令列視窗,下達: exit 即可結束 Linux 命令列視窗,離開 Linux 環境。想要知道 WSL 裡已經安裝了那些 Linux 版本,在 Windows 的命令列視窗(命令提示字元或 PowerShell)下達: wsl --list --verbose 即可列出已經安裝的 Linux 版本,其中 verbose 參數會額外列出 Linux 版本的執行狀態。執行 Windows 應用程式列表中建立的項目(Ubuntu、Debin)即可切換到相應 Linux 環境的命令列視窗,該 Linux 版本的執行狀態會顯示為 Running,每執行一次開啟一個 Linux 命列列視窗,當某個 Linux 版本的所有命列列視窗全部結束後,該 Linux 版本的執行狀態會顯示為 Stopped,另外,下達: wsl --terminate Debian 即可立即停止終止指定的 Linux 版本(執行狀態變為 Stopped),下達: wsl --shutdown 即可立即停止所有版本的 Linux,下達: wsl --unregister Debian 即可移除指定的 Linux 版本。WSL 可以快速安裝、啟動、停止、移除 Linux 版本,搞砸了很容易重新開始或砍掉重練,還可以搞出自己的版本來安裝,這個後面再說。

WSL 換一種方式安裝

WSL(Windows Subsystem for Linux)的安裝雖然只有一行指令,不過它預設會進行兩個階段的安裝,第一階段會先安裝 WSL 環境,第二階段則會在裡面安裝 Linux 發佈(distribution),是的,”發佈”在這裡就是版本的意思,Windows 有家用版、專業版、伺服器版,Linux 也有不同的發佈,第二階段可以在第一階段安裝的 WSL 環境裡面安裝多個 Linux 發佈(版本),這個後面再說。在 Windows 命令列視窗(命令提示字元或 PowerShell)下達: wsl --list --online 即可列出 WSL 有那些 Linux 版本可以安裝,預設會從 Microsoft Store 下載,如果不順利的話可以換個方式,下達: wsl --install --web-download 即可改由 GitHub 下載進行安裝。預設會安裝 Ubuntu Linux,如果不順利的話可以明確指定要安裝的 Linux 版本,下達: wsl --install --web-download -d Ubuntu 即可明確指定安裝 Ubuntu Linux, 前面 介紹過安裝完成預設就會切換到 Linux 命令列視窗,此外,Windows 應用程式列表中也會出現一個 Ubuntu 項目,用來切換至 Ubuntu Linux 環境,另外,檔案總管也會出現 Linux/Ubuntu 項目,以便從 Windows 環境存取 Ubuntu Linux 環境下的檔案。要移除、安裝其它 Linux 版本,或是安裝多個 Linux 版本可以繼續下一篇  WSL 安裝不同的 Linux 版本 。