我有一个外部硬盘似乎坏了。无法在 Windows 和 Ubuntu 中打开(它是 NTFS 文件系统)。在 Windows 上,我运行了(两次)命令chkdsk
。它在那里识别出某些不可读的内存段。我以为它会“标记”这些,并在尝试读取硬盘时避开它们。但在我运行该程序后,Windows 仍然无法打开它。所以要么我错了,要么我的磁盘无法修复。
假设我错了,我转向 Ubuntu 看看是否gparted
有fsck
任何帮助。“检查”功能gparted
给了我一个错误... 并且没有太多额外的信息。
首先检查分区在哪里,lsblk
运行
sdb 8:16 0 298,1G 0 disk
└─sdb1 8:17 0 298,1G 0 part
接下来fsck
,我运行了以下命令
root@...# fsck /dev/sdb1 -y
fsck from util-linux 2.31.1
仅此而已。所以这很奇怪。因此我尝试了整个磁盘而不是一个分区。这给了
root@...# fsck /dev/sdb -y
fsck from util-linux 2.31.1
e2fsck 1.44.1 (24-Mar-2018)
ext2fs_open2: Bad magic number in super-block
fsck.ext2: Superblock invalid, trying backup blocks...
fsck.ext2: Bad magic number in super-block while trying to open /dev/sdb
The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem. If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
or
e2fsck -b 32768 <device>
Found a dos partition table in /dev/sdb
因此所述错误是
fsck.ext2: Bad magic number in super-block while trying to open /dev/sdb
因为我确信(感谢gparted
)我正在处理ntfs
文件系统,而不是ext[0-9]
..我认为提出的解决方案(运行ef2fsck
不适用于我。
我不知道如何从这里继续。我相信如果可以避免读入某些内存段……我想我可以从中检索一些数据。但我不知道如何做到这一点。
答案1
fsck
并且gparted
应用程序不能用于修复 ntfs 分区的问题。ntfsfix
不应用它来尝试修复此问题。
通常应该使用 Windows 工具。但是,chkdsk
在这里没有帮助。
您可以尝试使用testdisk
Ubuntu 操作系统。
sudo apt-get update
# 更新软件数据库
sudo apt-get install testdisk
# 安装测试盘
sudo testdisk
# 启动测试磁盘
去http://www.cgsecurity.org/wiki/TestDisk_Step_By_Step以获得有关使用此工具的帮助。
答案2
获取另一张磁盘。
首次尝试时,使用 ntfsclone 克隆磁盘。
在那之后,很可能就会失败,可以通过以下方式之一获取对损坏设备的一些只读访问权限:
- mount [-t ntfs] -o ro (如果它认为它是 ext 或者提到 ntfs 以外的东西,请使用 -t)
- ntfsls、ntfscp、ntfsrecover(ntfs-3g 的一部分)
- 测试磁盘
- photorec(此工具仅查找它能识别的文件格式...它不是完整恢复)
然后将整个磁盘克隆到新磁盘。
而且我认为 fsck 的输出中提到 ext 可能意味着它实际上认为您有 ext。也许它上面有一个 ext 超级块。这可能是问题的根源……也许 ntfs 实际上是健康的,但 linux 感到困惑。或者也许某些 linux 感到困惑,将其挂载为 ext 并写入它,从而破坏了 NTFS。以后要小心……下次格式化之前使用 wipefs 或将设备归零(例如使用 dd)。不要相信格式化工具会这样做……他们会错过他们不知道的东西;wipefs 错过的更少,因为它专注于此;只要您将它指向正确的扇区范围(我总是将第一个和最后一个 100MB 归零),dd 就不会错过任何东西。