我的笔记本电脑上安装了 Linux,它有 3 个分区:
[System: 100Gb Ext4 Mount Point / ]
[Data: 400Gb Ext4 Mount Point /media/Data]
[Swap: 8Gb Swap]
我需要重新安装我的系统,并且想将其安装在System
保持不变的分区上Data
。
不幸的是,我跳过了选择分区的步骤,Ubuntu 使用默认分区配置安装了一个全新的操作系统:
[Boot: 500Mb fat32 ]
[System: 450Gb ext4 Mount Point /]
[Swap: 8Gb Swap]
经过一番搜索,我发现我可以通过运行来恢复文件sudo photorec
。
但我仍然希望恢复整体,400Gb Data partition
因为它可能没有被安装修改(之后我很快就中断了安装,这意味着从那以后磁盘上没有写入太多内容)。
- 我有机会恢复我的数据分区吗?或者是否 100% 确定文件系统已被删除?
- 根据我对文件系统的理解,如果我恢复前一个分区的开始和结束位置并以此创建一个新的分区,我是否可以恢复所有内容?
- 如果可以,我应该使用什么工具来做到这一点?测试盘?
- 为什么文件可以恢复,但目录结构却无法恢复?树状结构存储在哪里?
提前致谢
编辑:我在 m 驱动器上运行了 TestDisk 的深度分析,结果如下:
我不明白这些数字:它们似乎没有意义(开始不在结束之前,列没有正确对齐等等)有人能帮我解释一下这些数字吗?
编辑2:他找到了!
它位于屏幕截图中,即 [磁盘] 分区。
不幸的是,在我重新创建分区之前,我的笔记本电脑死机了(内存不足?)。我是否必须重新运行深度搜索,或者我可以在重启后创建分区?我现在很兴奋……
答案1
由于新分区表已创建并且数据已开始复制,因此数据丢失是不可避免的。旧数据分区的完整性取决于您取消该过程的速度。根据新旧配置的分区大小,新的根分区将位于旧数据分区之外,因此您仍然有机会。
你说得对,如果你有旧分区结构并能准确恢复,那么你就可以恢复分区。但我怀疑你在创建第一个配置时是否存储了此信息,而此信息应该是准确的。
Testdisk 是完成这项工作的好工具。这里有一个很棒的教程,解释了几种数据丢失的情况:http://www.dedoimedo.com/computers/linux-data-recovery.html
作者最近故意破坏了分区表以进行恢复。但只有在分区表破坏后立即保存,且不复制数据的情况下,才能实现完全恢复。尽管如此,Testdisk 能够以标准和深度级别分析分区结构,并尝试恢复旧的分区配置(如果可能)。
还请查看作者网站上的恢复教程。以下是 TestDisk 工作原理的分步说明:http://www.cgsecurity.org/wiki/TestDisk_Step_By_Step
关于您的最后一个问题,所有文件在被删除或分区表丢失后仍保留在原来的位置。您提到了 Photorec,这是同一作者的另一个程序,即使 Testdisk 失败,它也能恢复文件。它使用不同文件类型的签名数据库。它逐个扇区扫描硬盘并寻找这些签名。如果找到一个,它会读取连续的数据块,检查其一致性。因此,如果文件的某些部分没有被覆盖,则可以完全恢复。恢复原理在此页面上解释:http://www.cgsecurity.org/wiki/PhotoRec
首先,我建议您从其他系统执行所有恢复操作。如果您有可能卸下笔记本电脑硬盘并将其连接到带有适配器的台式机 - 这是最好的方法。如果没有,您可以从 Live CD/USB 启动。有专门针对数据恢复的发行版,例如系统救援光盘。此外,如果您有外部硬盘,您可以转储有缺陷磁盘的映像dd
,然后使用它进行操作,因此如果您破坏了恢复,您仍然可以使用包含完整数据的原始磁盘。命令示例:
dd if=/dev/sdb of=/media/ext_disk/disk_dump
/dev/sdb
在这种情况下,您的磁盘有缺陷,并且/media/ext_disk
- 一些安装到您的系统的外部硬盘。被警告:不要错误地颠倒if
和的顺序! 的默认块大小为512b,因此您可以在命令末尾添加以显著加快该过程,但仅当您的原始磁盘没有错误时才建议这样做。有一种工具可用于原始磁盘可能包含错误的情况。 现在您可以使用映像而不是磁盘:of
dd
bs=64K
ddrescue
testdisk /media/ext_disk/disk_dump
这是最后一个链接,其中提到并简要解释了一些其他恢复工具:https://help.ubuntu.com/community/DataRecovery
答案2
我得到了它!!!
sudo fdisk /dev/sda
我最终用then重新创建了一个分区n
,正如所解释的那样那里
我面临的最后一个困难是将 CHS 格式转换为 Sectors 格式。它使用以下公式那里:
LBA = (((cylinder number * heads per cylinder) + head number) *
* sector per head) + sector number - 1
就我的情况来说:
- 开始:
(10941*255 + 201) * 63 + 13 - 1 = 175779840
- 结尾:
(59572*255 + 98) * 63 + 46 - 1 = 957030399
该分区立即自行安装并且数据再次可用!