• 分区表错误-有惊无险

    post by Holmesian / 2009-6-25 17:57 Thursday
    我昨天折腾windows 7   ,因为一个非常之特殊的情况,导致了一块硬盘的分区表错乱:由分区表的信息指出,该硬盘有无限个分区。 在这种情况下,所有常规的工具都无法使用,例如Win PE 、PQ 、NTFS for DOS、效率源等等,只要是工作前需要访问并遍历分区表的工具统统无法使用。原因就在于分区表遍历,因为分区是无限多个的,所以遍历的时间也是无限多的

    这种情况让人异常郁闷,而且是经过一番探索才发现硬盘成为了现在这样。最终通过Ubuntu下的fdisk命令挽救了这块硬盘,并成功地找回了80%以上的数据。





    引用
    最近分区表出问题的人好像很多啊,我把以前写的一些帖子翻出来总结归类一下,希望对大家有帮助。

    ubuntu 的安装程序对于分区表的错误是零容忍。出错的分区表在安装到了分区这一步时安装程序不会给出原来的任何分区信息,你只能抹掉整个硬盘或者退出安装,修理你的分区表。gparted 也是这种性格。这么做还是有道理的,不在已经有问题的分区表上继续捣乱。
    当然,除了分区表错误,另一种原因,8.10 之后的安装程序在有分区被挂载的情形下也会无法分区,这通常发生在硬盘安装的情况下。这不是我今天要讨论的。
    如果你是用光盘安装,可以识别硬盘,但是无法看到分区,这基本上就可以被断定是分区表出问题了。通常,你应该运行如下几个命令来得到细节。

    sudo fdisk -l
    这会告诉你 mbr 型分区表的详细信息。有时候,给出更细的细节也是很好的:
    sudo fdisk -lu

    sudo parted /dev/sda print
    这会告诉你是什么东西出错了。如果没有出错,会给出分区信息。如果有不止一块硬盘,还可以运行
    sudo parted /dev/sdb print
    等等。8.10 之后,你可以用 sudo parted -l 来一次性得到所有硬盘的信息。
    根据这些信息,你可以判断你的问题是下面的哪一种:


    ? 超出磁盘边界的分区,较常见,把超出磁盘的分区缩小即可。举例:
    安装ubuntu8.04出现无法选择分区!
    安装8.04出现的问题

    ? 扩展分区之内的主分区,这个最为常见,是“分区重叠”的一种。
    如果不伴随着主分区之间重叠、逻辑分区之间重叠,或主分区和逻辑分区之间重叠,如果不重新安装操作系统,这样的分区表可以长期正常使用,不会造成数据丢失,但是要避免操作分区表。
    要重装 ubuntu 的话,需要修理分区表。简单的办法是备份后删除误入扩展分区的主分区。动手前用 dd 备份一下主分区表也是很好的。好像有什么软件可以把主分区转换为逻辑分区,我没有用过,不知道好不好用。
    我见到的分区表问题,绝大多数是这一类,一抓一大把。下面是几个例子。
    [已解决]ubuntu Live CD能访问分区,但Gparted却认不出来,无法安装ubuntu了……
    [已解决]Cannot Install Ubuntu 8.04
    [已解决]菜鸟安装受挫!找不到硬盘分区!抓图寻求解决办法!!
    [已解决][问题]分区表交错了该怎么解决?

    ? 扩展分区之外的逻辑分区和扩展分区之内的主分区
    Ghost恢复xp,无法进系统了

    ? 真正的分区重叠,我指主分区之间重叠、逻辑分区之间重叠,或主分区和逻辑分区之间重叠,是危险的。数据随时可能丢失。当重叠的两个分区的前一个分区剩余空间较多时,数据还没有被写到重叠部分,看起来可以正常,一旦数据被写到重叠部分,就是下一个分区的起始处,那里有对于那个分区致命重要的信息,那个分区就完蛋了。如果那个分区是逻辑分区,那里还有指向再下一个逻辑分区的指针,于是逻辑分区的链被砍断,后面所有的逻辑分区丢失。
    真正的分区重叠还是比较罕见的。下面有一例,除了主分区跑到扩展分区里面的这种“无害”的“分区重叠”之外(在下面帖子第二页),还有真正的分区重叠 - "c盘" 和 "d盘"重叠(在第三页):
    光盘引导安装无法读出分区信息(已解决!)

    ? 循环的逻辑分区链,极为罕见:
    双系统,ghost覆盖了win之后分区表出问题,求解决

    ? (安装过 OS X 可能发生的问题) 残留的 gpt 分区表标志,在曾经使用过 gpt 分区表的磁盘上用 xp 安装程序重新分区并不会抹去 gpt 标志,因为 xp 对 gpt 一无所知。
    [求助] ubuntu 光盘安装不能识别已有分区
    (已解决)光盘安装8.04无法显示分区,wubi安装提示找不到根分区目录

    这些错误是怎么产生的?我不大清楚,因为我的分区表还没有变成这样过。我的建议是尽量使用系统自带的工具来分区,xp 的磁盘管理,linux 的 gparted,OS X 的磁盘工具,都比较可靠。混用多种第三方分区工具多次调整分区可能不太好。
    另外,打算安装 linux 的,不应该在 windows 里用可疑的工具准备 linux 的分区,用磁盘管理留出空白空间或者把分区格式化为 fat 就好了,在安装 linux 时让安装程序创建分区或格式化分区即可。如果预留给 linux 的空间位于两个分区之间,我更倾向于在 windows 中把预留给 linux 的分区大小规划好并先格式化为 fat,因为 ubuntu 在这样的空白空间创建分区的时候会使分区乱序。分区乱序不是错误,但 windows 一有机会就会试图把它排列整齐从而引起 grub 的问题。就是说,如果你的分区是乱序的,就永远不要使用 windows 的分区软件。
    经常使用可疑分区工具的各种“高级功能”,我猜想也是引起问题的原因。我相信复杂的功能总是 bug 滋生的地方。比如挪动分区,如果软件处理不当,可以把逻辑分区挪到扩展分区之外;把主分区“转换”为逻辑分区,如果你成功地在一个主分区的两侧都制造出了逻辑分区,那么扩展分区必然要跨越一

    说两句:

    Z
    2009-07-01 17:15
    找回80%的残缺不全的数据不太有什么意义找回的80%是完整数据

    丢失的那些是已经被破坏了的

    发表评论: