淺談雙(多)系統

Share This Post

前言

這篇主要單純分享一下我使用雙系統的一些經驗和感想,因為我現在用的這台筆電就是裝了雙系統,用三個月了。以下都會以雙系統做分享,多系統概念其實是一樣的。

免責聲明:此篇實做會比較少,因為是攸關整台電腦安危的事情,不敢讓你們隨便測試,但如果你們想要單純試試看雙系統體驗的話,強烈建議用虛擬機器軟體來玩。如果想在實體機器裝雙系統請務必慎重考量安裝雙系統的各種議題後再實行。

何謂雙系統

顧名思義,就是在一台電腦上安裝多個作業系統,在電腦啟動的時候會透過開機管理器選擇要使用哪個作業系統,很適合要嘗試不同作業系統但又不敢把原本系統刪掉的時候,或是電腦有多種用途(如:玩遊戲用 Windows,寫程式用 Linux)的時候使用。

目前常見的多系統:

  • 多版本 Windows (Windows 10 + Windows 11)
  • Windows + Ubuntu
  • Mac + Windows

雙系統與虛擬機器(VM)的比較

你可能會想說有不同作業系統的需求用 VM 就好了阿,但是 VM 因為是在實體虛擬一個電腦出來,因此會和直接跑作業系統有些許差異。

雙系統相對 VM 的好處

  • 使用較少的 CPU 和記憶體資源
    • 因為是直接跑作業系統,相較於 VM 必須跑主系統和虛擬系統,所佔的資源會比較少一點
  • 可以完整使用硬體效能不受限制
    • VM 內的硬體因為是虛擬出來的,除非是把硬體直接轉送到 VM 內直接存取,在虛擬機內的效能會受到一些限制,尤其是 GPU 方面,對 GPU 要求高的事情還是用實體作業系統比較好。

雙系統相對 VM 的痛點與風險

  • 無法同時使用多個作業系統
    • 由於是在開機的時候選擇作業系統,因此無法同時執行兩個作業系統,而 VM 因為是跑在主作業系統上面,因此可以同時使用主作業系統與虛擬作業系統
  • 操作不當有搞壞整台電腦系統的風險
    • 安裝過程是直接對電腦硬碟下手,如果在操作時出了點差錯,可能導致無法開機甚至整個硬碟資料不小心被刪掉。
  • 空間分配較沒有彈性
    • 因為是在硬碟上分割磁區安裝,如果想要擴充空間會需要做實體資料搬移,比較不容易。

我現在使用的雙系統

我現在使用的這台筆電,是 Windows 10 + KUbuntu 的雙系統,用了三個月,整體體驗還算是好的,只是我覺得我當初只切 40 GB 出來有點不太夠。

我以前在電腦上裝過的雙系統

  • Windows 10 + KUbuntu (現在)
  • Windows 10 + Windows 11 (Beta)
  • Windows 7 + Windows 8.1
  • Windows vista + Ubuntu (Wubi)

Wubi – 曾經的 Ubuntu + Windows 雙系統

Wubi 全名 Windows-based Ubuntu Installer ,是以前在 Ubuntu 出現過的安裝模式,讓你在 Windows 上透過和安裝普通應用程式一樣的方式安裝 Ubuntu 到電腦上,而且是將資料直接寫到 NTFS 硬碟上而不是分割磁區,並且使用 Windows 的開機管理程式做選擇,我個人認為這是個很棒的發明(?)。然而在 12.04 版後被移除了,可能是因為這種方式的錯誤率較高。

參考資料:

雖然原本的 Wubi 停止更新了,由於是開源軟體,現在仍有社群 fork 了一份出來在維護,並支援現今的 UEFI 架構。現在最新的測試版甚至支援了 Ubuntu 22.04 ,雖然我現在還沒在虛擬機上成功過,但還是個值得一試的工具。

淺談開機管理程式

說到雙系統肯定要談一下決定作業系統去向的開機管理程式,當然這些開機管理程式不管你是不是雙系統都是存在的,因為他的任務就是載入作業系統,但因為只有一個系統,預設不會顯示選擇器。

以下以電腦上常見的開機管理程式做介紹。

