如何在 Ubuntu(15.10)上读取 HPFS/NTFS(可启动)分区?

如何在 Ubuntu(15.10)上读取 HPFS/NTFS(可启动)分区?

我想读取格式化为 HPFS/NTFS(可启动)分区的旧硬盘的内容;我不确定可启动部分是否有区别。我尝试安装该驱动器,但无法安装。我该如何读取此驱动器?

使用时sudo fdisk -l,驱动器显示为:

:~$ sudo fdisk -l
Device     Boot Start       End   Sectors   Size Id Type
/dev/sdf1  *       63 488392064 488392002 232.9G  7 HPFS/NTFS/exFAT

尝试使用mount

:~$ sudo mount /dev/sdf1 /mnt/ntfs1
mount: wrong fs type, bad option, bad superblock on /dev/sdf1,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.

尝试使用ntfs-3g

:~$ sudo ntfs-3g /dev/sdf1 /mnt/ntfs1
NTFS signature is missing.
Failed to mount '/dev/sdf1': Invalid argument
The device '/dev/sdf1' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?

编辑:

尝试使用mount -t exfat

:~$ sudo mount -t exfat /dev/sdf1 /mnt/ntfs1
FUSE exfat 1.1.0
ERROR: exFAT file system is not found.

fsck报告:

:~$ sudo fsck -f /dev/sdf1
fsck from util-linux 2.26.2
e2fsck 1.42.12 (29-Aug-2014)
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/sdf1

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>

答案1

开始,绝不fsck在不知道这样做是否正确的情况下在分区上运行。问题是这fsck是一个修复工具,因此它很可能会将数据写入磁盘。就你的情况而言,你在甚至不知道磁盘上使用的是什么文件系统之前就应用了它。这非常危险,因为修复工具可能会混淆并让事情变得糟糕更差而不是更好。这样的结果不太可能,但有可能。你大概没有造成任何损害,但使用磁盘可能会对磁盘造成更大的损害fsck

要了解磁盘上的文件系统类型,请使用blkid,例如:

$ sudo blkid /dev/sdb3
/dev/sdb3: UUID="493344495F520D15" TYPE="ntfs"

当然,您的输出可能会有所不同,但此示例确实显示了 NTFS 卷。如果您没有得到任何输出,则意味着blkid无法识别文件系统,这反过来意味着它已严重损坏。如果有输出但TYPE=显示除 之外的内容ntfs,则意味着它不是 NTFS 卷。也许输出很明显,您可以从那里继续,或者您可能需要回复详细信息以获取更多建议。

知道文件系统后,您可以使用特定于文件系统的挂载工具,也可能使用修复工具。您已经尝试使用可能的工具(NTFS 和 exFAT)进行挂载。分区的类型代码(0x07)曾经通常用于 HPFS,但这可能只适用于磁盘已与 OS/2 一起使用的情况,而您说它与 Windows 7 一起使用的情况。

在使用可能具有破坏性的修复工具之前,最好进行低级备份,例如:

sudo dd if=/dev/sdf1 of=/path/to/lots/of/space/sdf1.img

此命令将备份到中的/dev/sdf1文件。请确保有足够的可用空间来容纳整个分区——在您的情况下大约为 233 GiB。如果修复工具使情况变得更糟(有时会发生这种情况),进行此备份将为您提供恢复的方法。sdf1.img/path/to/lots/of/space/

我的直觉是磁盘使用 NTFS,但它已损坏和/或未正确关闭。如果是这样,你必须首先使用 Windows 工具进行修复。Linuxntfsfix实用程序名称不太好;它只进行最少的检查,然后在 Windows 中将磁盘标记为需要注意。Linux 不支持 NTFS fsck,因此您不应尝试fsck在 NTFS 卷上使用。

也可能存在一些更奇怪的情况。例如,该磁盘可能已用于 RAID 阵列,在这种情况下,如果没有来自同一阵列的其他磁盘,您可能无法恢复任何内容。(具体情况取决于所用 RAID 的类型和其他细节。)

在最坏的情况下,你也许可以使用相簿恢复单个文件。

还有一点:在您的评论中,您说您在 上运行了 GParted /dev/sdf1。这是无用的——甚至可能很危险。/dev/sdf1是分区,但 GParted 应该在 上使用,整个磁盘- 那是,/dev/sdf

答案2

就我而言,由于我的硬盘被 Windows 10 BitLocker 锁定,因此使用 Dislocker 解决了这个问题。

相关内容