BTRFS가 탑재되지 않으며 디스크를 교체할 수 없습니다.

BTRFS가 탑재되지 않으며 디스크를 교체할 수 없습니다.

내 상황은 다음과 같습니다. 백업 서버로 사용하는 NAS와 전체 백업이 있는 다른 Linux 시스템도 있습니다. NAS에는 3개의 2TB 드라이브가 있으므로 RAID5와 함께 BTRFS를 시도하여 그것이 얼마나 잘 작동하는지 확인하기로 결정했습니다. 나는 둘 다 미러링했고 모든 것이 잘되었습니다. 나중에 두 번째 시스템에서 OS를 업그레이드하기로 결정했기 때문에 두 번째 백업이 포함된 폴더를 삭제했습니다(데이터는 여전히 남아 있을 수 있습니다). 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] /build/linux-a2WvEb/linux-4.4.0/fs/btrfs/raid56.c:1917의 커널 버그!
[ 685.810833] 잘못된 opcode: 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 d 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 _helper syscopyarea sysfilllect 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: 0000000000000000
[ 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:0000000000000000
[ 685.819876] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 685.820436] CR2: 0000000000ef5000 CR3: 0000000001e0a000 CR4: 00000000000406e0
[ 685.820999] 스택:
[ 685.821557] 0000000000000000 0000000000000010 0000000100000001 0000000000000000
[ 685.822128] 0000000000000010 ffff8800d2f87000 0000000000000003 ffff8800d2f87000
[ 685.822695] ffff8800d3a577b0 ffffffffc04169d5 ffff8800d3a57770 0000000000000000
[ 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] [] read_extent_buffer_pages+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] [] ? Unlock_up+0x172/0x1a0 [btrfs]
[ 685.831363] [] btrfs_search_slot+0x381/0xa00 [btrfs]
[ 685.831946] [] lookup_inline_extent_backref+0xed/0x5a0 [btrfs]
[ 685.832532] [] ? set_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] [] kthread+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 디 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] RSP
[ 685.843980] ---[ 추적 종료 d312a2207e01141e ]---

답변1

알림:btrfs의 raid5 모드는 특히 복구의 경우 매우 불안정합니다.

가장 좋은 해결책은 구조 도구( )를 사용 man 8 btrfs-restore하고 가능한 모든 데이터를 저장하는 것입니다.

관련 정보