目前筆電跑的是Arch Linux,KDE桌面用得好好的,然而我遇到了需要Windows才能跑的軟體,得搞Windows雙重開機。
很多人都是先有Windows才裝Linux的,例如 Windows 11 + Ubuntu單碟雙系統,不過這個過程反過來也行得通。
(先安裝Linux再裝Windows,記得以前也 在Ubuntu幹過這種事來著…)
我們只要切個分區給Windows安裝,跟Arch Linux共用EFI分區,然後再把Windows Boot Manager加到GRUB開機選單就可以了。裝好後二邊的檔案可以互通。
我之所以這樣做的目的乃因為Windows 11安裝的分區會把硬碟切得七葷八素的,相較之下Linux只有二個分區。所以先Linux後Windows的做法可以讓硬碟分區好看一點,並且Windows的分區位於硬碟後端,刪除也比較容易。
1. 環境#
MSI Modern 15筆電符合Windows 11硬體需求。如果硬體不符合Windows 11需求,請想辦法用命令提示字元繞過偵測。
硬碟500 GB SSD
Arch Linux分割區如下:
nvme0n1 259:0 0 476.9G 0 disk
├─nvme0n1p1 259:1 0 512M 0 part /boot
├─nvme0n1p2 259:2 0 400.4G 0 part /
要縮減的是root分區,我準備割一個128GB的空間出來安裝Windows 11。
不論分區使用EXT4還是BTRFS,最簡單的方法就是用Gparted Live USB來調整分區大小。我喜歡用圖形界面操作。
2. 用Gparted切割分區#
下載 Gparted LiveUSB,複製到裝有 Ventoy的隨身碟
進UEFI,用Gparted開機
點選桌面的Gparted程式
點選root分區,Partition → Resize,拖動拉桿,將root分區縮小,空出128GB的未分配空間
點選綠色的Apply套用
點選桌面圖示關機
3. 安裝Windows 11#
重開機進入Arch Linux,到 Microsoft官網下載ISO,將檔案放到裝有 Ventoy的隨身碟
重開機進UEFI,為防止影響Linux開機,確認Secure Boot沒有啟用,TPM也關掉(不過我開著倒是沒怎樣,Linux仍正常開機)
用隨身碟重開機,安裝Windows。
在選擇安裝硬碟的畫面,選擇剛剛切割出來的128GB分區
Windows要求重開機時,可能要手動進UEFI,將開機順序改為Windows Boot Manager優先
進入Windows,跑完更新。
3. 將Windows 11加入到GRUB選單#
- 重開機進入Arch Linux,編輯GRUB設定
sudo vim /etc/default/grub
- 將偵測其他系統的參數
#GRUB_DISABLE_OS_PROBER=false
取消註解,並讓GRUB記住開機選取的項目。
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
GRUB_DISABLE_OS_PROBER=false
執行
sudo pacman -S os-prober && sudo os-prober
指令,應會偵測到Windows更新GRUB設定
sudo grub-update -o /boot/grub/grub.cfg
- 解決二個系統時間不同步的問題:讓Arch Linux改用RTC時間。
sudo timedatectl set-local-rtc 1 --adjust-system-clock
如果要在Linux存取Windows分區,請安裝
ntfs-3g
,再透過KDE Dolphin掛載。Windows存取Linux分區請用 WinBTRFS掛載。