SSD Win8 系統盤 4K 無損對齊歷險記

一、背景:爲何要 4K 對齊

簇是系統在硬盤上讀寫文件時的單位,是一個數據塊(邏輯概念)。而扇區是硬盤劃分的最小單位值,就是簇(數據塊)佔用的地方(物理概念)。NTFS對於大於2GB的分區,默認簇大小爲8個扇區(4KB)。html

絕大多數的機械硬盤默認是512字節的扇區,採用的是DRAM做爲存儲介質; 而機械硬盤,不管是SLC顆粒仍是MLC顆粒,都屬於NAND閃存存儲單元。 這種硬盤的扇區是4K,這就是4K的由來。ios

NTFS格式有一個特性,那就是起始簇的位置! 
  NTFS分區起始位置不是從0開始,而是從LBA63開始,就是第六十三個扇區開始開始存儲。 
  並且NFTS默認認爲扇區是512字節大小,而不是智能調節到第六十三個扇區。 
  這樣問題就來了,63個扇區×512字節=31.5K,也就是說,磁盤的前31.5K是不能被使用的。 
  使用機械硬盤就算了,使用固態硬盤,存儲第一個字,也須要佔用31.5K-35.5K之間的磁盤扇區。 
  最過度的是這樣子排列下去,剛好每到一個扇區的4K位置,就會形成一個數據存2個扇區的狀況。
  並且這樣排列,只要到了那個能被4K整除的位置就100%佔用了2個扇區,哪怕只寫一個字。 
  固態硬盤不管是MLC仍是SLC,都是有寫入讀取次數的,這樣極大的損傷了性能和壽命。 並且,增長了讀取次數。 這個時候不管簇是多大,都會形成性能和空間的浪費。 
  因此這個問題就叫作4K!
windows

二、什麼是4K對齊?


  硬盤分區的時候有一個東西叫作物理存儲單元,俗稱簇。分區的時候能夠指定這個大小。這個簇不是硬盤的物理結構,而是使用方法。隨着時代發展,硬盤容量不斷擴展,使得以前定義的每一個扇區512字節再也不是那麼的合理,因而將每一個扇區512字節改成每一個扇區4096 個字節,也就是如今常說的「4K扇區」。隨着NTFS成爲了標準的硬盤文件系統,其文件系統的默認分配單元大小(簇)也是4096字節,爲了使簇與扇區相對應,即便物理硬盤分區與計算機使用的邏輯分區對齊,保證硬盤讀寫效率,因此,有了「4K對齊」的概念。
  傳統硬盤的每一個扇區固定是512字節,新標準的"4K扇區"的硬盤,硬盤廠商爲了保證與操做系統兼容性,也將扇區模擬成512B扇區,這時就會有4K扇區和4K簇不對齊的狀況發生。因此就要用「4K對齊"的方式,將硬盤模擬扇區對齊成「4k扇區」。「4K對齊」就是將硬盤扇區對齊到8的整數倍個模擬扇區,即512B*8=4096B,4096字節便是4K。因此只要是8的倍數都是4K對齊了。例如用win7系統對硬盤分區格式化時,默認是將硬盤扇區對齊到2048個扇區的整數倍,即512B*2048=1048576B=1024KB,即1M對齊,並知足4K對齊,該值只要是4096B的倍數就是4K對齊。
bash

三、如何作到無損 4k 對齊?

咱們平時說的硬盤4k對齊是指符合「4K扇區」定義格式化過的硬盤,而且按照「4K扇區」的規則寫入數據,4k對齊能夠避免在向硬盤寫入最小量的數據可能佔用兩個"4K扇區"的狀況出現(跟腳踏兩隻船的道理同樣),這樣能夠大大提升硬盤的讀寫性能。
不光SSD硬盤(固態盤)須要4k對齊,咱們如今用的普通機械硬盤也須要4k對齊,對齊的方法有不少,如今通常Win7/Win8的格式化工具進行格式化會自動對齊,DiskGenius這樣的分區工具也支持4k對齊,但這些方法都是在有損的狀況下進行的,也就是說會形成硬盤數據丟失。而Paragon Alignment Tool這款無損的硬盤4k對齊工具,能夠用來檢測並解決硬盤分區4k對齊問題,支持高級格式化驅動(AF驅動)、固態盤(SSD)以及獨立磁盤冗餘陣列(RAID),不會破壞原有硬盤分區的數據。
app

  • 無需重啓進行分區對齊操做 - 未鎖定的分區能夠在Windows中直接進行對齊。
  • 藍屏模式下的對齊操做 - 重啓系統進入藍屏模式,對正在使用的分區進行對齊操做。
  • 通用恢復CD(RCD) - 在未安裝PAT時Windows沒法檢測或對齊驅動時啓動您的系統。
  • 所有數據保護 - 在對齊操做突然中斷(好比電源中斷)時,數據依舊可以得到保護。

