將安裝好的 Windows 改成 UEFI 開機


現在電腦新安裝 Windows 的話,應該都會使用 UEFI 來安裝了;Heresy 自己的電腦,基本上也都是使用 UEFI 來開機了,而之前也有寫了一篇簡單的《更換 Windows 10 的 UEFI 開機硬碟經驗》的紀錄。

不過,如果硬體廠商預先裝好作業系統的電腦的話,其實有可能還是採用傳統模式來安裝、而不是 UEFI 模式。而以筆記電腦來說,有的時候會有一些特別的裝置/驅動程式,讓使用者難以自己安裝作業系統,只能採用升級的方法來更新作業系統(比如說 Sony…)。

那在這種沒辦法重灌的情況之下,要怎麼把現有的 Windows 轉移到 UEFI 模式呢?實際上,在微軟的 TechNet 上就有一篇《Converting Windows BIOS installation to UEFI》,在介紹如何做到這件事。

Heresy 這邊就是透過這篇文章的方法,把 Sony VAIO SVZ13 這台電腦,在從 Windows 7 升級到 Windows 10 之後,又轉換成 UEFI 開機。目前看來,這個方法是可以成功轉換的,所以也稍微在這邊紀錄一下步驟。

要進行這個轉換的話,基本上還是建議要先把全系統做一個備份,以免失敗了完全無法開機、然後整台電腦無法使用;所以,找軟體做個全系統備份,還是比較安全的。

下面則是執行的步驟:

  1. 準備 Windows 開機光碟、或是系統修復光碟

    如果手邊有可以用來開機的 Windows 安裝光碟的話,基本上可以直接拿來用。不過如果沒有的話,則就需要建立一張「系統修復光碟」。

    在 Windows 10 下要建立「系統修復光碟」的話,可以在「設定」中選取「更新與安全性」中的「備份」,然後右邊會有「移至 [備份與還原] (Windows 7)」的選項;點選這個選項後,會開啟對應的新視窗,在左側就會有「建立系統修復光碟」的選項了。

    另外,如果手邊沒有適合用來做全系統備份的軟體,其實也可以透過這邊的「建立系統映像」的功能,來做全系統的備份。

  2. 將系統硬碟由 MBR 轉換成 GPT

    這邊微軟是建議使用「gptgen」這個免費工具(連結)來進行。這邊是要使用有系統管理員權限的命令提示字元,來執行下面的指令:

    gptgen.exe -w \\.\physicaldrive0

    不過這邊要注意,雖然一般系統硬碟都會是第一個、編號會是 0,但是最好還是先確認一下。而確認的方法,則可以使用 Windows 內建的「磁碟管理」工具來做確認。

  3. 使用光碟修改系統分割區、重建開機資料

    1. 使用 Windows 安裝光碟或系統修復光碟開機、並進入命令提示字元

      使用系統修復光碟和安裝光碟的選項會不太一樣,這邊 Heresy 是以安裝光碟的選項來做紀錄。

      1. 使用安裝光碟開機後,一開始是要選擇要使用的語系
      2. 選擇好之後,除了在中間會有一個「立即安裝」的按鈕外,左下角會有一個「修復您的電腦」(Repair Your Computer)的連結,這邊請點選「修復您的電腦」。
      3. 點選「疑難排解」(Troubleshoot )
      4. 點選「進階選項」(Advanced options)
      5. 點選「命令提示字元」(Command Prompt )

      如此一來,就會有一個命令提示字元的視窗出現了~接下來的指令,都是在這個視窗下面進行的。

    2. 使用 DiskPart 編輯系統硬碟分割區
      1. 執行「diskpart」這個指令,進入 DiskPart 這個程式環境

      2. 選取系統硬碟

        透過「list disk」這個指令,列出目前系統上的硬碟,並透過「select disk 0」來選取系統硬碟(這邊假設系統硬碟編號為 0)

      3. 刪除原有的 350MB 的系統開機磁碟分割(Partition)

        這邊先使用使用「list partition」這個指令,列出目前選取的磁碟機上的所有的磁碟分割,然後找出要刪除的 350MB 系統保留分割區。

        一般來說,這個磁碟分割的編號會是 1,所以要刪除這個分割區的話,指令就是:

          select partition 1
          delete partition

        不過要注意的是,像是 Sony SVZ 由於還有一個 21GB 的還原用分割區,所以其實要處理的分割區會是 2 號;這點要確認一下,小心不要刪錯了。

      4. 建立 100MB 的 EFI 磁碟分割

        在刪了了原本的開基資料分割區後,要再建立一個 100MB 的 EFI 分割區,並將它格式化為 FAT32、取名為「System」,然後在指定他的磁碟代號是「S」。其指令依序是:

        create partition EFI size=100 offset=1
        format quick fs=fat32 label="System" 
        assign letter=S

        不過,Heresy 不太確定這邊將「offset」 設定為 1 的目的?

        在 SVZ 上,由於前面還有一個 21GB 的還原分割區,所以 offset 不可能設定成 1;Heresy 在這邊是直接把「offset=1」拿掉,看來也是沒問題的。

      5. 建立 128MB 的 MSR 磁碟分割

        這邊的指令是

        create partition msr size=128 offset=103424 

        和前一步一樣,「offset」在這邊應該不能沿用這個值;Heresy 這邊也是把它直接拿掉了。

      6. 設定系統磁碟區(volume)的代號

        接下來,則是要找出硬碟上的作業磁碟區的編號,並將他的磁碟代號設定為「C」。其指令如下:

        list volume
        select volume 3
        assign letter=C 

        這邊也要確認一下,Windows 到底是安裝在哪一個磁碟區。

      7. 執行「exit」、離開 DiskPart

    3. 重建開機資料

      這邊的指令是:

      bcdboot c:\windows /s s: /f UEFI 

  4. 重開機,在 BIOS 中將開機選項設定為 UEFI

