外部HDを修正する方法?

外部HDを修正する方法?

700GB exFATパーティションと300GB LUKSパーティションという2つのパーティションに分かれた外付けハードドライブがあります。私のコンピュータからluksパーティションにコピーしていましたが、速度が遅くなり、停止してUSB接続を削除することにしました。 LUKSパーティションはマウントされておらず、重要なファイルでいっぱいです。 :( この問題をどのように解決できますか? 以下は 2 つの出力です。

$ sudo parted -l

Model: ********** (scsi)
Disk /dev/sdb: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size   Type     File system  Sinalizador
 1      1049kB  300GB   300GB  primary
 2      300GB   1000GB  700GB  primary

$ sudo fsck /dev/sdb

fsck from util-linux 2.28.2
e2fsck 1.43.3 (04-Sep-2016)
ext2fs_open2: Bad magic number in super-block
fsck.ext2: Superblock invalid, trying backup blocks...
fsck.ext2: Bad magic number in super-block while trying to open /dev/sdb

The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem.  If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>
 or
    e2fsck -b 32768 <device>

Found a dos partition table in /dev/sdb

助けてください!

編集する

フォローするこれチュートリアルを見て、スーパーブロックバックアップに復元してみてください。これを使ってすべてのバックアップを見つけました。

$ sudo mke2fs -n /dev/sdb

mke2fs 1.43.3 (04-Sep-2016)
Found a dos partition table in /dev/sdb
Proceed anyway? (y,n) y
Creating filesystem with 244189952 4k blocks and 61054976 inodes
Filesystem UUID: ***************************
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
    102400000, 214990848

リストされているすべてのブロック番号を復元しようとしましたが、常に同じエラーメッセージが表示されます。例:

$ sudo e2fsck -b 32768 /dev/sdb

e2fsck 1.43.3 (04-Sep-2016)
e2fsck: Bad magic number in super-block while trying to open /dev/sdb

The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem.  If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>
 or
    e2fsck -b 32768 <device>

Found a dos partition table in /dev/sdb

答え1

fsckコマンドが無効なデバイスノードを指しています。

ディスクを分割しているため、ディスク/dev/sdb装置全体でファイルシステム回復ツールを実行しないでください。/dev/sdb物理パーティションでのみ実行する必要があります。

ただし、/dev/sdb2パーティションがLUKS暗号化パーティションであるため、これを実行することはfsckまったくsdb2役に立ちません。パーティションは暗号化されているため、sdb2その内容はLUKSヘッダーを除いてデフォルトでランダムノイズと区別できないように見えます。これが暗号化がすることです。

代わりに、まず次のように暗号化のロックを解除する必要があります。

cryptsetup luksOpen /dev/sdb2 sdb2_crypt

暗号化されたパスワードの入力を求められます。コマンドが成功すると、別のデバイスノードが作成されます/dev/mapper/sdb2_crypt。デバイスを使用し、ただこのデバイスでは、LUKS暗号化/暗号解読「フィルタ」を介して暗号化されたパーティションのコンテンツにアクセスでき、暗号化されていない一般的なデバイスのように見えます。システムをシャットダウンまたはcryptsetup luksCloseロックした暗号化を使用すると、暗号化が再びロック解除されるまでデバイスが消えます。

これにはファイルシステムチェックの実行が含まれます。

fsck /dev/mapper/sdb2_crypt

/dev/mapper/sdb2_crypt同様に、暗号化されたパーティションをマウントするときは、元の暗号化されたパーティションではなくそのデバイスを使用する必要があります/dev/sdb2

答え2

LUKSヘッダーが破損していないことを確認してください。

cryptsetup luksDump /dev/sdb2

エラーが発生した場合は申し訳ありませんが、LUKSヘッダーをバックアップしないと、重要なファイルを回復できません。

LUKSヘッダーのバックアップがある場合は復元できます。

cryptsetup luksHeaderRestore /dev/sdb2 --header-backup-file somefile

答え3

ハードウェア層から始めることをお勧めします。 /var/log/messagesにディスク関連のエラーが表示されますか?たとえば、ケーブルまたはディスク自体がこれらの問題の根本原因である可能性があります。問題は、ハードウェア問題であれば、発生した災害が復旧しても再発生する可能性が高いという点だ。

関連情報