安装 GPT 分区外置硬盘时出现问题

cap*_*ers 6 partition gpt

我的邻居带来了一个 3TB 外置硬盘,说在将它借给 Windows 用户后,她的 Mac 每次插入计算机时都会要求她“初始化某些东西”。

我正在使用 Fedora,并且在让她在她的计算机上尝试任何操作之前,我正在尝试从驱动器中恢复任何数据,因为我有一种感觉,如果她让她的计算机尝试“初始化”驾驶。

我怀疑问题与分区表有关。使用fdisk我得到驱动器的以下输出:

Disk /dev/sdd: 2.7 TiB, 3000558944256 bytes, 732558336 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: BAAE909E-8289-421C-A8D7-9DC750F0E342

Device     Start       End   Sectors  Size Type
/dev/sdd1      6     32773     32768  128M Microsoft reserved
/dev/sdd2  33024 732558079 732525056  2.7T Microsoft basic data
Run Code Online (Sandbox Code Playgroud)

Usign blkid,我明白了:

/dev/sdd: PTUUID="baae909e-8289-421c-a8d7-9dc750f0e342" PTTYPE="gpt"
Run Code Online (Sandbox Code Playgroud)

并使用parted,我得到这个:

Model: WD My Book 1230 (scsi)
Disk /dev/sdd: 3001GB
Sector size (logical/physical): 4096B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name                          Flags
 1      24.6kB  134MB   134MB                Microsoft reserved partition  msftres
 2      135MB   3001GB  3000GB               Basic data partition          msftdata
Run Code Online (Sandbox Code Playgroud)

我立即注意到“文件系统”列没有任何内容。我怎样才能至少以只读方式安装它,即使它只适合我,这样我就可以复制她在那里的文件?

更新 1

使用file -sL /dev/sdd*产品:

/dev/sdd:  ; partition 1 : ID=0xee, start-CHS (0x0,0,2), end-CHS (0x3ff,255,63), startsector 1, 4294967295 sectors, extended partition table (last)\011
/dev/sdd1: data
/dev/sdd2: data
Run Code Online (Sandbox Code Playgroud)

尝试使用各种分区类型挂载它,同时使用 /dev/sdd 和 /dev/sdd2。——

ntfs 和 ntfs-3g:

NTFS signature is missing.
Failed to mount '/dev/sdd2': Invalid argument
The device '/dev/sdd2' 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?
Run Code Online (Sandbox Code Playgroud)

脂肪:

FUSE exfat 1.0.1
ERROR: exFAT file system is not found.
Run Code Online (Sandbox Code Playgroud)

胖胖:

mount: wrong fs type, bad option, bad superblock on /dev/sdd2,
   missing codepage or helper program, or other error

   In some cases useful info is found in syslog - try
   dmesg | tail or so.
Run Code Online (Sandbox Code Playgroud)

更新 2

分区表不可恢复,我不得不运行救援来恢复数据。安装testimage和运行photorec就像冠军一样,我能够找回所有丢失的数据。

pet*_*rph 4

看起来该驱动器已被 Windows 格式化 - 这并不奇怪,因为 Windows 肯定无法使用该磁盘,而该磁盘很可能已被 OS X 格式化,仅供 OS X 下使用。现在问题完全相同,只是交换了双方。

如果要挂载Windows分区,可以尝试盲猜文件系统:

mount -t FILESYSTEM -o ro /dev/sdd2 /mountpoint
Run Code Online (Sandbox Code Playgroud)

其中FILESYSTEM可能是(给定分区大小)NTFS、exFAT 或(不太可能)VFAT 之一。对于 NTFS,可以使用内核ntfs驱动程序(只读模式)或 FUSE 实现ntfs-3g。exFAT 拥有(据称)有效的FUSE 实施;VFAT 有vfat. 在任何情况下,请考虑使用分区进行安装-o ro,甚至为分区创建一个只读循环设备并安装它。这种麻烦方法的原因是,即使以只读模式安装(通常通过摆弄元数据),某些文件系统驱动程序也可能会更新文件系统。这绝对是不可取的。

如果您想尝试挽救原始(阅读“Windows 之前”)数据,请查看 Gilles 引用的问答(恢复意外删除的文件如何从损坏的 SD 卡中恢复数据?)并在互联网上搜索文件系统恢复对于 OS X 使用的文件系统,很可能是HFS Plus

至于“初始化磁盘”的一般问题:我相信每当系统找不到它理解的分区方案时就会发生这种情况 - 这将发生在磁盘上的 MBR 分区表或 GPT - 或者如果它没有识别的分区“正确的类型”。当一个人习惯使用 Linux(我想 BSD 也是如此)时,这可能会令人惊讶,因为 Linux 不关心分区类型,而只关心实际内容。