ext4를 btrfs로 변환할 때 "데이터 블록 손실" 발생

ext4를 btrfs로 변환할 때 "데이터 블록 손실" 발생

테스트 가상 머신에서 두 번째 디스크를 btrfs로 변환하려고 합니다.

오류로 인해 변환이 실패했습니다 missing data block for bytenr 1048576(아래 참조).

이 오류에 대한 정보를 찾을 수 없습니다. 이 문제를 해결하려면 어떻게 해야 합니까?

$ fsck -f /dev/sdb1
fsck from util-linux 2.35.2
e2fsck 1.45.6 (20-Mar-2020)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb1: 150510/4194304 files (0.5% non-contiguous), 2726652/16777216 blocks

$ btrfs-convert /dev/sdb1
create btrfs filesystem:
        blocksize: 4096
        nodesize:  16384
        features:  extref, skinny-metadata (default)
        checksum:  crc32c
creating ext2 image file
ERROR: missing data block for bytenr 1048576
ERROR: failed to create ext2_saved/image: -2
WARNING: an error occurred during conversion, filesystem is partially created but not finalized and not mountable

답변1

그건허점

이제 오류를 확인했으므로 부호 없는 정수를 곱할 때 약간의 오버플로가 발생합니다.

또한보십시오:

해결 방법으로 변환하기 전에 파일 시스템 크기를 더 작게/더 크게 조정할 수 있습니다.

답변2

이 버그는 btrfs-progs 버전 5.7(기본적으로 Ubuntu 20.10)에 존재하며 다른 크기에서도 나타납니다(여기서는 457.26 GiB 드라이브가 있습니다). 더 높은 버전의 btrfs-progs(예: Ubuntu 21.04에서 5.10으로)로 업그레이드하면 문제가 해결될 수 있습니다.

편집: 프로덕션 솔루션(커널/btrfs-progs 버전 불일치)으로는 권장되지 않지만 어려운 상황에서 벗어날 수 있습니다. 이미 새 버전이 있는 복구 시스템을 사용하는 것이 가장 좋습니다.

관련 정보