测试磁盘并加载分区表的备份?

测试磁盘并加载分区表的备份?

我有一个新磁盘,所以我想看看testdisk备份是如何工作的。

使用 对磁盘进行分区和格式化后gksu gparted /dev/sdc,我得到了以下结果:

$ sudo fdisk -lu /dev/sdc

Disk /dev/sdc: 60.0 GB, 60011642880 bytes
255 heads, 63 sectors/track, 7296 cylinders, total 117210240 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c0705

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1              63    20980889    10490413+  83  Linux
/dev/sdc2        20980890   117210239    48114675    5  Extended
/dev/sdc5        20980953    83891429    31455238+  83  Linux
/dev/sdc6        83891493   100663289     8385898+  83  Linux
/dev/sdc7       100663353   109049219     4192933+  83  Linux
/dev/sdc8       109049283   117210239     4080478+  82  Linux swap / Solaris

因此,在此之后,我想备份分区的引导记录testdisk,然后恢复它。所以我这样做:

cd /tmp
sudo testdisk

... 进而

  • [ Create ] Create a new log file
  • Select a media选择Disk /dev/sdc - 60 GB / 55 GiB,然后[Proceed ]
  • 从中Please select the partition table type,选择[Intel ] Intel/PC partition
  • 在下一个屏幕上,选择[ Analyse ] Analyse current partition structure...;我得到这个:
     1 P Linux 0 1 1 1305 254 63 20980827
     2 E 扩展 LBA 1306 0 1 7295 254 63 96229350
    没有可启动分区
     5 升 Linux 1306 1 1 5221 254 63 62910477
       X 扩展 5222 0 1 6265 254 63 16771860
     6 升 Linux 5222 1 1 6265 254 63 16771797
       X 扩展 6266 0 1 6787 254 63 8385930
     7 升 Linux 6266 1 1 6787 254 63 8385867
       X 扩展 6788 0 1 7295 254 63 8161020
     8 L Linux 交换 6788 1 1 7295 254 63 8160957
  • 我选择[ Backup ] Save current partition list to backup.log file and proceed
  • 回答;我n得到Should TestDisk search for partition created under Vista ?
    磁盘 /dev/sdc - 60 GB / 55 GiB - CHS 7296 255 63
         分区起始结束扇区大小
    * Linux 0 1 1 1305 254 63 20980827
    大号Linux 1306 1 1 5221 254 63 62910477
    大号Linux 5222 1 1 6265 254 63 16771797
    大号Linux 6266 1 1 6787 254 63 8385867
    L Linux 交换 6788 1 1 7295 254 63 8160957
  • 我按下Enter: to continue;我得到:
    磁盘 /dev/sdc - 60 GB / 55 GiB - CHS 7296 255 63

         分区起始结束扇区大小

     1 * Linux 0 1 1 1305 254 63 20980827
     2 E 扩展 LBA 1306 0 1 7295 254 63 96229350
     5 升 Linux 1306 1 1 5221 254 63 62910477
     6 升 Linux 5222 1 1 6265 254 63 16771797
     7 升 Linux 6266 1 1 6787 254 63 8385867
     8 L Linux 交换 6788 1 1 7295 254 63 8160957
  • 选择[ Quit ] Return to main menu这里
  • [ Quit ]从下一个菜单中选择
  • [ Quit ] Quit program从第一个菜单中选择

现在 中有一个backup.log/tmp内容如下:

#1412861047 Disk /dev/sdc - 60 GB / 55 GiB - CHS 7296 255 63
 1 : start=       63, size= 20980827, Id=83, P
 2 : start= 20980890, size= 96229350, Id=05, E
 5 : start= 20980953, size= 62910477, Id=83, L
 6 : start= 83891493, size= 16771797, Id=83, L
 7 : start=100663353, size=  8385867, Id=83, L
 8 : start=109049283, size=  8160957, Id=82, L

重复上述过程将会把相同的内容附加到backup.log

