テスト仮想マシンで2番目のディスクを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バージョンの不一致)では推奨されませんが、困難な状況から逸脱する可能性があります。すでに新しいバージョンの回復システムを使用するのが最善です。