我的 NTFS 分区不知为何损坏了(这是我安装 Windows 时留下的痕迹)。
我正在把 fdisk 和 blkid 的调试输出这里。
同时,任何操作系统都无法挂载我的根分区,该分区位于我的 NTFS 分区旁边。不过,我不确定这是否与此有关。我在尝试挂载我的根分区 (sda5) 时收到以下错误
mount: wrong fs type, bad option, bad superblock on /dev/sda5,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
ubuntu@ubuntu:~$ dmesg | tail
[ 1019.726530] Descriptor sense data with sense descriptors (in hex):
[ 1019.726533] 72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00
[ 1019.726551] 1a 3e ed 92
[ 1019.726558] sd 0:0:0:0: [sda] Add. Sense: Unrecovered read error - auto reallocate failed
[ 1019.726568] sd 0:0:0:0: [sda] CDB: Read(10): 28 00 1a 3e ed 40 00 01 00 00
[ 1019.726584] end_request: I/O error, dev sda, sector 440331666
[ 1019.726602] JBD: Failed to read block at offset 462
[ 1019.726609] ata1: EH complete
[ 1019.726612] JBD: recovery failed
[ 1019.726617] EXT4-fs (sda5): error loading journal
当我打开 gparted(使用 live CD)时,我的 NTFS 驱动器旁边会出现一个感叹号,显示
chkdsk
有没有不用 Windows 即可运行的方法?
我尝试运行的fsck
结果如下:
ubuntu@ubuntu:~$ sudo fsck /dev/sda
fsck from util-linux-ng 2.17.2
e2fsck 1.41.14 (22-Dec-2010)
fsck.ext2: Superblock invalid, trying backup blocks...
fsck.ext2: Bad magic number in super-block while trying to open /dev/sda
The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
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>
更新:我能够通过 Hiren 的 BootCD 运行 chkdsk 来修复 NTFS 分区,但似乎超级块问题仍然存在。
更新 2:修复使用超级块的问题e2fsck -c /dev/sda5
答案1
注意:这个答案已经过时,如果您读过错误,则不建议这样做。
使用 安装 ntfs-3g 。然后在 NTFS 分区上sudo apt-get install ntfs-3g
运行该命令。ntfsfix
例如:
ntfsfix /dev/hda6
ntfsfix v2.0.0 (libntfs 10:0:0)
Usage: ntfsfix [options] device
Attempt to fix an NTFS partition.
-h, --help Display this help
-V, --version Display version information
Developers' email address:
[email protected] Linux NTFS
homepage: http://www.linux-ntfs.org
对于较新的 Ubuntu,您可以同时使用-b
和-d
选项。-b
尝试修复坏簇和-d
修复脏状态。因此命令可以是
sudo ntfsfix -b -d /dev/sda6
--help
向他们展示
ntfsfix v2015.3.14AR.1 (libntfs-3g)
Usage: ntfsfix [options] device
Attempt to fix an NTFS partition.
-b, --clear-bad-sectors Clear the bad sector list
-d, --clear-dirty Clear the volume dirty flag
-h, --help Display this help
-n, --no-action Do not write anything
-V, --version Display version information
答案2
我刚刚使用 Linux 命令行(但很友好)实用程序“testdisk”修复了我的 USB 驱动器。我的驱动器甚至无法在 Windows 中安装,而 Windows 8 发现了 6 个分区(而驱动器只有一个分区)。
要使用该实用程序,请安装它:
sudo apt-get install testdisk
然后运行它:
sudo testdisk
并按照说明进行操作。您必须搜索分区,然后写入更改。
希望这对任何人都有帮助。
答案3
只是为了澄清你的一些观点。
我尝试运行 fsck 得到以下结果:
ubuntu@ubuntu:~$ sudo fsck /dev/sda ... fsck.ext2: Bad magic number in super-block while trying to open /dev/sda
现在,这并不奇怪,因为您尝试 fsck 磁盘,而不是其分区。fsck 所做的是,它尝试识别 FS 类型。由于您为其提供了原始磁盘表面,因此它无法识别并诉诸默认类型 - ext,调用 fsck.ext。
fsck.ext 在该位置未找到任何 FS 签名,并尝试查找超级块。最终失败,因为其磁盘只有 NTFS 分区类型。
这就是您出现此错误的原因。
正确的命令是:
sudo fsck /dev/sda1
这将为第一个 SATA 硬盘的第一个分区提供数据,而不是第一个 SATA 磁盘本身。
答案4
我同意@psusi:磁盘需要更换,请参阅我在已接受答案下的评论。这样做根本ntfsfix
无济于事,只会延迟以下基本操作:
- 尽快备份磁盘上的所有数据
- 更换新磁盘
没有必要真正检查 SMART 诊断程序 - 它们无论如何都只能发现一小部分错误。红旗是以下两行:
[ 1019.726558] sd 0:0:0:0: [sda] Add. Sense: **Unrecovered read error** - auto reallocate failed
[ 1019.726602] JBD: **Failed to read block** at offset 462
一旦磁盘开始出现不可恢复的读取错误 (URE),应立即更换,并且仅用于数据恢复。(过多的非 URE 也表示需要更换。)
磁盘应被视为必须每隔几年更换一次的消耗品,因此拥有真正好的备份(自动、每日、完整、至少到外部驱动器)至关重要。