如何修复主引导记录中的分区表问题

日期: 2010-06-10 作者:Sander van Vugt翻译:蔺建超 来源:TechTarget中国 英文

在本系列的最后一部分,你已经学会如何修复主引导记录中发生的问题。它教你如何在删除之后进行恢复。现在我们继续进行主引导记录中分区表的疑难解答。如果没有分区表,你就不能访问电脑硬件驱动器的任何信息。

所以如果分区表丢失,恢复它是相当关键的。   在一般情况下,你可能会遇到关于分区的两个不同种类的问题。你可能已经失去了整个分区表,或者只是一个分区的文件系统有问题。现在,你将学会如何恢复分区表。

要做到这个,你需要你的急救CD,并找到你的服务器硬盘分区的开始和结束的确切信息。一旦你找到这些信息,你可以用来重新分区。下面的过程教你怎么实现。   1. 从急救CD启动你的服务器,并确定你打开一个有root权限……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

在本系列的最后一部分,你已经学会如何修复主引导记录中发生的问题。它教你如何在删除之后进行恢复。现在我们继续进行主引导记录中分区表的疑难解答。如果没有分区表,你就不能访问电脑硬件驱动器的任何信息。所以如果分区表丢失,恢复它是相当关键的。

  在一般情况下,你可能会遇到关于分区的两个不同种类的问题。你可能已经失去了整个分区表,或者只是一个分区的文件系统有问题。现在,你将学会如何恢复分区表。要做到这个,你需要你的急救CD,并找到你的服务器硬盘分区的开始和结束的确切信息。一旦你找到这些信息,你可以用来重新分区。下面的过程教你怎么实现。

  1. 从急救CD启动你的服务器,并确定你打开一个有root权限的控制台。

  2.输入gpart /dev/sda来搜索所有分区的硬盘驱动器。这可能需要5秒到一个小时。一旦结束,将显示你的分区信息。

  root@Knoppix:~# gpart /dev/sda
  Begin scan...
   Possible partition(Linux ext2), size(7789mb), offset(0mb)
   Possible extended partition at offset(7789mb)
     Possible partition(Linux swap), size(400mb), offset(7789mb)
  End scan.
  Checking partitions...
   Partition(Linux ext2 filesystem): primary
   Partition(Linux swap or Solaris/x86): primary
  Ok.
  Guessed primary partition table:
  Primary partition(1)
     type: 141(0x83)(Linux ext2 filesystem)
     size: 7789mb #s(15952480) s(63-15952542)
     chs:  (0/1/1)-(992/254/61)d (0/1/1)-(992/254/61)r
  Primary partition(2)
     type: 140(0x82)(Linux swap or Solaris/x86)
     size: 400mb #s(819248) s(15952608-16771855)
     chs:  (993/1/1)-(1023/254/63)d (993/1/1)-(1043/254/59)r
   Primary partition(3)
    type: 000(0x00)(unused)
    size: 0mb #s(0) s(0-0)
    chs:  (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r
 
  Primary partition(4)
     type: 000(0x00)(unused)
     size: 0mb #s(0) s(0-0)
     chs:  (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r

  仔细评估gpart提供的信息,毕竟gpart代表猜测分区。它进行猜测,仅此而已。在实验服务器上,我输入一个逻辑分区/dev/sda5。你可以看到,gpart找出交换分区的正确大小,硬盘上的起点和重点,但是无法确认这是一个逻辑分区。基于这些信息,你可以尝试在/dev/sda2上重建交换分区。你的服务器从该分区启动,但是也会出现错误。没关系,因为一旦启动,你可以检查系统文件(例如/etc/fstab)来找出你原本的分区,并且进行修复。

  3. 现在你已经找到了原始分区边界,写下它们并通过fdisk /dev/sda打开fdisk。它显示给你磁盘的大小信息,输入n以启动建立新分区的界面。接下来,输入p来创建第一个主分区。它询问要指派的分区号,输入1。

  4. 接下来是很重要的一步:你需要找出分区的起点和终点。要找出这些信息,你需要gpart为分区输出的C/H/S行。看一下下面的例子。

  chs:  (0/1/1)-(992/254/61)d (0/1/1)-(992/254/61)r

  括号之间的第一个数字表示原始开始柱面,这个例子中是柱面0。括号内数字的第二部分告诉你分区最初的终点,在这个例子中是在柱面992。有一个问题:在fdisk中,开始柱面是柱面1。这意味着gpart显示的所有其他柱面都是从柱面1开始增加的。所以你不得不建立一个分区,从柱面1开始,到柱面993结束。重复步骤3、4同样重建别的分区,然后用w命令结束fdisk。Fdisk可能给出提示信息,新分区表要重启使用。下面的例子展示了我们到现在为止到底做了什么:

  root@Knoppix:~# fdisk /dev/sda
    
 
  The number of cylinders for this disk is set to 1044.
  There is nothing wrong with that, but this is larger than 1024,
  and could in certain setups cause problems with:
  1) software that runs at boot time (e.g., old versions of LILO)
  2) booting and partitioning software from other OSs
     (e.g., DOS FDISK, OS/2 FDISK)
  Command (m for help): n
  Command action
     e   extended
     p   primary partition (1-4)
  p
  Partition number (1-4): 1
  First cylinder (1-1044, default 1): 1
  Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044): 993
 
  Command (m for help): n
  Command action
     e   extended
     p   primary partition (1-4)
  p
  Partition number (1-4): 2
  First cylinder (994-1044, default 994):
  Using default value 994
  Last cylinder or +size or +sizeM or +sizeK (994-1044, default 1044):
  Using default value 1044
 
  Command (m for help): w
  The partition table has been altered!
 
  Calling ioctl() to re-read partition table.
 
  WARNING: Re-reading the partition table failed with
  error 16: Device or resource busy.
  The kernel still uses the old table.
  The new table will be used at the next reboot.
  Syncing disks.

  5. 重启服务器来激活应用。

  现在你已经恢复你的分区。可能有用,也可能没用。如果还是不行,我建议重新创建第一个分区。尝试从急救CD安装,如果有效,继续重建你需要的其他分区。一旦成功地重建了根分区,读取/ etc / fstab文件,因为它给你使用的原始设备名字的宝贵信息。

  提示:LVM、扩展和交换分区使用另一种分区类型。在fdisk中,输入1来查看可用分区类型的概述,输入t来改变分区的类型。改变分区表之后不要忘记重新启动。

  现在你已经学会了如何找回丢失的分区。这个系列的下一部分将教你怎么修复LVM逻辑卷的问题。