4.0 功能特點:工具

-支持Windows 8
-更快的對齊引擎
-如沒有安裝MSI程序包,能夠啓動WinPE環境對齊分區
post

具體的對齊操做方法還請參考文末的連接。性能

四、UEFI 下系統盤如何 4K 無損對齊?

Paragon Alignment Tool 理論上是能夠對 系統盤進行 4k 對齊的,由於系統盤處於鎖定狀態,必須重啓進入 DOS 狀態下對齊,可是 UEFI 下,Paragon Alignment Tool 引導會進入不了 DOS 模式,咱們只能放棄 UEFI 下的 Paragon Alignment Tool 系統盤對齊操做,另闢蹊徑。ui

具體工具:spa

(1)win8PE

(2)DiskGenius、Ghost 11.5

思路:

(1)先用 Ghost 備份 C 盤鏡像

(2)而後再用 DiskGenius 刪除 C 盤分區

(3)以 4k 對齊的方式(8扇區,4096字節)新建 C 盤分區

(4)格式化C盤,可能有提示保存分區表。點確認便可。

(5)最後再用 Ghost 恢復 C 盤鏡像便可。

五、遇到的問題:winload.efi missing or corrupt

說實話 Ghost 回去之後仍是滿懷期待進入系統的,結果藍屏報錯了,當時真是一臉懵逼。。。

若是真的淪落到要重裝系統的話估計得至少花一週的時間了,由於系統裏一堆軟件、各類開發環境和個性化設置。。。好在對 windows 還算了解,根據藍屏提示,初步斷定問題應該是在系統 uefi 引導這塊,而後找了幾個帖子還算順利的解決了。

Recovery

Your PC needs to be repaired.

The application or operating system couldn't be loaded because a required file is missing or contains errors.

File: \windows\system32\winload.efi

Error code: 0xc0000225

You'll need to use the recovery tools on your installation media. If you don't have any installation media (like a disc or USB device), contact your system administrator or PC manufacturer.

Press Enter to try again
Press F8 for Startup Settings
Press ESC for UEFI Firmware Settings

六、如何解決 UEFI 下的 winload.efi 丟失問題?

當uefi引導文件損壞,或ghost還原64位系統到C盤,因無uefi引導仍是不能啓動系統。
怎麼修復UEFI引導呢?

6.1 UEFI引導基本原理:

  • esp引導分區

            esp磁盤分區是gpt格式硬盤放efi引導文件的磁盤,在mbr格式硬盤中也能夠由任一fat格式磁盤分區代替

  • efi文件結構

      efi\boot\bootx64.efi
      efi\microsoft\boot\bcd

  • efi啓動過程

      uefi bios啓動時,自動查找硬盤下esp分區的bootx64.efi,而後由bootx64.efi引導efi下的bcd文件,由bcd引導指定系統文件(通常爲c:\windows\system32\winload.efi)

6.2 修復方法:


  6.2.1 用 bcbboot 自動修復


  咱們建議你們啓動64位8PE,用它帶的 bcdboot 來修復。
  (一)指定esp分區修復
  環境爲64位 win8PE,bios/uefi啓動進入下均可以
  一、啓動64位8PE,並用esp分區掛載器或diskgenuis掛載esp分區
  打開cmd命令行,輸入如下命令並運行 

