奇怪的分区表条目

奇怪的分区表条目

我刚刚在 Linux 下用 dd 备份了两个分区,所以我有原始分区映像:part1.img 和 part2.img。此外,我还备份了磁盘的 MBR(磁盘的前 512 个扇区)和一些文本信息(“fdisk -l” /dev/sdb)。

fdisk -l /dev/sdb said before I did dd:

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x7d22da32

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         196     1574338+  27  Unknown
/dev/sda2             197       19457   154713982+   7  HPFS/NTFS

这是标准的笔记本电脑磁盘,因此第 1 部分是系统恢复分区。第 2 部分是 Windows Vista 可启动分区。

然后我将 part2.img 转换为 part2.vdi(VirtualBox 磁盘格式)。我将 part2.vdi 附加到现有的虚拟 XP 机器,我可以浏览它并删除我想要的内容(part2.vdi 是第二个分区,不是从它启动的)。

然而问题是当我想将 part2.vdi 附加到虚拟化 Linux 系统并想要安装它时。

now fdisk -l /dev/sdb says (sdb being part2.vdi here, so not whole disk as before):

Disk /dev/sdb: 158.4 GB, 158427250688 bytes
255 heads, 63 sectors/track, 19261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x2052474d

This doesn't look like a partition table
Probably you selected the wrong device.

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   ?         410      119791   958924038+  70  DiskSecure Multi-Boot
Partition 1 does not end on cylinder boundary.
/dev/sdb2   ?      121585      234786   909287957+  43  Unknown
Partition 2 does not end on cylinder boundary.
/dev/sdb3   ?       14052       14052           5   72  Unknown
Partition 3 does not end on cylinder boundary.
/dev/sdb4          164483      164486       25945    0  Empty
Partition 4 does not end on cylinder boundary.

Partition table entries are not in disk order

问题出在哪里?为什么 Windows 会自动“挂载”分区(看不到奇怪的条目)并且我可以访问数据,但在 Linux 下分区表条目却有问题?我该如何解决它而不丢失数据/分区完整性?

答案1

fdisk仅适用于整个磁盘。part2.vdi 只是一个分区。

磁盘格式大致为:

<MBR><Part Table><Part 1><Part 2>

你只有<Part 2>——其中没有<Part Table>包含任何东西。

Windows 将其上的文件系统识别为 NTFS 并按此进行处理。

您可能只需使用以下命令在 Linux 中安装它:

# mount -t ntfs /dev/sdb /path/to/mount

无需担心分区表等。

相关内容