dd 磁盘克隆后修复 GPT 表

dd 磁盘克隆后修复 GPT 表

我使用 dd 将 500gb 硬盘克隆到 256gb SSD,在执行此操作之前,我编辑了分区,以便使用 GParted 取消分配最后 280gb(大约)。

最终,dd 用完了 240gb 的空间,计划是它不会复制未分配的空间,克隆将完成。

不幸的是,GPT 表不正确,我不知道如何解决。

GParted 讨厌它并告诉我它将使用未分配的整个驱动器的备份表。

GPT Fdisk 告诉我有 5 个错误,但使用“p”确实表明所有分区都在那里。(这可能是提及它是 Windows 驱动器的好时机)

我使用的 DDsudo dd if=/dev/sda of=/dev/sdc status=progress

结果 :dd: writing to '/dev/sdc': No space left on device 468862125+0 records in 468862124+0 records out 240057407488 bytes (240 GB, 224 GiB) copied, 21466.2 s, 11.2 MB/s

GPT fdisk:然后Warning! Disk size is smaller than the main header indicates!它显示 MBR 保护和 GPT 损坏。Caution: invalid backup GPT header, but valid main header; regenerating backup header from main header.Warning! One or more CRCs don't match. You should repair the disk!

当出现“v”时:警告:备份分区表的 CRC 无效。此表可能已损坏。当您保存分区时,此程序将自动创建新的备份分区表。

问题:辅助头的自指针指示它不在磁盘末尾。如果您已将磁盘添加到 RAID 阵列,请使用专家菜单上的“e”选项调整辅助头和分区表的位置。

问题:磁盘太小,无法保存所有数据!(磁盘大小为 468862124 个扇区,需要 976773168 个扇区。)专家菜单上的“e”选项可能会修复此问题。

问题:GPT 声称磁盘比实际大!(声称最后可用扇区是 976773134,但备份头位于 976773167,磁盘大小为 468862124 个扇区。专家菜单上的“e”选项可能会修复此问题

保护性 MBR 中的分区对于磁盘来说太大!建议创建新的保护性或混合性 MBR。

发现 5 个问题!^

非常感谢您的帮助

 sudo gdisk -l /dev/sda
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 976773168 sectors, 465.8 GiB
Model: ST500LM034-2GH17
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): 43B49B18-460C-4EDB-B63D-195389ABF232
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 976773134
Partitions will be aligned on 2048-sector boundaries
Total free space is 589831021 sectors (281.3 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1085439   529.0 MiB   2700  Basic data partition
   2         1085440         1290239   100.0 MiB   EF00  EFI system partition
   3         1290240         1323007   16.0 MiB    0C01  Microsoft reserved ...
   4         1323008       273028223   129.6 GiB   0700  Basic data partition
   5       273029120       274431999   685.0 MiB   2700  
   6       274434048       296837119   10.7 GiB    0700  Basic data partition
   7       297041920       387151871   43.0 GiB    0700  Basic data partition
$ sudo gdisk -l /dev/sdc
GPT fdisk (gdisk) version 1.0.3

Warning! Disk size is smaller than the main header indicates! Loading
secondary header from the last sector of the disk! You should use 'v' to
verify disk integrity, and perhaps options on the experts' menu to repair
the disk.
Caution: invalid backup GPT header, but valid main header; regenerating
backup header from main header.

Warning! One or more CRCs don't match. You should repair the disk!

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: damaged

****************************************************************************
Caution: Found protective or hybrid MBR and corrupt GPT. Using GPT, but disk
verification and recovery are STRONGLY recommended.
****************************************************************************
Disk /dev/sdc: 468862124 sectors, 223.6 GiB
Model: high speed      
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 43B49B18-460C-4EDB-B63D-195389ABF232
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 976773134
Partitions will be aligned on 2048-sector boundaries
Total free space is 589831021 sectors (281.3 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1085439   529.0 MiB   2700  Basic data partition
   2         1085440         1290239   100.0 MiB   EF00  EFI system partition
   3         1290240         1323007   16.0 MiB    0C01  Microsoft reserved ...
   4         1323008       273028223   129.6 GiB   0700  Basic data partition
   5       273029120       274431999   685.0 MiB   2700  
   6       274434048       296837119   10.7 GiB    0700  Basic data partition
   7       297041920       387151871   43.0 GiB    0700  Basic data partition

答案1

问题是备份 GPT 位于源磁盘的最末端,现在预计它位于目标磁盘的最末端。但磁盘大小不同,并且dd按原样写入数据,因此它没有将备份 GPT 复制到正确的位置(在您的情况下dd根本没有到达源磁盘的备份 GPT)。

现在重要的是:

  • 逻辑扇区大小确实匹配。很好。(如果不匹配,分区表就会偏离很大;比较这个案例USB 外壳改变了逻辑扇区大小。

  • 分区适合新磁盘。我知道您故意移动了数据以使其适合较小的磁盘。很好。

  • 有空间用于备份 GPT(最后 33 个扇区未分配给任何分区)。很好。

运行sudo gdisk /dev/sdc并告诉它w再次写入分区表。这应该会创建丢失的备份 GPT。

相关内容