如何修复外部高清?

如何修复外部高清?

我有一个外部硬盘,它分为两个分区:一个 700GB 的 exFAT 和一个 300GB 的 LUKS 分区。我正在从计算机复制到 luks 分区,但速度变慢并且卡住,所以我决定删除 USB 连接。现在 LUKS 分区未挂载,并且其中充满了重要文件:( 我该如何解决此问题?以下是两个输出:

$ 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 是否显示任何与磁盘相关的错误?例如,电缆或磁盘本身可能是这些问题的根本原因。问题是,如果这是硬件问题,那么即使导致的灾难得到恢复,它也很可能再次发生。

相关内容