几年前,我给自己搭建了一台 NAS。它有一个用于 ubuntu 操作系统的 320GB 硬盘和一个用于文件的 2TB 硬盘。我安装了 2TB 磁盘并通过网络与 samba 共享。
现在我已经构建了一个类似 HTPC 的系统,并且想将 2TB 磁盘放入该系统中。该系统运行 Windows 10。我怀疑是否可以简单地将其连接到我的新系统,但只是尝试看看它是否能工作。它在Windows磁盘管理器中显示为未分配空间,所以我想我应该将所有文件复制到另一个磁盘,然后在Windows中格式化2TB磁盘并将所有文件复制回来。
不幸的是,我无法再在 NAS 上安装 2TB 磁盘。当我执行 fdisk -l 时,显示为 Microsoft 保留分区:
Disk /dev/sda: 1.8Tib, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: F7CB1168-49F7-4885-BFE2-EF9905099A86
Device Start End Sectors Size Type
/dev/sda1 34 32767 32734 16M Microsoft reserved
Partition 1 does not start on physical sector boundary.
编辑 1:我在 gparted 中打开了磁盘。根据 gparted 的说法,它有 16Mb 分区,并出现以下警告:
Unable to detect file system! Possible reasons are:
- The file system is dammaged
- The file system is unknown to GParted
- There is no file system available (unformatted)
- The device entry /dev/sda1 is missing
其他 1.82Tb 显示为未分配
EDIT2:我的 fstab 显示:
# data disk
UUID=cfcf09cb-55-fc-40a7-b0b3-afd4d809bb09 /media/emiel/data ext4 auto,user,rw 0 0
我现在正在尝试从终端安装磁盘。
编辑3:根据@Rusi的建议,我尝试分开救援,但没有结果:
emiel@ubuntu:~$ sudo parted /dev/sda print
Model: ATA WDC WD20EZRZ-00Z (scsi)
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 17.4kB 16.8MB 16.8MB Microsoft reserved partition msftres
emiel@ubuntu:~$ sudo sfdisk -d /dev/sda
label: gpt
label-id: F7CB1168-49F7-4885-BFE2-EF9905099A86
device: /dev/sda
unit: sectors
first-lba: 34
last-lba: 3907029134
/dev/sda1 : start= 34, size= 32734, type=E3C9E316-0B5C-4DB8-817D-F92DF00215AE, uuid=58F98377-19F8-46D0-AF53-490D2987D76D, name="Microsoft reserved partition"
emiel@ubuntu:~$ sudo parted /dev/sda rescue
Start? 34
End? 3907029134
searching for file systems... 100% (time left 00:00)Information: You may need to update /etc/fstab.
编辑4:我按照@Rusi的建议尝试了gdisk,得到了下一个结果:
emiel@ubuntu:~$ sudo gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.3
The protective MBR's 0xEE partition is oversized! Auto-repairing.
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
编辑 5:在上述之后,我尝试 TestDisk 来扫描我的驱动器。它仍在扫描,但输出了很多相同的内容。有人可以向我解释这是什么意思吗?
Linux 0 0 1 243201 80 63 3907029168 [data]
Linux 0 0 1 243201 80 63 3907029168 [data]
Linux 0 0 1 243201 80 63 3907029168 [data]
Linux 0 0 1 243201 80 63 3907029168 [data]
Linux 0 0 1 243201 80 63 3907029168 [data]
Linux 0 0 1 243201 80 63 3907029168 [data]
Linux 0 0 1 243201 80 63 3907029168 [data]
Linux 0 0 1 243201 80 63 3907029168 [data]
Linux 0 0 1 243201 80 63 3907029168 [data]
Linux 0 0 1 243201 80 63 3907029168 [data]
编辑 6:一夜之间完成上述 (MBR) 扫描,结果如下:
TestDisk 7.0, Data Recovery Utility, April 2015
Christophe GRENIER <[email protected]>
http://www.cgsecurity.org
Disk /dev/sda - 2000 GB / 1863 GiB - CHS 243201 255 63
The harddisk (2000 GB / 1863 GiB) seems too small! (< 2999 GB / 2793 GiB)
Check the harddisk size: HD jumpers settings, BIOS detection...
The following partition can't be recovered:
Partition Start End Size in sectors
> Linux 121428 157 10 364629 238 9 3907029168 [data]
[ Continue ]
ext4 blocksize=4096 Large_file Sparse_SB Recover, 2000 GB / 1863 GiB
点击“继续”后,我无法浏览文件或执行演练中列出的任何操作。我只能‘放弃’。
编辑7:但后来我想,也许我应该扫描为“无”分区表,正如我启动 testdisk 时所建议的那样,所以我这样做了:
Disk /dev/sdc - 2000 GB / 1863 GiB - CHS 243201 255 63
Current partition structure:
Partition Start End Size in sectors
P ext4 0 0 1 243201 80 63 3907029168 [data]
这正是我的磁盘上的内容,一个覆盖整个磁盘的 ext4 分区,名为“data”。
我的结论:两年多前我格式化磁盘时我做错了但没有注意到,导致磁盘没有分区表。当我将它连接到我的 Windows 机器时,它发现没有分区表并创建了一个错误的分区表。所以我想我需要删除分区表。我确实在网上搜索过,但没有任何信息提到仅删除分区表,而不是现有分区。
另一种选择可能是自己创建一个正确的分区表以指向现有的 ext4 分区。
我的问题:我的结论对吗?您能告诉我如何完成上述任务吗?
答案1
据我了解,Microsoft 保留分区本质上只是保留的未使用空间,以方便将来的文件系统或分区类型转换(例如,用 Microsoft 术语来说,从“基本磁盘”到“动态磁盘”的转换)。当 MSR 先前占用的空间被使用时,MSR 将收缩,并使用释放的空间创建适当大小的新分区。
Microsoft 保留分区 (MSR)
Microsoft 保留分区 (MSR) 在每个磁盘驱动器上保留空间以供操作系统软件后续使用。 GPT 磁盘不允许隐藏扇区。以前使用隐藏扇区的软件组件现在为特定于组件的分区分配 MSR 的部分。例如,将基本磁盘转换为动态磁盘会导致该磁盘上的 MSR 大小减小,并且新创建的分区将保存动态磁盘数据库。 MSR 具有分区 GUID:
DEFINE_GUID (PARTITION_MSFT_RESERVED_GUID, 0xE3C9E316L, 0x0B5C, 0x4DB8, 0x81, 0x7D, 0xF9, 0x2D, 0xF0, 0x02, 0x15, 0xAE)
需要 MSR 的磁盘
每个 GPT 磁盘都必须包含 MSR。磁盘上分区的顺序应为 ESP(如果有)、OEM(如果有)和 MSR,后跟主数据分区。尤其重要的是,MSR 应在其他主数据分区之前创建。
换句话说:MSR 分区中不应该有任何可挽救的内容。如果您想保持 Windows 将磁盘转换为动态磁盘的能力(将其视为类似于 LVM,但仅适用于 Windows),只需在磁盘上第一个 NTFS 或其他 Windows 可用分区之前重新创建一个分区即可。
在双启动系统上,(取决于您的反 MS 偏执程度:-)您甚至可能会考虑故意省略 MSR,以防止某些未来版本的 Windows 可能“有帮助地”自动转换您的磁盘分区/filesystem 升级时,为某种可能仅可由该版本的 Windows 使用的新格式。