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: \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

6、如何解决 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启动进入下都可以   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分区中建立如下空文件夹结构   \efi\boot\   (bootx64.efi等复制)   \efi\microsoft\boot\ (bcd等建立)   4、复制硬盘系统中的bootmgfw.efi(一般在c:\windows\boot\efi下)到esp分区的\efi\boot\下,并重命名为bootx64.efi   5、打开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位Win7、Win8 系统所在分区   指定启动文件为:\Windows\system32\winload.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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏赵俊的Java专栏

Hexo搭建 --- 2、Hexo主题安装与配置

5884
来自专栏伪君子的梦呓

安装和配置 Eclipse

之前安装了 Java 并且配置好了 Java 的环境变量,现在来搞一下开发环境,下面就是下载安装和配置 Eclipse 的教程。

4611
来自专栏along的开发之旅

Siemens NX 9.0和 UG 4.0 同时安装

主要是解决能还是不能的问题,答案是确定的,能。Siemens NX 9.0的licence Server可以管理UG 4.0的licence。

881
来自专栏QQ音乐技术团队的专栏

electron 构建跨平台桌面应用

昨日(2016.09.13)本文发表后,获得了一定的阅读和转发量,但经部分网友反馈和仔细审核后发现,在与 NW.js 对比的环节,言辞欠妥,且数据的真实性有待考...

1.2K11
来自专栏自由而无用的灵魂的碎碎念

Mac快速上手指南

上周刚入手了2017版MacBookPro,预装macOS High Sierra。第一次接触Mac系统,经过一周的使用,简单总结下与Windows相比最常用的...

1693
来自专栏源码之家

Apache启动后又停止的解决办法

今天星期天,加班,但没什么工作任务,本打算好好把武术藏经阁网站搞一搞,没想到打开电脑,却是APACHE无法启动,找了半天,以前一般都是端口占用情况,今天改了端口...

3332
来自专栏张善友的专栏

微信官方开源UI库-WeUI

概述   WeUI是一套同微信原生视觉体验一致的基础样式库,为微信Web开发量身设计,可以令用户的使用感知更加统一。包含button、cell、dialog、...

5055
来自专栏Alan's Lab

在 Angular 2 Component 中使用第三方 JS 库

本文所有内容以 Angular 2 Quick Start 项目为基础,使用 TypeScript 语言。

1923
来自专栏Python中文社区

优雅的在终端中编写Python

專 欄 ❈PytLab,Python 中文社区专栏作者。主要从事科学计算与高性能计算领域的应用,主要语言为Python,C,C++。熟悉数值算法(最优化方法,蒙...

3317
来自专栏IMWeb前端团队

Atom编辑器配置

本文作者:IMWeb 黄龙 原文出处:IMWeb社区 未经同意,禁止转载 Atom 是 Github 专门为程序员推出的一个跨平台文本编辑器。具有简洁...

3957

扫码关注云+社区

领取腾讯云代金券