在过去的几天里,我注意到我的电脑要么在启动后立即处于只读模式,要么在启动后不久处于只读模式。以下是 dmesg 中显示的错误。我发布了dmesg | grep btrfs
[ 109.322761] WARNING: CPU: 1 PID: 230 at fs/btrfs/extent-tree.c:3076 btrfs_run_delayed_refs+0x167/0x1b0 [btrfs]
[ 109.322822] pps_core lpc_ich sg crypto_user ip_tables x_tables btrfs xor zstd_decompress zstd_compress xxhash raid6_pq sr_mod sd_mod cdrom hid_generic usbhid hid mvsas libsas ahci scsi_transport_sas libahci ehci_pci xhci_pci libata xhci_hcd ehci_hcd crc32c_intel scsi_mod usbcore usb_common nvidia_drm(PO) nvidia_modeset(PO) drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops drm agpgart nvidia(PO) ipmi_devintf ipmi_msghandler
[ 109.322910] Workqueue: btrfs-extent-refs btrfs_extent_refs_helper [btrfs]
[ 109.322945] RIP: 0010:btrfs_run_delayed_refs+0x167/0x1b0 [btrfs]
[ 109.322989] delayed_ref_async_start+0x8d/0xa0 [btrfs]
[ 109.323014] normal_work_helper+0x39/0x370 [btrfs]
[ 109.323111] BTRFS: error (device sdb4) in btrfs_run_delayed_refs:3076: errno=-17 Object already exists
由于文件系统变为只读,这就是我得到的所有错误信息。我运行了 btrfs check,以下是输出。
WARNING: filesystem mounted, continuing because of --force
Checking filesystem on /dev/sdb4
UUID: 3fdec1ea-351f-40c3-a75a-974279e1d0e7
checking extents
checking free space cache
there is no free space entry for 15187968-15192064
there is no free space entry for 15187968-20971520
cache appears valid but isn't 12582912
ERROR: errors found in free space cache
found 79941521408 bytes used, error(s) found
total csum bytes: 71290456
total tree bytes: 1052409856
total fs tree bytes: 905068544
total extent tree bytes: 58998784
btree space waste bytes: 181546084
file data blocks allocated: 285620469760
referenced 77330452480
更详细地说,这是 fdisk 显示的驱动器分区图
Disk /dev/sdb: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: F8B87DB6-4AB2-4090-9C36-93F4CD94C9B3
Device Start End Sectors Size Type
/dev/sdb1 2048 411647 409600 200M EFI System
/dev/sdb2 411648 2508799 2097152 1G Linux filesystem
/dev/sdb3 2508800 18982911 16474112 7.9G Linux swap
/dev/sdb4 18982912 3907028991 3888046080 1.8T Linux filesystem
任何帮助解决此问题的帮助都将不胜感激。我尝试过 btrfs 修复。在我运行它的 1 小时内,它一直打印出相同的内容。它说的是有关校验和的内容。我没有确切的输出,因为它是在实时系统上运行的。