Btrfs 检查修复设备繁忙。如何查看设备为何一直处于繁忙状态?

Btrfs 检查修复设备繁忙。如何查看设备为何一直处于繁忙状态?

对于我的辅助硬盘(非启动硬盘),我处于先有鸡还是先有蛋的境地:

  • 我的 BTRFS 挂载已变为只读,因为没有剩余空间
  • btrfs filesystem resize仅适用于已安装的卷。
  • 我需要在强制模式下卸载这个 ro 挂载(因为设备忙)。
  • 如果我尝试安装 rw,则会因错误而失败(很可能是由于没有剩余空间导致的)
  • 如果我尝试运行,btrfs check --repair它显示设备繁忙

要做什么才能找出哪些东西一直处于/dev/sda忙碌状态?我的硬盘列在 中/etc/fstab,这重要吗 ( UUID=262a8d86-279a-4f6b-8968-32e200c32255 /mnt/hdd btrfs defaults,compress=zlib 0 1)???

我试过:

  • lsof | grep /dev/s-> 没有
  • lsof | grep /mnt/hdd-> 没有
  • 相同,对于fuser-> 没有

所以:

mount -o recovery /dev/sda /mnt/hdd

[63035.539792] BTRFS 错误(设备 sda):不允许在发生错误后重新挂载读写

如果我尝试运行:

root@myhost:/mnt# btrfs check --repair /dev/sda
enabling repair mode
ERROR: cannot open device '/dev/sda': Device or resource busy
ERROR: cannot open file system

答案1

https://btrfs.wiki.kernel.org/index.php/Btrfsck 强烈建议获取最新版本的 btrfs-tools 并使用以下命令恢复重要数据:

mount -o recovery,ro /dev/sda /mnt/hda
btrfs restore

在你之前:btrfs check --repair

建议安装 ro。

相关内容