bcdboot c:\windows /s o: /f uefi /l zh-cn


  其中:c:\windows  硬盤系統目錄,根據實際狀況修改
  /s o:     指定esp分區所在磁盤,根據實際狀況修改
  /f uefi   指定啓動方式爲uefi
  /l zh-cn  指定uefi啓動界面語言爲簡體中文
  注:64位7PE不帶/s參數,故7PE不支持bios啓動下修復
  (二)不指定esp分區修復
  環境爲64位Win7或Win8PE,只有uefi啓動進入Win PE才能夠(Legacy 進入 PE 不行)
  不用掛載esp分區,直接在cmd命令行下執行:
  bcdboot c:\windows /l zh-cn
  其中 c:\windows  硬盤系統目錄,根據實際狀況修改
  /l zh-cn  指定uefi啓動界面語言爲簡體中文
  注:在Win8 PE中,咱們也能夠在uefi啓動進入Win pe後,掛載esp分區用方法(一)修復

  6.2.2 用bootice手動修復


  從efi引導啓動過程來看,雖然它的文件不少,但主要用到的就是兩文件,咱們徹底能夠在各Win pe下掛載esp分區,從硬盤系統中複製bootx64.efi文件,而後用用bootice製做好bcd,就完成efi引導修復。
  一、啓動任一Win pe,用esp分區掛載器或diskgenuis掛載esp分區
  二、查看esp分區是否可正常讀寫,如不正常可從新格式化爲fat16分區格式。
  3.在esp分區中創建以下空文件夾結構
  \efi\boot\   (bootx64.efi等複製)
  \efi\microsoft\boot\ (bcd等創建)
  四、複製硬盤系統中的bootmgfw.efi(通常在c:\windows\boot\efi下)到esp分區的\efi\boot\下,並重命名爲bootx64.efi
  五、打開bootice軟件,有esp分區的\efi\microsoft\boot\下新創建一bcd文件,
  打開並編輯bcd文件,添加「windows vista\7\8啓動項,指定磁盤爲硬盤系統盤在的盤,指定啓動分區爲硬盤系統分區(通常爲c:)
  指定啓動文件爲:\Windows\system32\winload.efi, 是*.efi,不是*.exe,要手工改過來
  最後保存當前系統設置並退出。

  注:Winxp PE不能識別gpt格式的硬盤分區,用2003PE中的disk.sys替換xpPE內核中的相應文件,就可讓xpPE也能識別gpt磁盤格式分區
  指定啓動分區不是esp分區所在分區,就是硬盤64位Win七、Win8 系統所在分區
  指定啓動文件爲:\Windows\system32\winload.efi, 是*.efi,不是*.exe,要手工改過來
  

  6.2.3 其它問題


  一、手工運行ghost並不會修復esp分區
  二、用老大們的一鍵還原,如今慢慢加上了還原後esp引導修復功能,如實測深山的一鍵還原就自帶esp分區uefi引導修復
  三、用微軟原版系統光盤安裝或PE下安裝,固然都會自動修復esp引導。

        6.2.4 BIOS+UEFI引導修復工具

@echo off
:1
title BIOS+UEFI引導修復工具1.1
color 03
echo *******************************************************************************               
echo *                           BIOS+UEFI引導修復工具1.1                          *
echo *                                                                             *
echo ******************************************************************************* 
echo *                                                                             *
echo *          此工具主要用於修復Windows引導,兼容BIOS啓動和UEFI啓動。            *
echo *          同時也能夠用於修復多系統引導                                       *
echo *                                                                             *
echo *******************************************************************************
echo.
set /p A=請輸入Windows所在盤符:
echo.
set /p B=請輸入引導文件所在盤符:
echo.
echo Windwos所在盤符爲%A%,引導文件所在盤符爲%B%。肯定要修復嗎?
pause
if exist "%HOMEDRIVE%\Program Files (x86)" (
   goto x64
) else (
   goto x86
)

:x64
echo 正在修復引導。。。
bcdboot64 %A%:\windows /s %B%: /f all /l zh-cn
echo 已完成修復
pause
cls
goto 1

:x86
echo 正在修復引導。。。
bcdboot32 %A%:\windows /s %B%: /f all /l zh-cn
echo 已完成修復
pause
cls
goto 1

最終 SSD Win8 系統盤 4K 無損對齊效果以下:

    

Refer:

[1] 4K對齊選8,2048和4098扇區數有多大區別?實測告訴你

http://itbbs.pconline.com.cn/diy/52407606.html

[2] Paragon Alignment Tool(硬盤無損4k對齊工具) v4.0綠色版

http://www.ddooo.com/softdown/70747.htm

[3] 硬盤4k無損對齊工具Paragon Alignment Tool 4.0專業版(支持SSD及機械硬盤)

http://www.epinv.com/post/4698.html

[4] 2015最新SSD固態硬盤4K對齊分區教程(有損)

http://jingyan.baidu.com/article/363872ec3185246e4aa16f61.html

[5] 無損4K對齊教程-不損傷固態硬盤數據對齊教程

http://jingyan.baidu.com/article/851fbc3703af623e1f15ab95.html

[6] C盤(系統盤)無損4K對齊方法.開機速度提高20%+

http://tieba.baidu.com/p/1425336529

[7] winload.efi missing or corrupt: Fix for Windows 7, 8

https://neosmart.net/wiki/winload-efi-missing-corrupt/

[8] UEFI引導修復教程  

http://blog.163.com/ycy_sdfc/blog/static/196180420144183845261/

[9] I get 「Your PC needs to be repaired」 and 「Error code: 0xc0000225」 in Windows 8

http://bit.ly/1WKQNLt

相關文章
相關標籤/搜索