现在,我想测试恢复;我再做一次sudo testdisk……然后

  • [ Append ] Append information to log file
  • Select a media选择Disk /dev/sdc - 60 GB / 55 GiB,然后[Proceed ]
  • 从中Please select the partition table type,选择[Intel ] Intel/PC partition
  • [ Delete ] Delete all data in the partition table现在在下一个屏幕上选择
  • 回答yClear MBR partition table by writing zero bytes to it? (Y/N)
  • 回答yClear partition table, confirm ? (Y/N)
  • 得到Partition table has been cleared. You have to reboot for the change to take effect.并击中[Ok]
  • 我们回到Disk /dev/sdc;现在选择[ Analyse ] Analyse current partition structure...;这里得到:

    磁盘 /dev/sdc - 60 GB / 55 GiB - CHS 57231 64 32
    当前分区结构:
         分区起始结束扇区大小
    
    没有可启动分区
  • 点击[Quick Search]
  • 回答nShould TestDisk search for partition created under Vista ? [Y/N]
  • Stop搜索一开始就点击;得到这个:

    警告:当前每柱面的磁头数量为 64
    但正确的值可能是 255。
    您可以使用几何菜单来更改该值。
    这是值得尝试的
    \- TestDisk 未找到某些分区
    \- 或者由于分区重叠而无法写入分区表。
  • 击中[ Continue ],得到:

    磁盘 /dev/sdc - 60 GB / 55 GiB - CHS 57231 64 32
         分区起始结束扇区大小
    L Linux 0 1 32 10244 63 32 20981697
  • 现在lL: load backup
  • 选择Disk /dev/sdc - ...然后Choose the backup you want to restore:点击[ Load ]

至此,我明白了:

<pre>Disk /dev/sdc - 60 GB / 55 GiB - CHS 57231 64 32
     Partition               Start        End    Size in sectors
P Linux                    0   1 32 10244  36 26   20980827
L Linux                    0   1 32 10244  63 32   20981697
L Linux                10244  38 26 40962  39  6   62910477
L Linux                40962  41  6 49151  63 26   16771797
L Linux                49152   1 26 53246  44  4    8385867
L Linux Swap           53246  46  4 57231  35 32    8160957</pre>

... 并以红色显示“结构:糟糕。”,如图所示:

测试磁盘截图

我的问题是 - 为什么是“结构:不好”?我唯一能注意到的是前两个条目覆盖的范围大致相同;但为什么要testdisk导入它们两个?如果我想从备份中恢复分区结构,如何避免这种情况?

答案1

好吧,如果能得到更专业的回答就更好了——不过,至少我在写这篇 OP 时找到了如何避免这个问题的方法。顺便说一下,这是TestDisk 6.11, Data Recovery Utility, April 2009在 Ubuntu 11.04 上。磁盘清空后,重新启动sudo testdisk并按照 OP 中的跟踪操作进入相同的屏幕(即您执行以下操作后看到的屏幕):

  • 击中;lL: load backup
  • 选择Disk /dev/sdc - ...然后Choose the backup you want to restore:点击[ Load ]

在这里,转到第二个条目,并且:Use Left/Right Arrow keys to CHANGE partition characteristics:直到获得D=Deleted该分区;它看起来像这样:

测试磁盘-屏幕截图-2

现在,显然不再报告“不良结构”,并且一切都是绿色的;有趣的是,只有这个分区会做出这样的反应(例如,第一个分区即使设置为也不会引起任何变化D)。

现在我只需按下Enter: to continue;就会在下一个屏幕上显示:

     Partition                  Start        End    Size in sectors

 1 P Linux                    0   1 32 10244  36 26   20980827
 2 E extended LBA         10244  38  1 57231  63 32   96230208
 5 L Linux                10244  38 26 40962  39  6   62910477
 6 L Linux                40962  41  6 49151  63 26   16771797
 7 L Linux                49152   1 26 53246  44  4    8385867
 8 L Linux Swap           53246  46  4 57231  35 32    8160957

