0

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.

1

I raised the issue losetup -d exits 0 when it doesn't succeed #484.

It seems the unmount didn't actually finish because of a process with working directory on the old FS mountpoint.

Lazy umount -l is dangerous.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.