BTRFS 无法挂载,也无法替换磁盘

BTRFS 无法挂载,也无法替换磁盘

我的情况是这样的,我有一个用作备份服务器的 NAS,还有另一台也有一个完整备份的 Linux 机器。NAS 有三个 2TB 的驱动器,所以我决定尝试使用 RAID5 的 BTRFS 来查看它的效果如何。我镜像了两者,一切正常。后来我决定在第二台机器上升级操作系统,所以我删除了第二个备份的文件夹(数据可能还在那里)。我认为我有足够的时间处理 NAS 备份,所以我没有来得及做第二次备份(这发生在过去的 2 周内)。现在我的 NAS 有一个坏硬盘,我已经更换了,我无法安装 BTRFS 系统。我开始阅读网站并运行了该-repair选项,这在当时似乎是个好主意,但后来在帖子中指出事实并非如此。

所以现在我已经完全停下来了,这样就不会再损坏任何东西了。 dmesg指出 BTRFS 无法挂载设备,因为替换操作正在进行中,但btrfs replace status /mnt表示它从未启动过。

我的问题:
1) 是否仍然可以恢复和备份我的 BTRFS 驱动器?
2) 如果可以,我需要提供哪些信息才能开始执行此操作?
3) 如果不行,现在是否有任何工具可以恢复我的其他备份?我想我将驱动器从 ext4 格式化为 xfs。

提前致谢。

编辑:我忘了说我最初确实是使用以下信息开始替换的这里。并且由于电源故障必须重新启动。

编辑 2:是否有可能将 RAID5 从 3 个驱动器降级为仅 2 个,而无需其他驱动器?

编辑3:当我让系统停留在那里时出现内核错误:

