1. 程式人生 > 其它 >SSD Win8 系統盤 4K 無損對齊歷險記

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

1、背景:為什麼要 4K 對齊

簇是系統在硬碟上讀寫檔案時的單位,是一個數據塊(邏輯概念)。而扇區是硬碟劃分的最小單位值,就是簇(資料塊)佔用的地方(物理概念)。NTFS對於大於2GB的分割槽,預設簇大小為8個扇區(4KB)。

絕大多數的機械硬碟預設是512位元組的扇區,採用的是DRAM作為儲存介質; 而機械硬碟,無論是SLC顆粒還是MLC顆粒,都屬於NAND快閃記憶體儲存單元。 這種硬碟的扇區是4K,這就是4K的由來。

NTFS格式有一個特性,那就是起始簇的位置!    NTFS分割槽起始位置不是從0開始,而是從LBA63開始,就是第六十三個扇區開始開始儲存。    而且NFTS預設認為扇區是512位元組大小,而不是智慧調節到第六十三個扇區。    這樣問題就來了,63個扇區×512位元組=31.5K,也就是說,磁碟的前31.5K是不能被使用的。    使用機械硬碟就算了,使用固態硬碟,儲存第一個字,也需要佔用31.5K-35.5K之間的磁碟扇區。    最過分的是這樣子排列下去,恰好每到一個扇區的4K位置,就會造成一個數據存2個扇區的情況。   而且這樣排列,只要到了那個能被4K整除的位置就100%佔用了2個扇區,哪怕只寫一個字。    固態硬碟無論是MLC還是SLC,都是有寫入讀取次數的,這樣極大的損傷了效能和壽命。 而且,增加了讀取次數。 這個時候無論簇是多大,都會造成效能和空間的浪費。    所以這個問題就叫做4K!

2、什麼是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對齊。

3、如何做到無損 4k 對齊?

我們平時說的硬碟4k對齊是指符合“4K扇區”定義格式化過的硬碟,並且按照“4K扇區”的規則寫入資料,4k對齊可以避免在向硬碟寫入最小量的資料可能佔用兩個"4K扇區"的情況出現(跟腳踏兩隻船的道理一樣),這樣可以大大提高硬碟的讀寫效能。 不光SSD硬碟(固態盤)需要4k對齊,我們現在用的普通機械硬碟也需要4k對齊,對齊的方法有很多,現在一般Win7/Win8的格式化工具進行格式化會自動對齊,DiskGenius這樣的分割槽工具也支援4k對齊,但這些方法都是在有損的情況下進行的,也就是說會造成硬碟資料丟失。而Paragon Alignment Tool這款無損的硬碟4k對齊工具,可以用來檢測並解決硬碟分割槽4k對齊問題,支援高階格式化驅動(AF驅動)、固態盤(SSD)以及獨立磁碟冗餘陣列(RAID),不會破壞原有硬碟分割槽的資料。

  • 無需重啟進行分割槽對齊操作 - 未鎖定的分割槽可以在Windows中直接進行對齊。
  • 藍屏模式下的對齊操作 - 重啟系統進入藍屏模式,對正在使用的分割槽進行對齊操作。
  • 通用恢復CD(RCD) - 在未安裝PAT時Windows無法檢測或對齊驅動時啟動您的系統。
  • 全部資料保護 - 在對齊操作忽然中斷(比如電源中斷)時,資料依舊能夠獲得保護。

4.0 功能特色:

-支援Windows 8 -更快的對齊引擎 -如沒有安裝MSI程式包,可以啟動WinPE環境對齊分割槽

具體的對齊操作方法還請參考文末的連結。

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

Paragon Alignment Tool 理論上是可以對 系統盤進行 4k 對齊的,因為系統盤處於鎖定狀態,必須重啟進入 DOS 狀態下對齊,但是 UEFI 下,Paragon Alignment Tool 引導會進入不了 DOS 模式,我們只能放棄 UEFI 下的 Paragon Alignment Tool 系統盤對齊操作,另闢蹊徑。

具體工具:

(1)win8PE

(2)DiskGenius、Ghost 11.5

思路:

(1)先用 Ghost 備份 C 盤映象

(2)然後再用 DiskGenius 刪除 C 盤分割槽

(3)以 4k 對齊的方式(8扇區,4096位元組)新建 C 盤分割槽

(4)格式化C盤,可能有提示儲存分割槽表。點確認即可。

(5)最後再用 Ghost 恢復 C 盤映象即可。

5、遇到的問題: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: windowssystem32winload.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

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

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

6.1 UEFI引導基本原理:

  • esp引導分割槽

            esp磁碟分割槽是gpt格式硬碟放efi引導檔案的磁碟,在mbr格式硬碟中也可以由任一fat格式磁碟分割槽代替

  • efi檔案結構

      efibootbootx64.efi       efimicrosoftbootbcd

  • efi啟動過程

      uefi bios啟動時,自動查詢硬碟下esp分割槽的bootx64.efi,然後由bootx64.efi引導efi下的bcd檔案,由bcd引導指定系統檔案(一般為c:windowssystem32winload.efi)

6.2 修復方法:

 6.2.1 用 bcbboot 自動修復

  我們建議大家啟動64位8PE,用它帶的 bcdboot 來修復。 (一)指定esp分割槽修復   環境為64位 win8PE,bios/uefi啟動進入下都可以   1、啟動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引導修復。   1、啟動任一Win pe,用esp分割槽掛載器或diskgenuis掛載esp分割槽   2、檢視esp分割槽是否可正常讀寫,如不正常可重新格式化為fat16分割槽格式。   3.在esp分割槽中建立如下空資料夾結構   efiboot   (bootx64.efi等複製)   efimicrosoftboot (bcd等建立)   4、複製硬碟系統中的bootmgfw.efi(一般在c:windowsbootefi下)到esp分割槽的efiboot下,並重命名為bootx64.efi   5、開啟bootice軟體,有esp分割槽的efimicrosoftboot下新建立一bcd檔案,   開啟並編輯bcd檔案,新增“windows vista78啟動項,指定磁碟為硬碟系統盤在的盤,指定啟動分割槽為硬碟系統分割槽(一般為c:)   指定啟動檔案為:Windowssystem32winload.efi, 是*.efi,不是*.exe,要手工改過來   最後儲存當前系統設定並退出。

  注:Winxp PE不能識別gpt格式的硬碟分割槽,用2003PE中的disk.sys替換xpPE核心中的相應檔案,就可以讓xpPE也能識別gpt磁碟格式分割槽   指定啟動分割槽不是esp分割槽所在分割槽,就是硬碟64位Win7、Win8 系統所在分割槽   指定啟動檔案為:Windowssystem32winload.efi, 是*.efi,不是*.exe,要手工改過來

6.2.3 其它問題

  1、手工執行ghost並不會修復esp分割槽   2、用老大們的一鍵還原,現在慢慢加上了還原後esp引導修復功能,如實測深山的一鍵還原就自帶esp分割槽uefi引導修復   3、用微軟原版系統光碟安裝或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