我刚刚将一张 3TB 磁盘从外部 USB 外壳移至计算机内部,但我看不到应该存在的唯一一个 ext4 分区。磁盘上有非常重要的数据,我不能丢失。请告知如何继续,以下是一些详细信息:
$ sudo mount -vvv -t ext4 /dev/sdb1 /mnt/
mount: /mnt: /dev/sdb1 is not a valid block device.
$ sudo fdisk -l /dev/sdb
GPT PMBR size mismatch (732566645 != 5860533167) will be corrected by w(rite).
Disk /dev/sdb: 2.7 TiB, 3000592982016 bytes, 5860533168 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: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
/dev/sdb1 1 732566645 732566645 349.3G ee GPT
Partition 1 does not start on physical sector boundary.
$ sudo parted /dev/sdb print
Error: /dev/sdb: unrecognised disk label
Model: ATA WDC WD30EZRX-00D (scsi)
Disk /dev/sdb: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: unknown
Disk Flags:
lshw 输出(摘录):
*-scsi:1
physical id: 2
logical name: scsi1
capabilities: emulated
*-disk
description: ATA Disk
product: WDC WD30EZRX-00D
vendor: Western Digital
physical id: 0.0.0
bus info: scsi@1:0.0.0
logical name: /dev/sdb
version: 0A80
serial: WD-WCC1T1561951
size: 2794GiB (3TB)
capabilities: partitioned partitioned:dos
configuration: ansiversion=5 logicalsectorsize=512 sectorsize=4096
*-volume UNCLAIMED
description: EFI GPT partition
physical id: 1
bus info: scsi@1:0.0.0,1
capacity: 349GiB
capabilities: primary nofs
答案1
评论回答者没有阅读您问题中的输出。输出告诉我们:
GPT PMBR 大小不匹配 (732566645 != 5860533167) 将由 w(rite) 纠正。
fdisk
告诉您您有一个 EFI 分区表,其中包含所谓的“保护性”旧式 MBR 分区记录。但保护分区记录并不能正确保护光盘的内容,因为它在光盘实际结束之前就结束了,留下了几 TiB 的可用空间。fdisk
说它会为你解决这个问题。 请勿尝试fdisk
这样做。fdisk
是错的。磁盘标签类型:dos 磁盘标识符:0x00000000 设备引导起始结束扇区大小 ID 类型 /dev/sdb1 1 732566645 732566645 349.3G ee GPT
因此fdisk
决定根本不向您展示 EFI 分区表。它向您显示的是“保护性”旧式 MBR 分区表,就好像那是您对磁盘进行分区的方式。它包含一个条目,它实际上(因为它是 typeee
)一个虚拟条目,应该包含整个磁盘,包括 EFI 分区表。但它只有 732566645 个扇区长,大约为 349GiB,而不是 2.7TiB。这是反对这一点的几个原因之一
fsck
。 它不是包含格式化文件系统的磁盘卷。 它是一个虚拟的旧式分区,应该跨越整个磁盘。分区 1 不在物理扇区边界上开始。
这是一条红鲱鱼。您的虚拟保护分区是应该从扇区 1 开始。扇区 1 是 EFI 分区表开始的地方。它的对齐方式是真实的分区,记录在未读取的新 EFI 分区表中fdisk
,这很重要,并且出于性能原因。您应该能够安装未对齐的卷。但您甚至还没有使用正确的分区表,因此这是否是一个问题尚不清楚。然而,很可能事实并非如此。对齐是可能的完全这里有一条红鲱鱼。因为你正在经历的事情是众所周知的,并且是别的东西。
$ sudo 分开 /dev/sdb 打印 错误:/dev/sdb:无法识别的磁盘标签
parted
也无法读取您的 EFI 分区表。与此不同的是fdisk
,它不会退回到将您的磁盘视为以旧式分区,并报告一个大的虚拟分区。它彻底失败了。大小:2794GiB (3TB) …… 描述:EFI GPT分区 物理 ID:1 总线信息:scsi@1:0.0.0,1 容量:349GiB
lshw
看到的是 3TB (2.7TiB) 光盘。这是还查看EFI分区表。但您的 EFI 分区表声称这是一张 349GiB 磁盘。
为什么 2.7TiB 变成了 349GiB?
好吧,请注意将 349GiB 乘以 8 后得到的结果。
当它位于 USB 光盘盒中时,系统认为您的光盘有 4KiB 扇区,并且所有内容都使用该扇区大小来访问它。在 USB 外壳中,系统的其余部分会看到您的光盘及其本机、真的,扇区大小。此外,4KiB扇区有732566645个扇区确实如此包含整个磁盘的 2.7TiB,并且旧式保护分区和实际 EFI 分区表都有正确的编号。
在没有 USB 光盘盒的情况下,您的光盘将以“512e”兼容模式读取,其中大多数系统会假装您的光盘具有 0.5KiB 扇区。 (当涉及 USB 附件时,有一个更复杂的解释,涉及第二个逆变换,撤消第一个逆变换,但我在这里对此进行了掩盖,因为它超出了本答案的范围。)分区开始和大小数字您的分区表以及实际上指向磁盘上逻辑块地址的任何其他内容都是错误的。
4KiB 是 0.5KiB 的 8 倍。
从本机 4KiB 扇区大小降级到“512e”是可能的,但这不适合胆小的人。我建议您将光盘放入一个更简单的操作过程中后退进入外壳来读取它,系统的其余部分将看到它的真实 4KiB 扇区大小,并且数字将正确显示。