分区表错误-有惊无险
昨天我在折腾 Windows 7 的时候,遇到了一个非常特殊的情况,导致一块硬盘的分区表错乱。根据分区表的信息显示,该硬盘似乎拥有无限个分区。在这种情况下,所有常规的工具都无法正常使用,像 Win PE、PQ、NTFS for DOS、效率源等等,只要是在工作前需要访问并遍历分区表的工具都派不上用场。这是因为分区表遍历的问题,由于分区数量显示为无限个,所以遍历所需的时间也就趋近于无限长。
这种情况真的让人感到特别郁闷,而且我也是经过一番探索才发现硬盘变成了这样。不过,最终我通过在 Ubuntu 下使用 fdisk
命令挽救了这块硬盘,并且成功找回了 80% 以上的数据。最近似乎分区表出现问题的人还不少呢,所以我把以前写的一些相关帖子找出来进行总结和归类,希望能对大家有所帮助。
一、Ubuntu 安装程序与分区表错误
Ubuntu 的安装程序对于分区表的错误是零容忍的。当分区表出错时,在进行到安装的分区步骤时,安装程序不会显示任何原有的分区信息,此时你要么抹掉整个硬盘,要么退出安装,然后去修复分区表。gparted
工具也是如此,这样做其实是有道理的,避免在已经有问题的分区表上继续造成问题。
当然,除了分区表错误,还有另一种情况,在 Ubuntu 8.10 之后的安装程序中,如果存在分区被挂载的情况,也会导致无法分区,这种情况通常发生在硬盘安装时,但这不是我们今天要重点讨论的内容。
如果你使用光盘安装系统,能够识别硬盘却看不到分区,那么基本上可以判定是分区表出现了问题。通常,你可以运行以下几个命令来查看详细信息:
(一)查看 MBR 型分区表的详细信息
sudo fdisk -l
(二)查看更详细的细节
sudo fdisk -lu
sudo parted /dev/sda print
这些命令会告诉你是哪里出了问题。如果分区表没有出错,会给出分区信息。
(三)查看多块硬盘的信息
如果有不止一块硬盘,还可以运行:
sudo parted /dev/sdb print
在 Ubuntu 8.10 之后,你可以使用以下命令一次性获取所有硬盘的信息:
sudo parted -l