實戰筆電雙系統 Win10 +Manjaro Linux(以 Acer Swift 5 2019 爲例)

Chai-Shi Chang
6 min readSep 17, 2020

--

前言

Linux 是目前最普片用來專案開發的作業系統,而爲了要有效率的架設專案所需的環境,往往會將自己筆電或者開發用的電腦安裝雙系統,快樂的開發專案與寫程式。然而要成功在電腦上運行雙系統,其實並不是您想象中的那麼容易… 。以下,我會用 Acer Swift 5 2019 筆電爲例,在筆電上裝在 Manjaro Linux (Arch Linux Variant)。

爲什麼使用 Linux(灌雙系統)

這裡我盤點了幾項不同的運用環境所得到的結論:

  • 有效的架設專案所需的套件:如果你是有使用 Ubuntu 或者其他 Distro 的使用者,你一定瞭解,在 Windows 上安裝任何程式開發工具都非常的辛苦。例如:要使用 C++ 要安裝 Microsoft 提供的一堆套件,或許是需要配合又肥又大的 Visual Studio 來使用,沒有效率。如果這個情況在 Linux 系統底下,通常原生系統就附有 Python3, gcc, g++ 等等開發工具,使用上也相對簡約許多。
  • 能適應使用終端機:當長時間花在 Linux 系統上,你會發現做任何事基本上都會在終端機上完成(安裝套件等等),隨着時間的推移,就會變得更上手,開發上就不會綁手綁腳。
  • 虛擬主機與 GPU 資源多數跑在 Linux 上:如果實作資料分析與 Train 模型,但借到一臺跑 Linux 的 GPU Instance 而不會操作,會是一個很大的問題。

為什麼使用 Manjaro Linux?

當初大二的時候學長介紹給我使用:

  • 主要的優點:比 Ubuntu 省電多了,另外 Package Manager 非常好用與直覺。使用 Rolling Release Model,不定期就會系統更新。
  • 主要缺點: Suspend 後 Wake up 會比較久而已。

灌雙系統

筆電基本配置

筆電:Acer Swift 5 (514–54GT)
硬碟:512 GB NVMe SSD
記憶體: 16 GB (on-board)

前置作業

準備兩個 Bootable 的隨身碟,一個燒錄 Manjaro 的安裝檔,一個燒錄 Windows 10 的安裝檔。

  • Manjaro Linux:GNOME Desktop 使用最近版本
  • Windows Bootable USB Drive:使用 MediaCreationTool 建立一個 Win10隨身碟,可以作爲備援用的 Disk

階段一

Windows 底下的設定:

  • 關閉 Fast Startup (Power Option): 讓開機時進入 UEFI 的按鍵可以被觸及成功,不然的話回被 Fast Startup 跳過, 另外如果不將 Fast Startup 關閉會導致一旦雙系統成功後,在 Linux 無法訪問在 Windows 磁區的資料(資料 Icon 上鎖,Windows 磁區爲 Dirty State 狀態)。
  • 切割硬碟:以我的筆電爲例,我將 512 GB 的 SSD 切割爲 Windows 256 GB, Linux 256 GB。
  • 更改 Windows Boot Partition (EFI) 的大小: 這邊會比較刁鑽, 我們需要先把原本 Windows EFI 100 MB 的硬碟空間刪掉,然後再創建一個 512 MB 大小的 EFI 硬碟空間。此步驟的目的是過後的 Linux Bootloader (GRUB)也會放在同一個 Partition 上,所以 Linux 會與 Windows 共享這個 Partition。如此一來,在設定開機 Bootloader 的時候,可以矇騙 UEFI 說我們開啓的是 Windows 的 EFI entry,但實際加載的是 Linux 的 GRUB。 至於爲甚麼要變成 512 MB 呢? 因爲 Manjaro Linux 灌雙系統的官方建議是開機磁碟爲 200 ~ 400 MB。 所以選擇了 512 MB 這個大小。

這個步驟相對會比較危險,所以這就是為什麼會建議在嘗試前需要備好 Windows 的 Installation Media。如果除了問題可以進行除錯。

階段二

UEFI 底下的設定:

第一階段完成後,關機後再進入 BIOS (點擊開機鍵後連按 F2 直到進入 BIOS)

  • 設定 Supervisor Password: 如果要關掉 Disable Secure Boot (Default: Enabled),則需要 supervisor 的權限。(這組密碼很重要,建議存在個人喜好的 Password Manager)。
  • 關掉 Disable Secure Boot: 方可讀取灌系統的隨身碟。
  • 開啓 F12 快捷鍵: 點擊開機鍵後連按 F12 能快速進入 Boot Menu。
  • 設定 Sata Mode:AHCI ( 如果選項是 Disabled 的,則直接在鍵盤上連按 Ctrl + S 喚醒 Sata Mode 選項 )。

階段三

啓動電腦選擇 Boot 進 Manjaro Linux Live USB,開啓到桌面後點選 Install 精靈。

可以根據官方建議數據自行定義調整 Manjaro Linux 所需的磁區,完成後Next -> Next -> Next -> Finish(僅能使用剩下的 256 GB 的空間,另外一半爲 Windows 的 Partition)。

經過一陣子的等待後 Manjaro Linux 就安裝好了。

最後階段

經過前面三個步驟,你可能以爲雙系統就這麼灌完了,但其實當你在開啓電腦的時候,會發現怎麼還是啓動至 Windows 呢? 先不用慌張,這是因爲 UEFI 本身就只會 Boot Windows 的 Bootloader,所以這個時候我們只要將 EFI 內的描述檔案改一下,將啓動 Bootloader 的路徑指向 GRUB2 的 EFI entry 就可以正常開啓 Linux 了。

在這個階段: EFI 硬碟有 Windows Bootloader 的 entry 也有 Linux 的 GRUB2,且硬碟已經存在 Manjaro Linux 的系統檔案。

  • 更改 Boot Entry : 在 Windows 底下開啓終端機(Run with Administrator),輸入 bcdedit /set {bootmgr} path \\EFI\\Manjaro\\grubx64.efi ,輸入後如果沒有出錯就大功告成了!
  • 重啓: 熟悉的 GRUB 畫面~
可以看到 Manjaro Linux 與 Windows Boot Manger 同時出現在 GRUB 內

後續疑難雜症

  • 如果用了一陣子發現怎麼 GRUB2 不見了,不要慌張,可能只是 UEFI 被 windows update 給 Reset 了,這時只要重新執行整個階段二與最後階段,重啓後就一切正常了。
  • Touch Screen 用不到怎麼辦:這個搞了我一年了, 請參靠 →解法
  • 麥克風沒聲音:無解(歡迎提供解法)

這個教學風險蠻高的,但只要沒有誤刪掉整個 Windows C 槽,是不會對 Windows 造成什麼影響。

如果有任何問題,歡迎 Comment。

--

--

Chai-Shi Chang

Always learning and exploring, and never stop coding… (Graduate student in NCKU CSIE)