我在我的计算机中以 UEFI 模式安装了 opensuse,但使用的是旧版 Windows,因此它没有出现在启动菜单中。按照互联网上的一个奇怪的教程,我添加了我的 sda 的 Windows 分区。
我用了
dd if="some img" of=/dev/sdaX bs=4m
X 是分区。图片只有几KB。我知道,不知道这是否属实,dd
从设备的第一个块开始写入,因此我认为它只是覆盖了分区块的第一个 KB 的分区信息,因此系统不会知道它是什么文件系统,因此无法安装它。但我不知道是否dd
已清除所有剩余数据。因此我的问题是是否有办法从该特定分区恢复我的数据。
答案1
如果您的 img 属于分区/文件系统,那么 sdaX 现在是一个正常运行的副本。
如果您的 IMG 是其他内容,“只是一些 KB”(您的意思是大小小于 1MB?),那么您可能不再拥有数据。
您可以通过使用环回设备安装 IMG 来检查 IMG 是否是有效的文件系统。
您可以使用 PhotoRec 尝试从 sdaX 恢复数据(假设您没有将其归零)
答案2
除非您另外指定,否则程序dd
将在分区的开头开始写入。它还只是将数据从源写入目标,如果目标分区大于源,则不会填充目标分区。
因此,如果您的源文件只有几 kB,那么大部分或全部数据应该仍然存在。问题是找出它在分区上的位置。
首先,您应该对整个分区进行备份。
如果这几 kB 实际上只是几 kB,那么应该可以在此分区中创建一个完全相同类型的新文件系统,然后从备份中恢复这几 kB 后的其余部分。文件系统的开头通常包含有关文件系统的一般信息,并且大部分是不变的。许多文件系统还具有重要数据结构的备份块。您也许能够恢复大部分数据。