[ 685.809945] ------------[ 从这里切开 ]------------
[ 685.810386] 内核 BUG 位于 /build/linux-a2WvEb/linux-4.4.0/fs/btrfs/raid56.c:1917!
[ 685.810833] 无效操作码:0000 [#1] SMP
[685.811279] 链接的模块:crct10dif_pclmul crc32_pclmul aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper input_leds cryptd snd_hda_codec_realtek serio_raw snd_hda_codec_generic snd_hda_codec_hdmi shpchp snd_hda_intel k10temp snd_hda_codec snd_hda_core snd_hwdep snd_pcm i2c_piix4 snd_seq_midi snd_seq_midi_event snd_rawmidi nuvoton_cir rc_core snd_seq snd_seq_device snd_timer snd mac_hid soundcore kvm_amd kvm irqbypass nfsd auth_rpcgss parport_pc nfs_acl lockd ppdev grace lp sunrpc parport autofs4 btrfs raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 多路径线性 pata_acpi hid_generic usbhid hid amdkfd amd_iommu_v2 radeon i2c_algo_bit ttm drm_kms_helper syscopyarea sysfillrect sysimgblt r8169 fb_sys_fops mii drm pata_atiixp
[685.813359] ahci libahci fjes
[ 685.813876] CPU:1 PID:2553 通信:btrfs-transacti 未受污染 4.4.0-36-generic #55-Ubuntu
[ 685.814400] 硬件名称:由 OEM 填充由 OEM/FM2A85X-ITX 填充,BIOS P1.50 05/04/2013
[685.814931] 任务:ffff8800db2cb700 ti:ffff8800d3a54000 task.ti:ffff8800d3a54000
[ 685.815462] RIP:0010:[] [] __raid_recover_end_io+0x475/0x520 [btrfs]
[685.816028] RSP:0018:ffff8800d3a57720 EFLAGS:00010213
[685.816568] RAX:ffff8800d3ce5700 RBX:ffff8800d0c66000 RCX:00000000000000000
[685.817112] RDX:0000000080000000 RSI:0000000000000000 RDI:0000000000000003
[685.817658] RBP:ffff8800d3a57760 R08:ffffea00035596c0 R09:0000000000000018
[685.818207] R10:ffff8800d0c1d9a0 R11:ffffffff81ccf5ea R12:ffff8800d0c1d9b0
[685.818759] R13:0000000000000003 R14:ffff8800d0c1d9a0 R15:ffff8800d2f87000
[685.819316] FS:00007f108f26b700(0000) GS:ffff88011ec80000(0000) knlGS:00000000000000000
[685.819876]CS:0010 DS:0000 ES:0000 CR0:000000008005003b
[685.820436] CR2:0000000000ef5000 CR3:0000000001e0a000 CR4:00000000000406e0
[685.820999]堆栈:
[685.821557] 0000000000000000 000000000000010 00000010000001 0000000000000
[685.822128] 0000000000000010 ffff8800d2f87000 0000000000000003 ffff8800d2f87000
[685.822695] ffff8800d3a577b0 ffffffffc04169d5 ffff8800d3a57770 00000000000000000
[ 685.823258] 呼叫追踪:
[ 685.823832] [] __raid56_parity_recover+0x1e5/0x200 [btrfs]
[ 685.824410] [] raid56_parity_recover+0xf6/0x160 [btrfs]
[ 685.824990] [] btrfs_map_bio+0xe3/0x320 [btrfs]
[ 685.825557] [] ?kmem_cache_alloc+0x187/0x1f0
[685.826137][]? btrfs_bio_wq_end_io+0x28/0x70 [btrfs]
[ 685.826720] [] btree_submit_bio_hook+0xff/0x110 [btrfs]
[ 685.827305] [] submit_one_bio+0x6d/0xa0 [btrfs]
[ 685.827886] [] 读取范围缓冲区页面 + 0x193/0x2f0 [btrfs]
[ 685.828464] [] ?free_root_pointers+0x60/0x60 [btrfs]
[ 685.829040] [] btree_read_extent_buffer_pages.constprop.51+0xac/0x110 [btrfs]
[ 685.829621] [] btrfs_read_buffer+0x2c/0x30 [btrfs]
[ 685.830199] [] read_block_for_search.isra.34+0xe4/0x380 [btrfs]
[ 685.830781] [] ?解锁_up + 0x172 / 0x1a0 [btrfs]
[ 685.831363] [] btrfs_search_slot+0x381/0xa00 [btrfs]
[ 685.831946 ] [] lookup_inline_extent_backref + 0xed/0x5a0 [btrfs]
[ 685.832532] [] ?设置_extent_dirty + 0x32/0x40 [btrfs]
[685.833114][]? btrfs_alloc_path + 0x1a/0x20 [btrfs]
[ 685.833696] [] __btrfs_free_extent.isra.70+0x113/0xd30 [btrfs]
[ 685.834285] [] ?btrfs_merge_delayed_refs+0x66/0x650 [btrfs]
[ 685.834873] [] __btrfs_run_delayed_refs+0xaab/0x11f0 [btrfs]
[ 685.835452] [] ?lock_timer_base.isra.22+0x54/0x70
[ 685.836038] [] btrfs_run_delayed_refs+0x7d/0x2a0 [btrfs]
[ 685.836627] [] ?btrfs_wait_pending_ordered+0x22/0x90 [btrfs]
[ 685.837214] [] btrfs_commit_transaction+0x4d2/0xa90 [btrfs]
[ 685.837801] [] transaction_kthread+0x229/0x240 [btrfs]
[ 685.838390] [] ?btrfs_cleanup_transaction+0x570/0x570 [btrfs]
[ 685.838970 ] [] k线程+0xd8/0xf0
[ 685.839548] [] ?kthread_create_on_node+0x1e0/0x1e0
[ 685.840132 ] [ ] ret_from_fork + 0x3f/0x70
[ 685.840718] [] ?kthread_create_on_node+0x1e0/0x1e0
[685.841304] 代码:75 d4 89 45 d0 e9 94 fe ff ff 8b 5d d0 4c 89 f1 be 00 10 00 00 89 da ff 15 c9 dc eb ff 8b 45 d4 89 5d d4 89 45 d0 e9 72 fd ff ff 0b 4d 8d a7 98 00 00 00 4c 89 e7 e8 ea 75 41 c1 f0 41 80 8f
[685.842653] RIP [] __raid_recover_end_io+0x475/0x520 [btrfs]
[685.843314] 回购
[685.843980] ---[结束跟踪 d312a2207e01141e]---

答案1

提醒:btrfs 的 raid5 模式极不稳定,尤其是在恢复方面。

对您来说,最好的解决方案是使用救援工具(man 8 btrfs-restore)并保存所有可以保存的数据。

相关内容