I am getting messages such as:
kernel: Buffer I/O error on dev sdb1, logical block 107390598, async page read
In actuality, the USB HDD sdb
has been removed: lsblk
also shows no mention of sdb
.
I executed umount -l
on all its mounted filesystems until I got umount: /media/XXX: not mounted
.
I'm getting filesystem errors: sdb1
is NTFS containing a loopback btrfs filesystem. (I did umount -l
on the loopback filesystem before the containing filesystem)
Jul 11 11:14:13 svelte ntfs-3g[2744]: ntfs_attr_pread_i: ntfs_pread failed: Input/output error
Jul 11 11:14:13 svelte ntfs-3g[2744]: Failed to read vcn 0x0: Input/output error
Jul 11 11:14:13 svelte kernel: Buffer I/O error on dev sdb1, logical block 107390598, async page read
Jul 11 11:14:14 svelte sudo[26283]: pam_unix(sudo:session): session closed for user root
Jul 11 11:17:20 svelte ntfs-3g[2744]: ntfs_attr_pread_i: ntfs_pread failed: Input/output error
Jul 11 11:17:20 svelte kernel: Buffer I/O error on dev sdb1, logical block 107390598, async page read
Jul 11 11:17:20 svelte kernel: Buffer I/O error on dev sdb1, logical block 107390598, async page read
Jul 11 11:17:20 svelte kernel: blk_update_request: 40 callbacks suppressed
Jul 11 11:17:20 svelte kernel: blk_update_request: I/O error, dev loop0, sector 420501056
Jul 11 11:17:20 svelte kernel: btrfs_dev_stat_print_on_error: 40 callbacks suppressed
Jul 11 11:17:20 svelte kernel: BTRFS error (device loop0): bdev /dev/loop1 errs: wr 0, rd 211, flush 0, corrupt 0, gen 0
What's also weird is that the name of the loopback file is incorrect. It was actually /media/2TB/Backup/svelte-backup.btrfs
, but showing up as:
$ losetup
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO
/dev/loop0 0 0 1 0 /Backup/svelte-backup.btrfs 0
I can't remove this loop device, even though losetup -d
exits 0
.
The only work around I know of is to reboot.
Is there a way to tell the kernel to forget about sdb
? It's affecting btrfs because I believe the kernel is unhappy about having the same filesystem UUID "mounted" twice.