GParted 意外删除了我的 /dev/sdb 分区

GParted 意外删除了我的 /dev/sdb 分区

我在联想 P50 上运行 Ubuntu 16.04。

我的笔记本电脑上有 2 个 SSD,如下所示:

  • /dev/sda- 256GB,有 Linux 分区和 Windows 分区
  • /dev/sdb- 512GB,单个 FAT32 分区,用于存储大型数据文件(所有文件都不重要或在其他地方备份)

我想将 Windows 移至,/dev/sdb以便我的 Linux 分区可以占用全部 256GB /dev/sda。为此,我首先要缩小我的/dev/sdb“数据存储”分区。

为了缩小/dev/sdb分区,我打开了 gGParted 并使用“调整分区大小”操作将/dev/sdb分区缩小到 128GB。GParted 报告已成功完成操作。

我关闭了 GParted 并重新打开它。当我重新打开它时,它报告说我的/dev/sdb分区大小没有变化,并且仍然占用了整个 512GB 的驱动器空间。我再次执行了“调整大小”操作。第二次执行调整大小操作后,分区表损坏了。GParted 不再能够检测到文件系统。

Testdisk 也无法检测到我的 fat32 文件系统。fdisk 报告了 4 个随机大小的分区,表明分区表已损坏。

我计划在将来重新整理一些重要数据,我想知道:

  • 我做错了什么
  • 为什么会发生这种情况
  • 我该如何恢复我的数据?我愿意打开十六进制编辑器并手动检查。
  • 我该如何预防此类事件再次发生?

答案1

我做错了什么

第一个错误是使用 FAT32 并假设您可以保存更大的文件。FAT32 没有日志,无法使恢复/修复更容易,并且无法保存超过 4GB 的文件。它可能会说您保存了它,但只保存了前 4GB。

当 gparted 说它工作了但没有显示时,你应该立即停止并调查原因。可能需要 chkdsk,它在 FAT32 上非常慢,因为没有日志。

为什么会发生这种情况

不确定,通常 gparted 可以工作,但通常最好在 Windows 上使用 Windows 工具,在 Linux 上使用 Linux 工具。这样你就不会因为破坏 Windows 文件系统而责怪 Linux。

我如何恢复我的数据(我愿意打开十六进制编辑器并手动浏览它)

您可能应该使用 ddrescue 或类似工具来对驱动器进行映像处理。然后,您可以使用 testdisk 的一部分 photorec 来扫描驱动器,查找任何看起来像文件的东西。由于只有一个分区,因此您可以尝试重置分区表,看看 chkdsk 或 dosfsck 是否有效。

我该如何预防此类事件再次发生?

我现在喜欢 gpt,因为它有 MBR(msdos)上的备份分区表,但 Windows 只能从 gpt 以 UEFI 模式启动。Ubuntu 可以从 gpt 以 UEFI 或 BIOS 启动。我建议重新安装 Ubuntu,而不是移动 Windows。然后,您可以在删除旧安装之前轻松地将 /home 和数据移动到新安装中。如果您想要一个用于共享数据的数据分区,请使用 NTFS。

相关内容