从 Debian 8 上的现有分区(重新)创建 GPT

从 Debian 8 上的现有分区(重新)创建 GPT

在我的 Debian 8 服务器上 HDD /dev/sda 崩溃了。mdadm通过电子邮件通知我,我更换了磁盘。

服务器备份后,我使用 .GPT 复制过来sgdisk -R /dev/sdb /dev/sda。当我按下键盘上的“Enter”键时,我意识到自己的错误。

所以现在我的两个磁盘上都有一个空的 GPT。

/dev/sdb我的问题是,是否可以在服务器仍在运行时重新创建 GPT ,因为复制错误的 GPT 后我没有重新启动?

sfdisk -d /dev/sdb > sdb.partition.table在更换故障硬盘之前我做了备份。但由于我没有做备份,所以sgdisk备份完全没用,我的说法是否正确?

另外我有这个输出fdisk -l从复制 GPT 之前开始:

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: gpt
Disk identifier: 454774BD-960F-45C6-8C82-AE5C156444E0

Device        Start        End    Sectors  Size Type
/dev/sdb1      4096   33558527   33554432   16G Linux RAID
/dev/sdb2  33558528   34607103    1048576  512M Linux RAID
/dev/sdb3  34607104 5860533134 5825926031  2.7T Linux RAID
/dev/sdb4      2048       4095       2048    1M BIOS boot

Partition table entries are not in disk order.
Disk /dev/md0: 16 GiB, 17171349504 bytes, 33537792 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 /dev/md1: 511.7 MiB, 536543232 bytes, 1047936 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 /dev/md2: 2.7 TiB, 2982739705856 bytes, 5825663488 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

答案1

经过一番研究并尝试了诸如测试盘,我没有找到一个确定的方法来恢复我原来的GPT/dev/sdb

所以我尝试使用CG磁盘它很成功,因为我仍然记下了原来的“扇区布局” /dev/sdb

Disk identifier: 9F95A04D-3ECB-144D-B2A0-55CDD986072B

Device        Start        End    Sectors  Size Type
/dev/sdb1      4096   33558527   33554432   16G Linux RAID
/dev/sdb2  33558528   34607103    1048576  512M Linux RAID
/dev/sdb3  34607104 5860533134 5825926031  2.7T Linux RAID
/dev/sdb4      2048       4095       2048    1M BIOS boot

根据这些信息,我创建了具有相同起始扇区、相同扇区数和相同文件系统类型的分区,如上所述。

在 上写入 GPT 后/dev/sdbfdisk -l /dev/sdb得到了与上面相同的输出。

sgdisk -R /dev/sda /dev/sdb然后,我使用(这次以正确的顺序)复制了 GPT,并向我展示了与以下fdisk -l /dev/sda完全相同的“扇区布局” :/dev/sda/dev/sdb

Disk identifier: 4CB38488-8B72-44AA-8449-4E4692165893

Device        Start        End    Sectors  Size Type
/dev/sdb1      4096   33558527   33554432   16G Linux RAID
/dev/sdb2  33558528   34607103    1048576  512M Linux RAID
/dev/sdb3  34607104 5860533134 5825926031  2.7T Linux RAID
/dev/sdb4      2048       4095       2048    1M BIOS boot


剩下要做的就是使用以下命令重新同步 RAID 卷米达德姆并重新安装grub2。

重新同步完成后,如前所述,我重新安装了 grub2 /dev/sda(我也重新安装了它/dev/sdb,只是为了确定)并生成了一个新的设备映射。 (不过,我必须刷新 HDD 缓冲区以避免 grub2 核心映像警告)

我重新启动服务器,它再次正常运行。

重要的:我只是做了这个 GPT 修补,因为我有我的服务器的完整备份,因为我不能 100% 确定这会起作用,而且我可能会破坏我的分区。

相关内容