需要 FAT32 分区提示的十六进制编辑

需要 FAT32 分区提示的十六进制编辑

我目前有一个大小错误的分区,处于“严重损坏”状态。大多数恢复工具的第一个问题是:- 磁盘大小为 9*10x 单位。- 逻辑分区从 2*10x 单位开始 - 逻辑分区在 6*10x 单位结束。由于分区表损坏。- 逻辑分区结束应设置为 2*10x 单位(整个驱动器)。

除了在 fdisk 源上施展“读取全部”咒语之外,关于直接编辑 Intel(传统)分区表的好文档是什么?

我的意思是,如果有一个 fdisk 版本,可以告诉它:“将分区设置为从簇 X 开始,从簇 Y 结束” - 就可以了。

如果有一个 GUI 工具可以更改数据,而无需执行实际的“智能调整大小魔法” - 那就没问题。

如果有关于直接逐字节更改分区表信息的好文档 - 那也可以。

答案1

呵呵,呵呵。这让我想起了以前的事情。很久以前,在 Win3.1 时代,有一个软件包正是您正在寻找的。它被称为 PCTools,有一个十六进制编辑器,可以直接编辑分区表(以及主引导记录)。如果您由于某种原因分区未对齐,您可以用 DOS FDISK 永远无法做到的方式修复它。它帮助我修复了一些问题。不过,它已经从谷歌上消失了。

目前,有几个 Linux fdisk 程序允许您逐个扇区设置分区限制。这样做很危险,但确实存在。


警告

这是脑部手术。你可以真的如果你做错了,就把事情搞砸了。


那太偏僻了...

找到您喜欢的 USB-Linux 或 DVD-Linux,它们都应该有您想要的东西。进入命令行,如果您还没有进入 root 模式,请进入 root 模式,然后启动它。

fdisk /dev/sda

设置选择U以更改单位。p将打印您的分区表。

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63      144584       72261   83  Linux
/dev/sda2          144585   415424834   207640125   8e  Linux LVM

边注:如果我在这台机器上安装了固态硬盘,/dev/sda1 就会错位。它应该从扇区 64 开始,而不是 63。

记下您的分区,并将它们写下来。它们的起始位置、结束位置、块数以及分区 ID 是什么。您将需要这些内容。

最简单的方法是删除整个分区表并写入新的分区表,并使用所需的参数。如果你操作正确,它应该会恢复。

o命令将写入一个新的空白分区表。该n命令将创建一个新的分区表;选择您的分区类型、分区的起始位置和结束位置(您已记下)。完成后,该t命令将允许您更改分区类型,因为它将默认为 Linux (83),而您可能不希望这样。使用您记下的代码。

对每个需要的分区重复此操作。完成后,w命令将提交您的工作。您可能需要重新启动才能查看是否有效。


更高级的方法是直接更改坏分区。这需要做很多工作,而且我对具体步骤不太清楚,因此我不会写下来,以免导致您电脑变砖。

答案2

不幸的是,这不是对您的问题的直接回答(我刚注册,还没有 50 点声誉),而是对 SysAdmin1138 所说的一个旧的 DOS 专用工具 PCTools 的回答。有一个名为 vetusware.com 的网站(网站标题:“世界上最大的免费废弃软件下载集合”)。网站上没有搜索表单,但快速谷歌搜索“site:vetusware.com pc tools”让我找到了一个他可能指的链接。但尚未确认该软件是否合法。

答案3

如果你正在寻找 MBR 分区表结构的描述,维基百科上有相当不错的信息。

相关内容