Windows – Windows Boot Manager

從 WinVista 開始就一直用到現在的 Windows 開機管理程式,用於載入 Windows 作業系統,以前是可以設定載入非 Windows 的作業系統,但受 UEFI 的限制,讓設定變得比較複雜。

Windows Boot Manager 的開機流程

除了載入作業系統,也提供一系列的進階工具可以使用。

參考資料:

Linux – Grub

Grub 是我目前看過最常見的 Linux 開機管理程式,一般用於載入 Linux 作業系統,但具有高度自訂性,可以自訂開機選單的外觀,能夠偵測其他磁區的系統甚至非 Linux 的系統,甚至提供不同內核(Kernel)版本的選擇。同樣如果只有一個作業系統,也可以設定預設隱藏開機選單。

除了硬碟以外,Grub 也可以安裝到隨身碟內,常見 Linux 的安裝媒體甚至 Ventoy 都是使用 Grub 做開機管理。

參考資料:

雙系統安裝

現今安裝雙系統也沒有想像中的這麼困難,只要做足功課並小心操作應該是很好上手。

以下以在已經安裝好 Windows 的情況下安裝 Ubuntu 為例,並假設電腦是用 UEFI 開機,且已經準備好 Ubuntu 的安裝媒體。

安裝流程

  1. 將 Windows 的快速啟動關閉

快速啟動的關機不是真正的關機,因此如果在這模式下關機後進入別的系統會出事。

按下 Win+R 輸入 control 按下 Enter 開啟控制台。

進入硬體和音效 > 電源選項,並按一下「選擇按下電源按鈕時的行為」。

按一下「變更目前無法使用的設定」後,將「開啟快速啟動」取消勾選並儲存變更。

  1. 騰出空間給 Linux 使用 要騰出的大小請依需求決定,硬碟空間允許的話當然是越大越好。 雖然 Ubuntu 安裝程式已經有提供簡易的分割方式,但我覺得還是不太安全,所以還是推薦用 Windows 來騰出空間。

對開始按鈕按右鍵,選「磁碟管理」。

在磁碟管理中,對想分割的磁區按右鍵,選擇「壓縮磁碟機」。

輸入想分割出來的大小,然後按下壓縮。

Windows 會視需要將硬碟資料搬移並騰出空間使用。

  1. 開機到 Ubuntu 安裝程式 UEFI 系統可以透過作業系統做進階開機動作。 按住 Shift 並點一下「重新啟動」即可進入進階選項。

按一下「使用裝置」。

選擇裝有 Ubuntu 安裝媒體的裝置啟動。

電腦重開機後會出現這個,直接 Enter 進入。

  1. 安裝 Ubuntu 安裝方式就和一般安裝 Ubuntu 一樣,唯一要注意的是這邊多出了「將 Ubuntu 與 Windows Boot Manager 安裝在一起」如果多出了這個選項,你很幸運,直接安裝就可以了。

安裝前可以確認一下他會對硬碟做什麼事,檢查一下以防不小心刪錯東西。

如果你很不幸的像我一樣沒有「將 Ubuntu 與 Windows Boot Manager 安裝在一起」選項,則必須進入「其他」手動選擇磁區。

然後選擇剛剛騰出的空間,按下 + 號。

接著將掛載點設定到 / 即可。

安裝前同樣可以確認一下他會對硬碟做什麼事,檢查一下以防不小心刪錯東西。

安裝完重開機,如果出現下面這個畫面代表你成功了,可以選擇你要的作業系統進入。

參考資料:

安裝時遇到的問題

在安裝的時候我有遇到以下情況:

  1. 我明明有空間 Windows 卻不讓我壓縮

會發生這個主要是因為這個磁區後面有沒辦法移動的重要系統檔案,如果要壓縮的話必須暫時關掉以下三個功能才行:

  1. 關掉休眠 打開有系統管理員權限的 PowerShell 並打上 powercfg /h off
  2. 關掉虛擬記憶體 對開始按鈕按右鍵,選「系統」。

接著選擇進階系統設定

Windows 10 進階系統設定位置

Windows 11 進階系統設定位置

進入效能設定

