ハードドライブがクラッシュしましたが、修復会社がすべてを別の新しいドライブにコピーすることができました。
dd かそれに類似したものが使われていたと思います。
2 つの xfs パーティションがありました。しかし、現在は最初のパーティションしかマウントできません。
gparted でパーティションを表示しようとすると、次のように表示されます。
Can't have a partition outside the disk
新しいディスクは元のディスクよりも少し小さかったようです(モデルが異なります)。
更新: 私の疑いは確認されました:
fdisk -l -u=sectors
Disk /dev/sdd: 9,1 TiB, 10000797794304 bytes, 19532808192 sectors
Disk model: Elements 25A3
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
Device Start End Sectors Size Type
/dev/sdd1 2048 9766436863 9766434816 4,6T Linux filesystem
/dev/sdd2 9766436864 19532871679 9766434816 4,6T Linux filesystem
しかし数字が一致しません!
19532808192-9766434816-9766434816-2048=63488
現在のハードドライブに合わせてパーティション テーブルと xfs ファイル システムを更新するにはどうすればよいですか?
答え1
問題がパーティション テーブルだけにある場合 (ファイル システム自体が実際に境界内にある場合)、ループ デバイスを使用して偽のパーティションにアクセスできます。
losetup --find --show --read-only --offset=$((9766436864*512)) /dev/sdx
ファイルシステムがデバイスより大きい場合は、より大きなデバイスにコピーするか、デバイス マッパー (dmsetup でリニア ターゲットを作成) を介してより大きなデバイスをエミュレートする必要があります。 にすべてをすでにバックアップしている場合は、にコピーして最初のパーティションを大きくすること/dev/sdd1
ができます。/dev/sdd2
/dev/sdd1
したがって、この問題に対処する方法はいくつかありますが、それがうまくいくかどうかは、失われた数メガバイトがファイルシステムにとってどれほど重要であったかによって決まります。それらのサイズは元に戻りません。