
테스트 가상 머신에서 두 번째 디스크를 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
그건허점
이제 오류를 확인했으므로 부호 없는 정수를 곱할 때 약간의 오버플로가 발생합니다.
또한보십시오:
- https://github.com/kdave/btrfs-progs/commit/c9c4eb1f3fd343512d50b075b40bba656cbd02cb
- https://www.spinics.net/lists/linux-btrfs/msg103379.html
해결 방법으로 변환하기 전에 파일 시스템 크기를 더 작게/더 크게 조정할 수 있습니다.
답변2
이 버그는 btrfs-progs 버전 5.7(기본적으로 Ubuntu 20.10)에 존재하며 다른 크기에서도 나타납니다(여기서는 457.26 GiB 드라이브가 있습니다). 더 높은 버전의 btrfs-progs(예: Ubuntu 21.04에서 5.10으로)로 업그레이드하면 문제가 해결될 수 있습니다.
편집: 프로덕션 솔루션(커널/btrfs-progs 버전 불일치)으로는 권장되지 않지만 어려운 상황에서 벗어날 수 있습니다. 이미 새 버전이 있는 복구 시스템을 사용하는 것이 가장 좋습니다.