設定虛擬記憶體

將你要分割的磁區的分頁檔關掉

  1. 關掉系統還原 同樣在進階系統設定中,選擇系統保護,將要分割的磁區的系統還原關掉
  1. 重新啟動並進行磁碟壓縮
  2. 壓縮完記得把上面三個功能開回來

參考資料:

  1. 裝完之後他直接開機到 Windows 了 這是因為電腦的 UEFI(BIOS) 設定沒有被動到,因為每個電腦的設定方式不一樣,我就不多做介紹,可以參考以下文章修正。

設定與個人化

時間跑掉了

安裝完雙系統你可能會注意到的第一件事,就是時間跑了,跑掉的原因是因為 Linux 預設硬體時鐘是存 UTC,而 Windows 是存本地時間,所以衝突導致有時差,解決方式為將 Linux 也設定程存本機時間:

sudo timedatectl set-local-rtc 1

參考資料:

開機選單好醜

沒問題!之前提過 Grub 是高度自訂性的開機管理程式,因此安裝主題就好了,線上也有許多現有的主題可以讓你套用,像是下面這個就是套用 grub2-theme 的 vimix 主題。

安裝方式就是把這個 GitHub Repo clone 下來之後,執行以下指令並依照提示操作即可。

sudo ./install.sh

我想讓 Windows 是預設的作業系統

沒問題!只要更改開機的順序即可,這邊推薦一個 GUI 工具叫做 Grub Customizer,可以以簡單的方式自訂 Grub。

Ubuntu 22.04 安裝方式:

  1. 因為沒有在官方套件庫內,需要新增 PPA sudo add-apt-repository ppa:danielrichter2007/grub-customizer
  2. 接著安裝 sudo apt install grub-customizer

安裝完後,執行他,並選擇 Windows Boot Manager 然後按向上箭頭一路點到最上面後,按下 Save 即可。

參考資料:

我想要在兩個系統上用同一個藍牙滑鼠

藍牙滑鼠一般在配對後會有獨特的配對碼,通常只能在一個電腦上使用,這對雙系統很不利,不過還好已經有人做出一個腳本可以把 Windows 上的藍牙配對馬複製到 Linux 中,方法如下:

  1. 首先在 Windows 上配對好滑鼠
  2. 重新開機到 Ubuntu 上
  3. 安裝必要套件(用來存取 Windows 的註冊表) sudo apt install chntpw
  4. 把 Windows 的 C 槽掛載起來
  5. 複製並執行以下檔案
    • Gist 連結 : Export your Windows Bluetooth LE keys into Linux!
    • python3 ./export-ble-infos.py -s <Windows C 槽根目錄位址>/Windows/System32/config/SYSTEM
    • 其中 <Windows C 槽根目錄位址> 是你掛載 C 槽的位置 他會將 Windows 內的所有藍牙滑鼠裝置的 Key 複製到目前的目錄下一個叫 bluetooth 的資料夾
  6. 複製到 Linux 的設定檔目錄下並重啟藍牙服務
    • sudo bash -c 'cp -r ./bluetooth /var/lib && service bluetooth force-reload'
  7. 確定會動之後就可以將 bluetooth 資料夾刪掉

安全的移除雙系統

如果你不想用雙系統了,可以透過以下方式安全移除雙系統,因為每個電腦的設定方式不一樣,我就不多做介紹,主要分成以下兩個流程

  1. 進入 UEFI 設定,設定成預設用 Windows Boot Manager 開機
  2. 在 Windows 的磁碟管理中將 Linux 刪除,刪除後可以選擇將原本的 C 槽延展或是建立新的簡單磁區

詳細方式可以參考以下文章:

訂閱研究文章

Get updates and learn from the best

More To Explore

Scroll to Top

hurry up !

軟體工程師培訓

限時免費報名中

藉由與「真實世界軟體專案」相同的技術、工具與開發流程,化簡成與商業機密無關、門檻較低更容易上手的「模擬專案」,讓你有機會在職場前輩的陪伴下,完成真槍實彈的練習,動手解決真實的問題,快速累積個人的經驗與作品,而不只是「學習技術」而已。