彻底弄坏了一台 Linux 设备。我无法登录终端尝试,而且 GUI 屏幕不会亮起,即使 tty7 中有鼠标(尽管这是一个不相关的问题)。该设备是一台运行 lubuntu(我相信是最新版本)的 i386 intel atom 上网本,只有一个分区,只有一个操作系统。当我尝试登录时,以及当我登录时输入任何命令时,它都会给出一长串难以理解的(长而无意义的,不是垃圾,是实际错误,只是极度恐慌)错误消息。结果,我无法使用 ls、cd 等来了解它到底在哪里坏了,或者重置 tty7 以停止上述不相关的问题以尝试 GUI。当我登录 tty7 并尝试做任何事情时,它给出了没有路径的错误消息,就像我在终端 tty 中输入命令时一样。
不过,我知道为什么会发生这种情况。由于极其愚蠢和缺乏经验,当我使用 dd 更新并开始使用 usb 上的实时 usb 版本的 lubuntu(8GB,一个分区)时,我将其发送到 sda(硬盘)而不是 SDB(usb)。我是 root。它在中途放弃了。本质上,我相信我只是用实时 usb lubuntu 部分覆盖了硬盘,并在中途停止,因为它已经坏得无法再运行命令了。
不过,它并没有完全坏掉。它似乎能够发出紧急消息并显示 GUI 屏幕。它只是尝试实际执行任何操作时失败了,例如,访问 GUI 上的注销和关闭选项。我无法干净地关闭(不按住电源按钮就无法关闭),所以还没有决定这样做,因为我可能无论如何都无法再次加载它。
值得庆幸的是,这是一台一次性计算机,我基本上是用它来做实验和破坏的。我已经把它弄坏了一两次,一次是硬盘坏了。然而,这一次,/home/matthew 中有一些 c++ 文件夹,里面有一些我不想用的文件。有没有什么方法可以恢复它们(实时 USB 仍然无法工作,但我们可以使用其他设备让它工作)
抱歉,这个问题太长(而且很愚蠢),丢失文件也不是什么大事。不过,除了不要使用 root、运行前检查代码、备份重要文件和记录错误等重要教训之外,有没有办法找回我的代码文件?
答案1
没有“简单”的方法可以做到这一点,而且实际上,根据获取/制作这些文件所花的时间,最好的选择很可能是重新创建它们。即使您可以执行以下操作 - 您的数据仍有可能被覆盖并且无法恢复。
如果你真的想尝试这个,你需要获得大量的专业知识 - 达到超级用户帖子不太适合的程度 - 但起点是:
- 获取另一个磁盘并将当前磁盘的位复制到新磁盘。
- 看看您是否可以确定磁盘上的原始分区和文件系统是什么(当然是在副本上进行操作)。这通常是不可能的 - 虽然您可能对“testdisk”有点幸运(但可能不会)。
- 如果您可以重新创建分区并且文件系统合适,您可能能够通过从备用超级块重建来恢复文件系统的部分 - 同样,这不太可能,并且取决于文件系统。
一种解决方法(取决于目录中的数据类型)以及很多其他方法就是在原始磁盘上运行“photorec”,尝试根据签名查找未碎片化的文件 - 然后浏览并找到可以使用的文件并重命名。问题是,这只适用于已知文件类型,并且会丢失命名信息和目录结构,并且还会恢复已删除的副本,无法明显地判断哪个是最新文件。它也不适用于存在磁盘碎片的文件(它非常适合从损坏的 USB 磁盘中恢复照片)