在它,选择[ Write ] Write partition structure to disk;和

  • 回答yWrite partition table, confirm ? (Y/N)
  • You will have to reboot for the change to take effect.,击中[Ok]
  • [ Quit ] Return to disk selection在下一个屏幕上选择
  • [ Quit ] Quit program在下一个屏幕上选择

现在我可以这样做:

$ sudo fdisk -lu /dev/sdc

Disk /dev/sdc: 60.0 GB, 60011642880 bytes
64 heads, 32 sectors/track, 57231 cylinders, total 117210240 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c0705

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1              63    20980889    10490413+  83  Linux
/dev/sdc2        20980928   117211135    48115104    f  W95 Ext'd (LBA)
/dev/sdc5        20980953    83891429    31455238+  83  Linux
/dev/sdc6        83891493   100663289     8385898+  83  Linux
/dev/sdc7       100663353   109049219     4192933+  83  Linux
/dev/sdc8       109049283   117210239     4080478+  82  Linux swap / Solaris

... 几乎所有内容都与 OP 中的原始分区表相同 - 除了这里我有“ ”,而上面的第二个(“扩展”)分区f W95 Ext'd (LBA)是“ ”。5 Extendedsdc2

如果有人能指出我做错了什么,以及我应该怎么做才能在删除之后重建完全相同的分区表,我将不胜感激。


编辑:我想我得到了更多的东西;区别不仅在于“ f W95 Ext'd (LBA)”与“ 5 Extended”;而且,fdisk在第一种情况下:

255 heads, 63 sectors/track, 7296 cylinders, total 117210240 sectors
/dev/sdc2        20980890   117210239    48114675    5  Extended

...第二种情况:

64 heads, 32 sectors/track, 57231 cylinders, total 117210240 sectors
/dev/sdc2        20980928   117211135    48115104    f  W95 Ext'd (LBA)

因此,CHS 几何图形 - 以及扩展分区的区域 - 是错误的;这可能是 OP 中获得的含义Warning: the current number of heads per cylinder is 64 but the correct value may be 255.。因此,一旦我们进入主菜单,testdisk我们就可以更改几何图形:

  • [ Geometry ] Change disk geometry
  • [ Heads ] Change head geometry
    • Enter the number of heads: 255
  • [ Sectors ] Change sector geometry
    • Enter the number of sectors per track (1-63): 63
  • [ Cylinders ] Change cylinder geometry(此处无变化):
    • Enter the number of cylinders: 7296
  • [ Ok ] Done with changing geometry
  • [ Analyse ] Analyse current partition structure
  • [Quick Search] Try to locate partition
  • nShould TestDisk search for partition created under Vista ? [Y/N]
  • testdisk现在找到被删除的分区;点击L: load backup
  • Disk /dev/sdc -然后Choose the backup you want to restore:[ Load ]

再次Structure: Bad.复制分区;将每个第二个分区设置为D- 清除坏结构:

测试磁盘-屏幕截图-3

最后:

  • Enter: to continue
  • [ Write ] Write partition structure to disk
  • yWrite partition table, confirm ? (Y/N)
  • [Ok]You will have to reboot for the change to take effect.
  • [ Quit ] Return to disk selection
  • [ Quit ] Quit program

现在fdisk将报告相同的几何形状 - 以及扩展分区的相同范围:

255 heads, 63 sectors/track, 7296 cylinders, total 117210240 sectors
...
/dev/sdc2        20980890   117210239    48114675    f  W95 Ext'd (LBA)

/dev/sdc2        20980890   117210239    48114675    5  Extended        # first
/dev/sdc2        20980928   117211135    48115104    f  W95 Ext'd (LBA) # second

...和之前的报告相比,现在我们拥有与第一个相同的范围,但仍然不是相同的文件系统类型(f W95 Ext'd (LBA)而不是5 Extended);但至少这样看起来好多了。

相关内容