Dual Boot Windows After Installing Linux

1 minute read

這篇的環境比較特殊,這是在你的電腦有 Linux 的環境下,想要安裝 Windows 雙系統的教學。

如果你是有 Windows 想裝 Linux,那可以 Google 一下就有完整的教學,也相對簡單好設定,因為 Linux grub2 會偵測到你有裝 Windows,讓你開機的時候可以選擇作業系統。

而本篇敘述的狀況則是先裝 Linux 再裝 Windows,Windows 無法辨認 Linux,所以他可能會摧毀 Linux 開機的一些重要檔案,導致你只能開 Windows 或是都不能開。

備份

先參考 GitLab 不小心 rm 了 database 資料,而且備份全部失效

所以做任何重大的設定、更動之前,一定要先備份重要資料,不然資掉丟掉了再來後悔,已經來不及了……

可以用 rsync, dd 等指令來備份 linux 的檔案

此外,還要準備一個 Linux Live USB disk(dd 到 usb 就完成了),以免 grub 壞掉無法開機

切割硬碟

推薦使用 gparted 來割硬碟!

如果原本的硬碟都已經切的乾乾淨淨的話,只要用 Live USB/CD 開機再把它 shrink (縮水)就好了。謄出來的空間不需要格式化成任何檔案格式,留在那裡給 Windows 自己格式化就好。

製作 Windows USB 安裝碟

看你是用 BIOS(Legacy) 還是 UEFI,分別對應到 MBR/GPT 分割,這裡用新的 UEFI 做講解,用 BIOS 的就參考一下 reference 吧。

UEFI: GPT

這部份我認為 Windows XP 以下的版本不會支援,所以推薦用 Windows 7 以上的版本。

  1. 把隨身碟的分割表寫成 GPT,並只格式化成一塊 FAT32 的分區
  2. 把 Windows 安裝映像檔(*.iso) 用 7z 打開,將所有檔案 copy 到隨身碟裡面
  3. 通常 Windows 10 在隨身碟的 efi/boot 會有個 bootx64.efibootia32.efi 檔案,這樣就做完了!開機的時候指定用 USB 開機就好。

若是 Windows 7 等舊的版本,會找不到這兩個檔案,所以還需要做以下設定:

  1. efi/microsoft/boot 複製到 efi/boot (cp efi/microsoft/boot efi/boot)

  2. 用 7z 打開 sources/install.wim,把 ./1/Windows/Boot/EFI/bootmgfw.efi 重新命名並複製到 USB 隨身碟的 efi/boot/bootx64.efi (bootia32.efi)

Reference: How can I create a Windows bootable USB stick using Ubuntu?

安裝 Windows

用 UEFI 開機後,選 USB 裡的 Windows 開機然後一步一步安裝就好,記得安裝在剛剛用 gparted 割出來的那一塊,不要手殘選錯。

檢查 grub2

通常這樣就能夠完成安裝雙系統的任務,除了 Windows 沒辦法休眠以外,我本身是沒有遇到進一步的問題。

如果 grub2 是壞的,那就需要那之前準備的 Live USB 出來修,請參考 這篇 修復的教學。