
btrfs ファイルシステムのマウント中に問題が発生しました。もともとxbianを実行しているサーバーで作成されました。最新のOpenSUSE 42.2サーバーにインストールしてみてください。サポートされていない機能0x10の苦情、open_ctreeが失敗しました。
このファイルシステムをどのようにマウントできますか?
マウント試行
# file -s /dev/sdc2
/dev/sdc2: BTRFS Filesystem (label "xbian", sectorsize 4096, nodesize 16384, leafsize 16384)
# mount -t btrfs /dev/sdc2 /mnt
mount: wrong fs type, bad option, bad superblock on /dev/sdc2,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so.
#
dmesg 出力
[ 119.698406] BTRFS info (device sdc2): disk space caching is enabled
[ 119.698409] BTRFS: couldn't mount because of unsupported optional features (10).
[ 119.744887] BTRFS: open_ctree failed
BTRFSバージョン
# rpm -qa|grep btrfs
btrfsprogs-udev-rules-4.5.3-3.1.noarch
btrfsprogs-4.5.3-3.1.x86_64
libbtrfs0-4.5.3-3.1.x86_64
btrfsmaintenance-0.2-13.1.noarch
#
Btrfs検査内部
不明なフラグを報告してください。この動作は、OpenSUSEが提供するデフォルトのbtrfsバージョン(btrfs-progs v4.5.3 + 20160729)とgitからダウンロードしてコンパイルした最新バージョン(btrfs-progs v4.9.1)で発生します。
# btrfs inspect-internal dump-super /dev/sdc2
superblock: bytenr=65536, device=/dev/sdc2
---------------------------------------------------------
csum 0x394d4988 [match]
bytenr 65536
flags 0x1
( WRITTEN )
magic _BHRfS_M [match]
fsid 71ecbcc5-c88f-4f27-b4d8-763bd801765e
label xbian
generation 129
root 4669440
sys_array_size 97
chunk_root_generation 102
root_level 0
chunk_root 131072
chunk_root_level 0
log_root 0
log_root_transid 0
log_root_level 0
total_bytes 7451181056
bytes_used 691642368
sectorsize 4096
nodesize 16384
leafsize 16384
stripesize 4096
root_dir 6
num_devices 1
compat_flags 0x0
compat_ro_flags 0x0
incompat_flags 0x179
( MIXED_BACKREF |
COMPRESS_LZO |
COMPRESS_LZOv2 |
BIG_METADATA |
EXTENDED_IREF |
SKINNY_METADATA |
unknown flag: 0x10 )
csum_type 0
csum_size 4
cache_generation 129
uuid_tree_generation 112
dev_item.uuid a8b49751-56e3-4c42-a1d3-40a1554c800c
dev_item.fsid 71ecbcc5-c88f-4f27-b4d8-763bd801765e [match]
dev_item.type 0
dev_item.total_bytes 7451181056
dev_item.bytes_used 926941184
dev_item.io_align 4096
dev_item.io_width 4096
dev_item.sector_size 4096
dev_item.devid 1
dev_item.dev_group 0
dev_item.seek_speed 0
dev_item.bandwidth 0
dev_item.generation 0
#
答え1
問題は、実際には2つのLinuxバージョンのBTRFSバージョンが少し異なることです。つまり、同じ機能をサポートしていません。
[119.698406] BTRFS情報(デバイスsdc2):ディスク容量キャッシュが有効になっています。
[119.698409] BTRFS:オプション機能がサポートされていないためインストールできません(10)。
xbianはこの機能を有効にしていますが、OpenSuse 42.2では有効ではないため、相互運用性を妨げているようです。
これらのFS機能はオプションです。これは、mkfs.btrfsプログラムに渡されたパラメータによって制御される古いシステムから読み取ることができる(これらの機能なしで)、最新のシステムで古いバージョンと互換性のあるBTRFSパーティションを作成できることを意味します。
この機能の数値コードは 10 - 不明なフラグ: 0x10 です。このコードが何を意味するのかを理解するのに時間がかかりました(私の考えでは、拡張inodeを参照)。しかし、数が少なすぎるので、これは基本的な問題だと思います。パッチされていないカーネルでは、このファイルシステムを読み取ることができないようです。それ以外の場合は、関数がわかっている場合は、ここに示すようにfs圧縮アルゴリズムを指定して、エラーを避けるためにマウントオプションを指定できます。
mount -t btrfs -o compress=lz4 dev /mnt
この機能が何であるかわからない場合は、OpenSuseのカーネルをxbianに合わせて更新することはできません。通常、この場合は互換性の理由でext4を使用します。
答え2
私にはい
BTRFS error (device dm-5): open_ctree failed
カーネルを5.10から4.19にダウングレードした後。問題はですcompress=zstd:5
。/etc/fstab
文書、
ZSTD ... 4.14以降のレベル、5.1以降のレベル
変更後に再compress=zstd
利用できます。