btrfs外置SSD强制只读,会挂载,部分文件不稳定——如何恢复数据?

btrfs外置SSD强制只读,会挂载,部分文件不稳定——如何恢复数据?

我使用 btrfs 文件系统格式化了外部 SSD,并且无论我是 root 用户还是唯一的其他用户,都可以很好地读取和写入它。我认为 Pop OS 不喜欢 SSD 被移除的方式,并且在关闭时屏幕上出现红色错误。此后 SSD 驱动器 (sda1) 为只读。我认为 Pop!_OS 错误提到了 LVM。我不知道 Pop 关闭错误日志可能在哪里,所以我可以准确地告诉你它所说的内容。我找到了看起来像启动日志的内容,但关闭日志也有帮助。

这是来自journal.log:

Feb 04 23:21:07 pop-os kernel: sd 1:0:0:0: [sda] Attached SCSI disk
Feb 04 23:21:07 pop-os kernel: system76_acpi: loading **out-of-tree** module **taints** kernel.
Feb 04 23:21:33 pop-os kernel: BTRFS info (device sda1): bdev /dev/sda1 errs: wr 1, rd 2, flush 0, **corrupt** 3, gen 0
Feb 04 23:21:38 pop-os kernel: sd 1:0:0:0: [sda] tag#0 **FAILED** Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
Feb 04 23:21:38 pop-os kernel: sd 1:0:0:0: [sda] tag#0 Sense Key : Hardware Error [current] 
Feb 04 23:21:38 pop-os kernel: sd 1:0:0:0: [sda] tag#0 Add. Sense: Internal target failure
Feb 04 23:21:38 pop-os kernel: sd 1:0:0:0: [sda] tag#0 CDB: Read(10) 28 00 00 e1 2b 88 00 00 80 00
Feb 04 23:21:38 pop-os kernel: **critical** target error, dev sda, sector **14756744** op 0x0:(READ) flags 0x80700 phys_seg 16 prio class 0

Feb 04 23:21:39 pop-os kernel: **critical** target error, dev sda, sector **60338288** op 0x0:(READ) flags 0x80700 phys_seg 16 prio class 0

Feb 04 23:21:41 pop-os kernel: **critical** target error, dev sda, sector **73452720** op 0x0:(READ) flags 0x80700 phys_seg 16 prio class 0

Feb 04 23:22:04 pop-os kernel: **critical** target error, dev sda, sector **154215456** op 0x0:(READ) flags 0x80700 phys_seg 64 prio class 0

Feb 04 23:22:04 pop-os kernel: **BTRFS error** (device sda1): **error reading free space cache**
Feb 04 23:22:04 pop-os kernel: BTRFS warning (device sda1): failed to load free space cache for block group 40832598016, rebuilding it now

Feb 04 23:22:05 pop-os kernel: **BTRFS warning (device sda1): chunk 13631488 missing 1 devices, max tolerance is 0 for writable mount**
Feb 04 23:22:05 pop-os kernel: **BTRFS: error (device sda1) in write_all_supers:4433: errno=-5 IO failure (errors while submitting device barriers.)**
Feb 04 23:22:05 pop-os kernel: BTRFS info (device sda1: state E): **forced readonly**
Feb 04 23:22:05 pop-os kernel: BTRFS warning (device sda1: state E): Skipping commit of aborted transaction.
Feb 04 23:22:05 pop-os kernel: BTRFS: error (device sda1: state **EA**) in cleanup_transaction:1982: **errno=-5 IO failure**

我尝试使用其他几个应用程序访问驱动器,以防错误消息的组合可以提供帮助。标有“Libparted 警告”的 Gparted 对话窗口给出了错误消息“fsyncing/ opening /dev/sda1 错误:远程 I/O 错误”。 LibreWriter 给出了两个错误:“保存文档时出错..驱动器路径不存在。”和“保存文档文件名时出错:写入错误。无法写入文件。”

以下是它在 Dolphin 文件管理器中的行为方式:我可以将一些文件复制到笔记本电脑内部 SSD 上,但有些文件只是将其挂起并且不会复制,然后会弹出一条 Dolphin 错误消息:“(Errno: 5)”。我还看到了来自 dolphin 的另一条错误消息:“此设备上的一个或多个文件在应用程序“dolphinqhVENO.57.slave-socket”中打开。” (这是什么意思?)这也是发生的事情:我会进入一些目录,但看不到其中的文件。 (通常(现在)我看到这些文件,但无法复制。)然后我走过去并运行,testdisk直到看到它有一个 GPT 分区表,并注意到它是 btrfs,一个它无法进一步工作的文件系统,然后回到 dolphin我可以在目录中看到文件。在图像文件上,dolphin 显示一个迷你缩略图,我可以看到它所知道的整个图像,但要在 GIMP 中将其拉出,要么是一个黑色图像,要么是另一个显示图像的前 5 个图像以及下面的所有内容它已经被黑了。更有趣的事情是,我将复制的文件从笔记本电脑移至更安全的其他外部 SSD 上。其中一些文件按预期移动,有些则没有,海豚返回时出现相同的错误:5。我的数据是否仍然存在,就像我认为树结构需要重新对齐和稳定一样?那么目录将“知道”其中有哪些文件并且文件“知道”其中有哪些数据? SSD是相当新的,我想知道我上面加粗的那些扇区是否真的很糟糕并且无法继续使用,或者在这些点上的一些“对齐”足以触发错误,并且修复整体结构也将把它拉到位。是否需要像 Gparted 提到的那样同步/关闭某些内容?除非问题出在该驱动器周围的文件上?

$ sudo btrfs check /dev/sda1
Opening filesystem to check...
Checking filesystem on /dev/sda1
UUID: (the number)
[1/7] checking root items
[2/7] checking extents
[3/7] checking free space cache
Error reading 80022618112, -1
failed to load free space cache for block group 40832598016
[4/7] checking fs roots
[5/7] checking only csums items (without verifying data)
[6/7] checking root refs
[7/7] checking quota groups skipped (not enabled on this FS)
found 109238472704 bytes used, no error found
total csum bytes: 106517876
total tree bytes: 137166848
total fs tree bytes: 3325952
total extent tree bytes: 2850816
btree space waste bytes: 23485371
file data blocks allocated: 109145407488
 referenced 109100597248
$ dmesg | tail
[ 3370.531377] sd 1:0:0:0: Attached scsi generic sg0 type 0
[ 3370.531640] sd 1:0:0:0: [sda] 976773168 512-byte logical blocks: (500 GB/466 GiB)
[ 3370.531644] sd 1:0:0:0: [sda] 4096-byte physical blocks
[ 3370.531814] sd 1:0:0:0: [sda] Write Protect is off
[ 3370.531817] sd 1:0:0:0: [sda] Mode Sense: 5f 00 00 08
[ 3370.532132] sd 1:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 3370.532250] sd 1:0:0:0: [sda] Preferred minimum I/O size 4096 bytes
[ 3370.532253] sd 1:0:0:0: [sda] Optimal transfer size 33553920 bytes not a multiple of preferred minimum block size (4096 bytes)
[ 3370.537416]  sda: sda1
[ 3370.537565] sd 1:0:0:0: [sda] Attached SCSI disk

相关内容