我有一台配有 2 个硬盘的 PC,它已经成功双启动了 Ubuntu 和 Windows 大约一年了。两个驱动器 (sda、sdb) 都格式化为 Ext4 并仅分配给 Ubuntu,而 Windows 分区有自己的 SSD 驱动器。我用完了 Windows SSD 上的空间,将一个新的 SATA SSD 驱动器 (sdc) 安装在计算机上,并在 Windows 中格式化了驱动器。
事实证明,当我打开“磁盘管理应用程序”时,它要求初始化两个驱动器 - sda 和 sdc。我认为这是无害的磁盘扫描,所以我点击了“是”。请注意,我只格式化了 sdc,没有格式化 sda,并且在“初始化”后没有做任何事情。
启动回 Ubuntu 后,我发现我的 sda 驱动器不再安装,并且它开头有一个 17MB 的“Microsoft Reserved”分区,后面跟着 10TB 的“可用空间”。
发生了什么事?我的驱动器的文件目录是否被 Windows 覆盖了?有什么方法可以恢复它吗?还是我必须重新格式化磁盘并从备份中复制所有内容?
如果需要,我可以提供更多信息/诊断。谢谢!
答案1
听起来您将有机会测试您的备份。在 Windows 中“初始化”存储设备将清除其中的所有内容,以准备供 Windows 使用,之后您可以对其进行格式化,然后在其中存储文件。当 Windows 遇到新识别的包含大量数据的磁盘(或非 Windows 文件系统)时,它有时会询问您是否要“初始化”存储设备。
希望您的备份没有过期。
答案2
听起来您直接格式化了至少一个驱动器,而没有先创建分区表(MBR 或 GPT)。虽然这在技术上可行,但由于您刚刚遇到的原因,它非常糟糕。Windows 不支持 ext4,因此当它查看磁盘以读取分区表时,它找不到任何可以识别的分区表格式,因为没有。然后它会查找它识别的任何文件系统签名,但不包括 ext4。因此在 Windows 看来,驱动器只是充满了随机数据,因此 Windows 通过贴上分区表并另外创建“Microsoft 保留”分区来初始化它。
Ext4 应该在多个地方有超级块的副本,可能让您有机会恢复一些数据。这fsck.ext4 -n /dev/sda
可能是查看损坏程度的好开始,以及它是否可以自动定位备份超级块。
研究一些关于恢复严重损坏的 ext4 文件系统以及如何定位其他超级块的文章。https://unix.stackexchange.com/questions/33284/recovering-ext4-superblocks可能是一个好的开始。
请注意,基于我的假设,您直接格式化驱动器而没有先创建分区,您需要将 /dev/sda(或 sdb 或其他)传递给 fsck 等,而不是 sda1,它是 Windows 在其上创建的分区,甚至与旧的 ext4 文件系统的起始位置不一致。