將安裝好的 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 的系統還原分割區整個做掉、讓可使用空間更大才對…

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

Advertisements

關於 Heresy
https://kheresy.wordpress.com

6 Responses to 將安裝好的 Windows 改成 UEFI 開機

  1. sean says:

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

    喜歡

    • Heresy says:

      offset 應該是存在的參數,不過可能是在某些狀況下會出現錯誤吧?
      https://technet.microsoft.com/zh-tw/library/cc766465.aspx

      喜歡

      • sean says:

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

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

        喜歡

        • Heresy says:

          當然不能亂打啊… @@
          一般來說,應該是可以不用指定,讓他自動去調整。

          喜歡

  2. alen says:

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

    喜歡

    • Heresy says:

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

      喜歡

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: