我目前有一个大小错误的分区,处于“严重损坏”状态。大多数恢复工具的第一个问题是:- 磁盘大小为 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 分区表结构的描述,维基百科上有相当不错的信息。