web-dev-qa-db-ja.com

sfdiskでパーティションを縮小した後のリカバリGPT

1年前、私のHDDはWindowsから利用できましたが、Ubuntuからはマウントできませんでした。 Ubuntuでいくつかのテーブル修復ツールを使用しましたが、GUIDテーブルが破損しました。 WindowsでパーティションWizardを使用してテーブルを修正しましたが、論理パーティションの終了位置がディスクのセクター数(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 Microsoft基本データ

最後のセクターの番号が[sfdiskで指定可能な最大値] = 3907027021になるようにsdb1サイズの値を変更し、sfdiskで/ dev/sdbに書き換えました。その後、NTFSパーティションはUbuntuおよびWindowsから表示されますが、マウントできません。

これで、バックアップ付きのsfdiskのファイルができました。

ラベル:gpt 
 label-id:9F126AEE-463C-394E-A817-2AD9C33C6946 
 device:/dev/sdb
unit:sector 
 first-lba:34 
 last-lba:3907027021 
 
/dev/sdb1:start = 264192、size = 3906764800、type = 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
Nikolai

さて、私の場合、ユーティリティtestdiskはパーティションプロパティを自動的に修正しましたが、少なくともWindowsからハードドライブが再び見えるようになりました。

追伸また、Ubuntuから最後のパーティションの最後に数メガバイト(重複するブロックの数とブロックのサイズを許容できる必要があります)を追加した後も利用可能になります(Windowsのユーティリティによって少し縮小します)。

1
Nikolai