linux - “usebackuproot”挂载选项在 BTRFS 上生效后我该怎么办?
问题描述
更改 BCache 缓存设备后,如果没有“usebackuproot”选项,我无法挂载我的 BTRFS 文件系统;我怀疑没有任何磁盘故障的损坏。我尝试重新创建以前的缓存设置,但似乎没有帮助。
那么问题来了,现在呢?两者都btrfs rescue chunk-recover
失败btrfs check
了,但是使用“usebackuproot”选项我可以以r/w方式挂载它,数据看起来很好,并且btrfs rescue super-recover
没有报告任何问题。我目前正在执行清理操作,但还需要几个小时。
我可以信任存储在该文件系统上的数据吗?我在损坏发生前不久制作了一个只读快照,但仍在同一个文件系统中;我可以相信吗?是否会btrfs scrub
或任何其他操作真正检查我的任何文件是否损坏?我是否应该将“usebackuproot”添加到我的 /etc/fstab(和 update-initramfs)中并收工?
解决方案
我不知道这是否适用于所有人,但我通过以下步骤保存了我的文件系统*:
mount -o usebackuproot
使用†</li> 挂载文件系统- 擦洗挂载的文件系统
btrfs scrub
- 卸载(或以 ro 身份重新安装)文件系统并运行
btrfs check --mode=lowmem
‡</li>
*这些步骤假设您无法正常挂载文件系统并且btrfs check
失败。否则,请先尝试。
†如果此步骤失败,请尝试运行btrfs rescue super-recover
,如果仅此一项并不能解决问题,btrfs rescue chunk-recover
.
‡如果发现问题,此命令将不会修复您的文件系统,但否则它会占用大量内存,并且如果在实时映像中运行,则会被内核杀死。如果发现问题,请制作或使用单独的安装来运行btrfs check --repair
.
推荐阅读
- python - 从 unstack() 到 Pandas 中的数据框
- c++ - 整数没有正确相加,但双打工作正常
- r - 有没有办法使用 R 根据关联来挑选数据?
- c# - 未读取数据库中的值
- javascript - Firestore 错误:“函数 Query.startAfter() 需要有效的第一个参数,但未定义。”
- php - 从需要/包含 PHP 文件中调用表单会导致白屏死机
- android - BottomSheet 中的 RecyclerView 未按预期工作
- python - 将字符串字典转换为可索引数组
- c - 警告:格式“%s”需要“char *”类型的参数,但参数 2 的类型为“char (*)[30]”[-Wformat=]
- android - 配置更改(轮换)后,FragmentTabHost 随机变为空白