使用 sfdisk 缩小分区后恢复 GPT

使用 sfdisk 缩小分区后恢复 GPT

一年前,我的硬盘在 Windows 上可用,但无法在 Ubuntu 上安装。我在 Ubuntu 上使用了一些表修复工具,但它只是破坏了 GUID 表。我在 Windows 上使用分区向导修复了表并继续使用它,除了逻辑分区的结束位置大于磁盘扇区数(来自 gparted 和 sfdisk 输出的信息)之外,没有任何变化。

因此,获得 sfdisk 的此输出并遵循此(混合 GPT 和 MBR)操作说明

磁盘 /dev/sdb:1.8 TiB,2000397852160 字节,3907027055 个扇区
单位:扇区 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标签类型:gpt
磁盘标识符:9F126AEE-463C-394E-A817-2AD9C33C6946
设备 起始 结束 扇区 大小 类型
/dev/sdb1 264192 3907028992 3906764800 1.8T 微软基础数据

我修改了 sdb1 大小的值,使最后一个扇区的编号为 [sfdisk 给出的最大可能值] = 3907027021,并使用 sfdisk 将其重写为 /dev/sdb。之后,ntfs 分区在 Ubuntu 和 Windows 中可见,但无法挂载。

现在我有了来自 sfdisk 的备份文件:

标签: gpt
标签 ID:9F126AEE-463C-394E-A817-2AD9C33C6946
设备:/dev/sdb
单位:部门
首发-lba: 34
最后一个 lba:3907027021

/dev/sdb1:起始=264192,大小=3906764800,类型=EBD0A0A2-B9E5-4433-87C0-68B6B72699C7,uuid=B5CAA620-E5FD-3343-B7A6-135065D0AD95

但是不能通过同样的过程 [sfdisk /dev/sdb < backup.txt] 将其写入 /dev/sdb,因为它不允许将结束扇区的值设置为大于磁盘扇区的数量:

/dev/sdb1:最后可用的 GPT 扇区是 3907027021,但请求 3907028991。
无法添加 #1 分区:参数无效

sfdisk 的版本是 2.31.1。gpart 给出的信息:

GPT fdisk (gdisk) version 1.0.3

Type device filename, or press  to exit: /dev/sdb
Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): p
Disk /dev/sdb: 3907027055 sectors, 1.8 TiB
Model: ST2000DM001-9YN1
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): 9F126AEE-463C-394E-A817-2AD9C33C6946
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 3907027021
Partitions will be aligned on 2048-sector boundaries
Total free space is 264158 sectors (129.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1          264192      3907027021   1.8 TiB     0700  

Command (? for help): v

No problems found. 264158 free sectors (129.0 MiB) available in 1
segments, the largest of which is 264158 (129.0 MiB) in size.

是否可以使用剩余信息修复 GUID 表?

答案1

好的,就我而言,实用程序 testdisk 自动修复了分区属性,现在至少在 Windows 上硬盘再次可见了。

PS 在向最后一个分区末尾添加几兆字节(重叠块的数量乘以块的大小应该是可以接受的)后,即通过 Windows 上的实用程序缩小一点,它也可以从 Ubuntu 中使用。

相关内容