当我问这个问题关于从损坏的 Linux 分区恢复数据,人们建议从 Windows 安装磁盘启动并运行Chkdsk
。好吧,我仍然没有 Windows 磁盘,但我有一个 Ubuntu 8.04 磁盘。是否有一个 Chkdsk 等效程序我可以从 Ubuntu 磁盘运行,这可能有助于恢复或恢复我的 Linux 分区上的数据?
答案1
你确定你已经破坏了分割?也许您删除了引导记录或损坏了分区表。首先尝试调查问题。描述您是如何安装 Linux 的。从您之前的问题来看,它似乎安装在 Windows(vfat 或 ntfs)分区内的平面文件上。尝试运行 fdisk 并看在您的分区表中。
制作之前任何对硬盘的更改尝试制作您的硬盘映像(您可以在您的朋友那里这样做)。
更新:
ubuntu@ubuntu:~$ sudo fdisk -l 磁盘 /dev/sda:40.0 GB,40020664320 字节 255 个磁头,63 个扇区/磁道,4865 个磁柱 单位 = 16065 * 512 = 8225280 字节的柱面 磁盘标识符:0x903bd648 设备启动开始结束块ID系统 /dev/sda1 * 1 4864 39070048+ 7 HPFS/NTFS
我们可以看到只有一个 NTFS 分区,所以我怀疑您使用 WUBI(或类似的东西)安装了 Ubuntu。
您的 Linux 安装在循环挂载分区中,该分区只是 Windows 磁盘 c: 上的一个文件或几个文件(例如 c:\ubuntu\disks)
正如我从你之前的问题中看到的那样,你可以启动 Windows,这样你就可以使用 dskprobeWindows XP Service Pack 2 支持工具以确保 fs 类型正确...但它已经正确 fs 类型 7 是 NTFS。
消息“文件系统类型为 RAW。CHKDSK 不适用于 RAW 驱动器。”意味着 Windows 由于某种原因无法确定 fs 类型。如我们所见,fs 类型是正确的。
跑步查杀您可以在 Windows 分区上安装Windows 恢复控制台,在恢复控制台中启动并检查您的磁盘。
检查磁盘后,您将可以访问 c:\ubuntu\disks。我认为您可以像通常的环回设备一样挂载您的 linux 分区(在文件中):
mount -o loop [path to your linux-loopback-partition]
但您应该先安装 Windows 分区。
答案2
由于您似乎正在使用 NTFS 上的 Wubi 安装并且没有实际的 Ubuntu 分区,因此针对 ext 发布的答案将不起作用。
ntfsprogs包含一些适用于 NTFS 的实用程序,包括ntfs修复,它标记文件系统,以便 Windows 在下次重启时尝试修复它。bdonlan 对你的另一个问题的回答可以工作;老实说,我不知道什么是最好的。如果有人有更好的解决方案在 NTFS 中安装 Wubi,请发帖。
答案3
要从 Linux 分区恢复数据,您不需要运行 chkdsk 等效程序。它很可能会注意到您丢失的数据与任何东西都没有关联,并从文件系统中删除大部分数据痕迹,从而使恢复比以前更加困难。您应该使用专门针对文件系统的工具,这些工具会查看文件系统内部情况,就像 fsck 所做的那样,以消除不一致:
undelete
ext2:尝试按照说明使用该工具这一页- ext3:这要困难得多,但通常可以使用恢复许多文件
ext3grep
,概述在非常长且技术性的页面。如果您只想了解如何使用该工具,可以跳过上面的部分,但阅读上面的部分对我来说非常有用。
如果你使用的是 ext2 或 ext3,你也可以尝试这个 DiskInternals 工具。虽然我自己没有用过这个,但我成功地使用了上述两种工具
答案4
您可能想要“坏块”。
这里有一个关于 Linux 文件系统 (ext2) 的很好的指南,展示了如何使用它: http://ubuntu-rescue-remix.org/node/50
但不确定这对 NTFS 有何帮助。