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

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

我运行 btrfs scrap 并得到了这个:

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

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

答案1

正如 @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)

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

dmesg| grep -e "BTRFS warning.*path:" | sed -e 's/^.*path\: //'

答案2

journalctl如果您使用的是基于 的系统,您也可以使用systemd

$ sudo journalctl --dmesg --grep 'checksum error'

我的完整回应在上面链接的线程@Livius。

相关内容