NTFS パーティションが突然使用できなくなりました。「エラー: /dev/sdX の読み取り中にファイルの終わりに達しました」

NTFS パーティションが突然使用できなくなりました。「エラー: /dev/sdX の読み取り中にファイルの終わりに達しました」

私は、SSD 上に Ubuntu ボックスと、/dev/sdbいくつかの NTFS パーティションを持つセカンダリ HDD ( ) を持っています。

背景情報: 昨日、マシンが応答しなくなり、強制的にシャットダウン (電源を切る) する必要がありました。再起動すると、Ubuntu は緊急モードに切り替わります。HDD の UUID が消えた ( に表示されないblkid) ため、 が/etc/fstab破損していることがわかりました。 のディスクの行をコメント アウトしてfstab、Ubuntu を起動することができました。

今、HDD を再度マウントしようとしています。まず、Gparted を試しました。これは、libparted (gparted によって使用される) からの出力です。

======================
libparted : 3.2
======================
end of file while reading /dev/sdb
The primary GPT table is corrupt, but the backup appears OK, so that will be used.

興味深いことに、UUID ではなく PTUUID がsudo blkid表示されます。/dev/sdb

$ sudo blkid
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/sda1: UUID="e407bc1c-4c2d-4dae-80ce-e6bd96346698" TYPE="ext4" PARTUUID="659e6a1e-01"
/dev/sda5: UUID="f9500440-cddf-41f6-8512-5a30e66fbf3d" TYPE="swap" PARTUUID="659e6a1e-05"
/dev/sda6: UUID="18abc384-a610-4f65-8430-0109548a89ef" TYPE="ext4" PARTUUID="659e6a1e-06"
/dev/sdb: PTUUID="a6e9090d-b5ab-412a-8568-2eee08fa3fa8" PTTYPE="gpt"

パーティションはまだ存在していると確信していますが、マウントできないだけです。parted正しくリストされています:

$ sudo parted
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) select /dev/sdb                                                  
Using /dev/sdb
(parted) p                                                                
Error: end of file while reading /dev/sdb
Retry/Ignore/Cancel? i                                                    
Error: The primary GPT table is corrupt, but the backup appears OK, so that will be used.
OK/Cancel? OK                                                             
Model: ATA ST1000LM024 HN-M (scsi)
Disk /dev/sdb: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name                          Flags
 1      1049kB  316MB   315MB                EFI system partition          boot, esp
 2      316MB   945MB   629MB   ntfs         Basic data partition          hidden, diag
 3      945MB   1079MB  134MB                Microsoft reserved partition  msftres
 4      1079MB  979GB   978GB   ntfs         Basic data partition          msftdata
 5      979GB   1000GB  21,5GB  ntfs         Basic data partition          hidden, diag

(parted) q

したがって、パーティションをマウントできない原因となっている可能性のあるエラーが 2 つあります ( Error: end of file while reading /dev/sdbError: The primary GPT table is corrupt, but the backup appears OK, so that will be used.)。解決方法はありますか?

編集これは次の出力ですntfsfix:

$ sudo ntfsfix /dev/sdb
Mounting volume... NTFS signature is missing.
FAILED
Attempting to correct errors... NTFS signature is missing.
FAILED
Failed to startup volume: Invalid argument
NTFS signature is missing.
Trying the alternate boot sector
Unrecoverable error
Volume is corrupt. You should run chkdsk.

編集gdiskの出力

GPT fdisk (gdisk) version 1.0.1

Caution: invalid main GPT header, but valid backup; regenerating main header
from backup!

Caution! After loading partitions, the CRC doesn't check out!
Warning! Main partition table CRC mismatch! Loaded backup partition table
instead of main partition table!

Warning! One or more CRCs don't match. You should repair the disk!

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: damaged

****************************************************************************
Caution: Found protective or hybrid MBR and corrupt GPT. Using GPT, but disk
verification and recovery are STRONGLY recommended.
****************************************************************************

編集これは私が誤って実行したコマンドであり、問​​題を引き起こしました。sudo dd if=/dev/zero of=/dev/sdb bs=512 seek=1

答え1

gdiskTLDR: (コマンド)で書き込むことで、ディスク (データを含む) を復元できましたw

dd質問とコメントのセクションで議論されたように、シナリオは次のとおりです。に 0 を含む を発行して、ディスクの GPT ヘッダーを誤って破壊してしまいました/dev/sdb

私は走ったgdisk(8)ディスク上で、GPT ヘッダーが破損していることが通知されましたが、バックアップは正常であり、バックアップがロードされました。 CLI でgdiskwコマンド (パーティション テーブル情報をディスクに書き込む) を実行して終了しました。 その後、/dev/sdbUbuntu によって即座に認識されてマウントされ、他の変更は必要ありませんでした。

関連情報