btrfs 发现未更正的磁盘错误,如何找到它们所在的文件?

Art*_*ldt 7 btrfs

我运行了 btrfs 擦洗并得到了这个:

scrub status for 57cf76da-ea78-43d3-94d3-0976308bb4cc
    scrub started at Wed Mar 15 10:30:16 2017 and finished after 00:16:39
    total bytes scrubbed: 390.45GiB with 28 errors
    error details: csum=28
    corrected errors: 0, uncorrectable errors: 28, unverified errors: 0
Run Code Online (Sandbox Code Playgroud)

好的,我有很好的备份,我想知道这 28 个错误在哪些文件中,以便我可以从备份中恢复它们。这将为我节省大量时间来擦除和恢复整个磁盘。

Art*_*ldt 8

正如@derobert 在评论中指出的,路径可以在输出中找到dmesg,看起来像这样:

[ 1202.714916] BTRFS warning (device dm-2): checksum error at logical 470470615040 on dev /dev/mapper/a-root, sector 923098608, root 2757, inode 1120855, offset 110592, length 4
096, links 1 (path: usr/lib/firmware/iwlwifi-3945-2.ucode)
Run Code Online (Sandbox Code Playgroud)

此命令将打印要从备份中恢复的文件列表:

dmesg| grep -e "BTRFS warning.*path:" | sed -e 's/^.*path\: //'
Run Code Online (Sandbox Code Playgroud)