我让人通过 USB 将全新的 4TB 驱动器插入数据中心的外部机箱中。我远程使用磁盘使用默认参数创建分区以用完整个驱动器。然后我运行 mkfs.ext4。复制大量数据后,我将驱动器运送给了我。
当插入家中的计算机时(通过内部 SATA)。我无法安装驱动器。
我遇到了错误的文件系统类型、坏超级块错误,您会看到很多关于此的错误问题。不同之处在于,我知道我确实使用 ext4 格式化了它。
我确实看到一个问题提到了有关分区开始得太早的问题。这是我的 fdisk -l 输出:
Disk /dev/sda: 4000.8 GB, 4000787030016 bytes
42 heads, 63 sectors/track, 2953150 cylinders, total 7814037168 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
Disk identifier: 0xfb4c8856
Device Boot Start End Blocks Id System
/dev/sda1 256 976754645 488377195 83 Linux
我可以做些什么来避免丢失数据吗?或者我是否必须将其运回,重新开始,然后再次将其运回给我?
答案1
快速回答
我可以做些什么来避免丢失数据吗?
是的。安装后您可以像这样访问数据:
mount -o ro,offset=((256*4096)) /dev/sda /path/to/mountpoint
(ro
以防万一;如果文件看起来正确,您可以使用 重新挂载-o rw
)。
解释
这个答案解释发生了什么:
该外壳将驱动器作为高级格式 4Kn 设备暴露给计算机,允许使用 MBR 与 Windows XP 系统兼容。从机箱中取出驱动器时,逻辑扇区格式的更改会导致分区表无效。
您的驱动器现在报告 7814037168 个逻辑扇区的容量,每个扇区 512 字节。在机柜中时,有 976754646 个逻辑扇区,每个扇区 4096 字节。
当前分区条目在 4096 字节扇区方面有效。它表示分区从扇区号 256 到 976754645,这是最后一个扇区(请记住,扇区从 0 开始编号;N 个扇区的编号从 0 到 N-1)。
我可以看出这是一个 MBR (DOS) 分区表。 GPT 在设备末尾需要很少的扇区来用于其备份表。那里没有未使用的扇区,所以 MBR
但现在任何工具都可以看到具有 512 字节逻辑扇区的设备。分区表再次表明唯一的分区范围是从扇区号 256 到 976754645,这是错误的。
现在正确的值为:
- 256*8 = 2048
- (976754645+1)*8-1 = 7814037167
请注意,后者是最后一个扇区(您fdisk
说有 7814037168 个扇区)。
您无法修复 MBR 分区表,因为它现在占用了太多扇区。比较什么维基百科说:
由于块地址和大小使用 32 位存储在 MBR 的分区表中,因此使用具有 512 字节扇区(实际或模拟)的驱动器的分区的最大大小以及最高起始地址不能超过 2 TiB −512 字节(2,199,023,255,040 字节或 4,294,967,295 扇区 × 每个扇区 512 字节)。缓解这种容量限制是 GPT 发展的主要动机之一。
完全转换为 GPT 并不容易,因为设备末端没有空间用于辅助(备份)分区表。 MBR 仅存在于设备的开头; GPT 在开头和结尾都需要空间。
您仍然可以知道mount
文件系统在什么偏移量处启动,这就是我的命令的作用。偏移量为 256*4096 字节(或 2048*512 字节,是相同的数字)。上面给出的命令使用 shell 来计算偏移量。偏移量从整个设备的开头开始计算,因此该命令使用/dev/sda
,而不是/dev/sda1
。
我的测试表明 ext4 不依赖于底层设备的逻辑扇区大小,因此您应该可以通过这种方式安装。
现在应该很清楚,“将其运回,重新开始,然后再次运回”不会有帮助。机柜将再次转换逻辑扇区大小,您会对文件系统的挂载感到惊讶。另一方面,如果您现在清除磁盘,重新创建 GPT 分区表和文件系统,然后运送驱动器,如果它们通过同一机柜连接它,则它不会安装在数据中心中。
暗示
如果您需要来回运送磁盘,请考虑超级软盘,即整个设备上的文件系统,没有任何分区表(例如mkfs.ext4 /dev/sda
)。mount /dev/sda /path/to/mountpoint
无论是否有干扰的机箱,您都可以安装此类文件系统。
答案2
我会用测试盘。 (确保在确定之前不要写入驱动器)。它可以帮助您尝试不同的选项来访问驱动器,如果成功,您甚至可以将驱动器上的数据(也可以复制)显示到另一个磁盘。备份后,我会尝试写入它找到的磁盘几何数据,并尝试您是否可以在没有测试磁盘的情况下访问计算机中的驱动器。
请小心使用该工具,但在这种情况下它会很有帮助。