理論上,這樣應該就可以了。至少,Heresy 這邊是進行得很順利啦~

不過老實說,真要玩的話,其實還有幾點是可以做的。

首先,是這樣的處理方法,其實會浪費掉一些硬碟空間。因為之前把 350MB 的分割區刪除了,但是卻只有重新建立 100MB + 128MB 的分割區,所以會有 122MB 的空間會變成為配置的狀態。

再來,反正都已經打算額外做全系統備份了,所以應該是可以考慮把前面那個 21GB 的系統還原分割區整個做掉、讓可使用空間更大才對…

不過考慮到整個分割區的調整,應該是一定要使用其他磁碟管理工具來處理才行了。

對「將安裝好的 Windows 改成 UEFI 開機」的想法

  1. 你好
    我遭遇到一個問題 就是在最後一個步驟 出現"嘗試複製開機檔案出現失敗" 請問該怎麼辦
    謝謝

  2. 你好~
    請問我出現以下
    Not enough space at the beginning of the disk (need at least34 sectors before
    the start of the first partition).
    Re-partition the disk to meet this requirement, and run this utility again.
    是為甚麼會這樣?可以幫我解答嗎?
    感謝~

    • 前段分割區空間不足,基本上要重新調整分割區才能解決。
      如果不想重灌,就需要找一些可以在不損失資料下調整磁碟分割區的工具程式來用了。

  3. 超級感謝你!! 用你的方法,救援我手殘刪除MSR分割區就開不了windows10的痛苦。
    還有過程中 offset=1 打了不給用,會反映參數錯誤,沒他反而可以進行下去。

      • size= n
        邏輯磁碟機的大小以 MB 表示。如果未指定大小,則磁碟分割會繼續,直到目前的區域中沒有多餘的可用空間為止。
        offset= n
        只套用至主開機記錄 (MBR) 磁碟。建立邏輯磁碟機的位元組位移。位移會進行快照式磁柱處理;亦即,此位移約為完全填滿使用的磁柱大小。如果沒有指定位移的話,則磁碟分割會置於足夠容納它的第一個磁碟範圍內。磁碟分割的長度至少要與 size=n 所指定的數目一樣長 (單位:位元組)。如果為邏輯磁碟機指定大小,則其必須小於延伸磁碟分割。

        看了一下,發現不太了解[位移]的意思,是再說磁碟分割起始位置嗎??
        如果是那我offset會出問題就是我根本亂打 @@"
        都打offset=1 …..

  4. 相當的感謝你
    我參考了你的方法成功改了2台電腦
    我是使用win10PE的工具USB碟
    用win10PE內的Disk Genius先將硬碟改成GPT格式並把傳統引導磁區刪除
    然後直接用命令提示字元下指令建立UEFI引導磁區
    而offset的部分我發現是指要畫的起始磁區位置
    如果不指定會自動從硬碟上最後的磁區位置開始分割

    • offset 的確是用來設定起始位置,Heresy 無法理解的是,為什麼他要設定為 1…
      感覺上這個位移是沒意義的啊。 @@

發表留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料