前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SSD Win8 系统盘 4K 无损对齐历险记

SSD Win8 系统盘 4K 无损对齐历险记

作者头像
用户1177713
发布于 2018-02-24 09:44:10
发布于 2018-02-24 09:44:10
3.3K00
代码可运行
举报
文章被收录于专栏:数据之美数据之美
运行总次数:0
代码可运行

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引导修复工具

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
300行代码不到的javafx框架tornadofx拼图游戏
不知道为什么分成9份的时候无法移动,请高手指教 分成36份的时候程序有可能卡住没反应 分成4份的时候有可能无法成功恢复原图 a2.gif heart2circle.zip 附件运行方式:解压后,双击文件:run.bat import javafx.application.Application import javafx.application.Platform import javafx.beans.property.SimpleObjectProperty import javafx.geome
用户6167008
2019/09/05
1.5K0
javafx框架tornadofx实战-益智游戏-找出指定的内容1
找到它.gif 布局与上一个案例舒尔特基本相似,来体验一下吧,代码也在同小异,直接上代码: 重要的事情说3遍: 动手敲代码!!!动手敲代码!!!动手敲代码!!! class MainAPP : App(MainView::class) class MainView : View("把指定的图片全都给我找出来") { private val c by inject<MainController>() lateinit var r: GridPane private val sue
用户6167008
2020/08/11
7300
javafx框架tornadofx实战-益智游戏-找出指定的内容1
二维码生成小工具,采用javafx框架tornadofx实现界面开发
[3zqf7zy13o.gif] import javafx.application.Application import javafx.beans.property.SimpleObjectProperty import javafx.embed.swing.SwingFXUtils import javafx.scene.image.Image import javafx.scene.image.WritableImage import tornadofx.* import javax.imageio.
用户6167008
2019/09/11
1.5K0
二维码生成小工具,采用javafx框架tornadofx实现界面开发
吃鱼小游戏,可以让小朋友练习键盘方向键和鼠标,采用javafx框架tornadofx实现
[ts8aa4beeu.gif] import javafx.application.Application import javafx.stage.Stage import javafx.scene.paint.Color import javafx.scene.text.Font import javafx.scene.text.FontWeight import javafx.animation.AnimationTimer import javafx.beans.Observable import
用户6167008
2019/09/04
1.1K0
吃鱼小游戏,可以让小朋友练习键盘方向键和鼠标,采用javafx框架tornadofx实现
来玩玩打地鼠游戏,300行代码不到
所用到的图片: 打地鼠.zip [mzijcqa487.gif] a2.gif 图1代码: import javafx.animation.KeyFrame import javafx.animation.Timeline import javafx.event.ActionEvent import javafx.event.EventHandler import javafx.geometry.Pos import javafx.scene.effect.DropShadow import javaf
用户6167008
2019/09/26
1.9K0
来玩玩打地鼠游戏,300行代码不到
来点学术的,求PI值动画
[nl0smucjfp.gif] import javafx.animation.KeyFrame import javafx.animation.Timeline import javafx.event.ActionEvent import javafx.event.EventHandler import javafx.geometry.Pos import javafx.scene.paint.Color import javafx.scene.shape.Circle import tornadofx
用户6167008
2019/09/27
7480
来点学术的,求PI值动画
javafx框架tornadofx实战-舒尔特6-增加导出舒尔特方格功能
本节需要导入以下3个类: import javafx.embed.swing.SwingFXUtils import javafx.scene.SnapshotParameters import ja
用户6167008
2020/06/15
8730
javafx框架tornadofx实战-舒尔特6-增加导出舒尔特方格功能
javafx框架tornadofx入门32_制作图标浏览工具
ikonli-viewer.gif 在build.gradle中添加如下依赖,ikonli=11.5.0: implementation("org.kordamp.ikonli:ikonli-javafx:$ikonli") implementation("org.kordamp.ikonli:ikonli-typicons-pack:$ikonli") implementation("org.kordamp.ikonli:ikonli-material-pack:$ikonli") implementa
用户6167008
2020/05/18
1.5K0
javafx框架tornadofx入门32_制作图标浏览工具
一颗心到一个圆的演变,javafx框架tornadofx动画演示
[or8lllfpxg.gif] import javafx.animation.AnimationTimer import javafx.application.Application import javafx.application.Platform import javafx.geometry.Pos import javafx.scene.canvas.GraphicsContext import javafx.scene.control.RadioButton import javafx.sce
用户6167008
2019/09/04
7900
一颗心到一个圆的演变,javafx框架tornadofx动画演示
javafx框架tornadofx实战-舒尔特8-增加统计功能
重要的事情说3遍: 动手敲代码!!!动手敲代码!!!动手敲代码!!! shuerte3.gif 新建StatisticView.kt文件,并添加到主视图的right drawer中: import javafx.scene.chart.* import tornadofx.* class StatisticView : View("统计") { private val c by inject<MainController>()//注入控制器 private var bc by singleA
用户6167008
2020/06/28
5521
javafx框架tornadofx实战-舒尔特8-增加统计功能
javafx框架tornadofx入门实战22_treeview
通过treeview构建文件(夹)树,就像windows文件管理器左侧的一样 treeview.gif import javafx.collections.FXCollections import javafx.collections.ObservableList import javafx.scene.control.TreeItem import javafx.scene.layout.Priority import tornadofx.* import java.io.File import ja
用户6167008
2020/03/25
7930
javafx框架tornadofx入门实战22_treeview
JavaFX 简介
本文介绍了JavaFX技术,并基于JavaFX编写了一个简单的图形界面程序。通过使用JavaFX,可以大大简化Java应用程序的开发过程,提高开发效率。同时,JavaFX也提供了一些常用的设计器,如SceneBuilder,可以方便地创建JavaFX应用程序。
乐百川
2018/01/09
6.1K0
JavaFX 简介
javafx框架tornadofx入门28_使用现有布局文件fxml
1.删除现有布局文件中的控制器,如: fx:controller="app.MainController" 2.在View中通过by fxml(fxmlPath)覆写root,fxml文件需放在资源目录resources 或其子目录如view下: override val root : TextArea by fxml("/view/MainView.fxml") 3.通过by fxid()引用对应id的控件,对于按钮的onAction="#hello"事件,直接定义相应的函数即可: val msg : L
用户6167008
2020/04/27
2.2K1
javafx框架tornadofx入门28_使用现有布局文件fxml
JavaFX入门(五):使用CSS样式美化你的UI控件
CSS(层叠样式表,Cascading Style Sheets)原来是被用来在网页开发中表现HTML元素样式的一种文本标记语言。HTML用来展现内容,CSS被用来设计内容的样式,这样做的好处就是内容和样式相分离。CSS先后被用到Adobe的RIA开发技术Flex,C++的GUI框架Qt以及JavaFX技术上。如果对CSS不是很熟悉,没关系,十分钟入门CSS的一个教程:W3CSchool CSS教程。
卡尔曼和玻尔兹曼谁曼
2019/01/22
10.8K0
JavaFX入门(五):使用CSS样式美化你的UI控件
javafx框架tornadofx画个心形
[zyv5mi8xkw.gif] import javafx.animation.AnimationTimer import javafx.application.Application import javafx.application.Platform import javafx.geometry.Pos import javafx.scene.canvas.GraphicsContext import javafx.scene.control.RadioButton import javafx.sce
用户6167008
2019/09/03
1.5K0
javafx框架tornadofx画个心形
JavaFX入门(四):JavaFX布局(一)
说道GUI编程一定要谈到布局,JavaFX内置了大量的布局控件提供给我们使用。其实,JavaFX的布局控件和界面元素控件都是继承自javafx.scene.layout.Region类。我们这里只看布局控件类。布局控件我们在界面上一般是看不到的,它一个容器用于放置其它可视的界面元素控件。(JavaFX在线API文档:JavaFX8 API Online) JavaFX布局控件的类图如下:
卡尔曼和玻尔兹曼谁曼
2019/01/22
12.3K1
JavaFX入门(四):JavaFX布局(一)
一颗心到一个圆的演变,javafx框架tornadofx动画演示
采用runAsync和Thread.sleep(10)实现动画效果 import javafx.geometry.Pos import javafx.scene.canvas.GraphicsContext import javafx.scene.control.RadioButton import javafx.scene.paint.Color import javafx.scene.text.FontWeight import tornadofx.* import java.util.* import
用户6167008
2019/09/16
6760
做了个简易浏览器
用tornadofx框架做了个简易浏览器 [bte4onz0ys.png] import javafx.concurrent.Worker import javafx.geometry.Orientation import javafx.scene.control.ListCell import javafx.scene.effect.Effect import javafx.scene.image.Image import javafx.scene.image.ImageView import javaf
用户6167008
2019/10/12
8870
做了个简易浏览器
Java一分钟之-JavaFX控件:Button, TextField, Label等
在JavaFX中,控件是构建用户界面的基础,它们允许用户与应用程序进行交互。常见的控件包括按钮(Button)、文本字段(TextField)和标签(Label),这些控件的正确使用是构建高效、直观GUI的关键。本文将简要介绍这些控件,讨论一些常见问题和易错点,并提供代码示例以帮助你更好地理解和应用。
Jimaks
2024/05/28
6180
Java一分钟之-JavaFX控件:Button, TextField, Label等
用javafx框架tornadofx演示分形图的绘制
用到了kotlin 协程、带方法的枚举类等知识点 [fqy75r4fs5.gif] import javafx.beans.property.SimpleObjectProperty import javafx.geometry.Orientation import javafx.scene.canvas.Canvas import javafx.scene.canvas.GraphicsContext import javafx.scene.control.TextFormatter import jav
用户6167008
2019/10/14
9020
用javafx框架tornadofx演示分形图的绘制
推荐阅读
相关推荐
300行代码不到的javafx框架tornadofx拼图游戏
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验