【问题标题】:btrfs can't mount after broken disk removed删除损坏的磁盘后 btrfs 无法挂载
【发布时间】:2017-07-05 09:43:28
【问题描述】:

我想在我的服务器上使用 btrfs 作为文件系统,我仍在研究最坏情况下的情况。

目前我想测试raid系统崩溃,我想测试的条件是:

  1. 如果我的磁盘坏了,如何更换它
  2. 如果无法替换,如何保存数据
  3. 如果我(或我的团队)不小心格式化了其中一个磁盘,如何修复它
  4. 如果我的磁盘不小心被盗了(我认为这种情况不可能,只是为了最坏的情况),如何更换它

对于我上面写的所有问题,我只能回答我的两个问题。

  1. 第一个答案是,我可以在拔掉损坏的磁盘之前使用replace方法。
  2. 回答二,我可以插外接硬盘,然后挂载它,我可以使用restore方法来保存我的数据

对于另一个问题,我没有测试它。

对于第 3 和第 4 个问题(如果我用另一个磁盘替换它),我尝试使用 mount -o degraded 但我无法安装它,它显示错误 wrong fs type, bad option, bad superblock on /dev/sdb。我试图用balance 方法重新平衡它,但我无法安装它。

拜托,我需要回答我的问题 3 和 4。

【问题讨论】:

    标签: filesystems btrfs


    【解决方案1】:
    1. 需要在磁盘完全死机之前完成替换选项,否则替换操作将不起作用(并且可能会搞砸阵列)。如果磁盘已经无法读取,则将其拉出并使用降级选项挂载。在阵列中添加一个新磁盘并告诉它删除丢失的设备,它应该将其全部整理出来。

    2. 如果您的阵列在数据和元数据上都具有冗余性,则单个故障磁盘不应该花费您的任何数据。如果由于某种原因阵列已损坏且不接受替换磁盘,您可以使用 btrfs recover 将可恢复的尽可能多的内容从阵列中复制到不同的存储系统中。然后重建数组。

    3. 格式化磁盘与磁盘坏了没有什么不同,只是您实际上并不需要新的物理磁盘。如果您的阵列是冗余的,请挂载降级,重新添加格式化的磁盘,然后删除丢失的磁盘。它应该自动重新平衡受影响的数据。完成后进行磨砂也是明智之举。

    4. 被盗的磁盘与损坏的磁盘相同。挂载降级,添加一个新的,并删除丢失的。

    您的坏超级块问题很可能是由于尝试挂载已格式化/替换的磁盘而引起的。格式化将删除 BTRFS 文件系统标识符,因此系统将无法检测到阵列中的其他驱动器。将仍然是阵列一部分的设备之一用于 mount 命令,它应该能够检测到其余设备。如果没有,那么在您删除/格式化磁盘之前,您的阵列可能没有处于一致的状态,并且没有足够的冗余来修复它。 btrfs recover 可能是您当时唯一的选择。根据具体情况,您可能需要运行 btrfs device scan 来重新检测哪些设备是阵列的一部分,哪些不是阵列的一部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多