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 -lGPTをコピーする前に始めてください。
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/sdb
同じfdisk -l /dev/sdb
結果を得ました。
sgdisk -R /dev/sda /dev/sdb
fdisk -l /dev/sda
次に(今回は正しい順序で)GPTをコピーしましたが、次のような「セクタレイアウト」が表示されました。/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
grub2も再インストールしました)、新しいデバイスマップを作成しました。/dev/sdb
(しかし、grub2コアイメージの警告を避けるためにHDDバッファをフラッシュする必要がありました。)
サーバーを再起動しましたが、再び正常に実行されました。
重要:私はサーバーの完全バックアップがあり、これがうまくいくかどうか100%確信できず、パーティションが破損する可能性があるため、このGPTパッチのみを実行しました。