btrfsサブボリュームをマウントできません。

btrfsサブボリュームをマウントできません。

複数のサブボリュームを持つ大規模な古いBTRFS RAIDアレイがあります。

# btrfs subvolume list -u /bulk
ID 256 gen 56429 top level 5 uuid 11b16b2e-8f75-ec46-8cgd-4a001c70a4ba path @
ID 257 gen 56428 top level 256 uuid 0c81c066-dge1-464d-bd50-6f56e9d83e0a path @mine
ID 258 gen 56430 top level 256 uuid 6139b708-3226-324b-8bae-9eb810cfd226 path @shared

@fstabを介してマウントされたルートサブボリュームは、サブボリュームを私のホームディレクトリのどこかにマウントしたいbulkのですが、@mine何らかの理由で失敗し続けます。

# mount -t btrfs -o subvol=/@mine,defaults,nossd,user /dev/sdd2   /home/me/bulk
mount: /home/me/bulk: mount(2) system call failed: No such file or directory.
       dmesg(1) may have more information after failed mount system call.

興味深いことに、マスター - サブボリュームにはこの問題はありません。

# mount -t btrfs -o subvol=/@,defaults,nossd,user /dev/sdd2   /home/me/bulk

上記の作業は苦情なしに直接働きました。を介してマウントしようとすると同じ問題が発生します/etc/fstab。また、UUIDを介してマウントしようとしましたが、サブボリュームUUIDがまったく見つからず、まったく@share同じ動作を示しています。

サブボリュームの代わりにマウントすると、@読み取り/書き込みの問題がなく、サブボリュームを含むユーザーとして一般的にすべてにアクセスできます。ただし、実際にはホームディレクトリに特定のサブボリュームのみをマウントすることをお勧めします。確かにこれは可能でなければなりません。 (はい、インストール直後に「/@」を削除したため、マウントポイントが空です)

ルートボリュームと比較してサブボリュームをマウントするために必要な特定のオプションはありますか?

これが関連している場合:Manjaro Plasma、カーネルバージョン5.15.109-1-MANJAROを使用しています。

答え1

サブボリュームのリストは、少なくとも私には少し誤解を招く可能性があります。サブボリュームを解決する正しい方法は/@/@mine待つことです。プロンプトは、サブボリュームのリストに次のように表示されます。

ID 256 gen 56429 top level 5 uuid 11b16b2e-8f75-ec46-8cgd-4a001c70a4ba path @
ID 257 gen 56428 top level 256 uuid 0c81c066-dge1-464d-bd50-6f56e9d83e0a path @mine

top level 2562行目は、@mineその中に入れ子になっていることを意味します@(IDは256)。

したがって、正しいインストールコマンドは次のようになります。

mount -t btrfs -o subvol=/@/@mine,defaults,nossd,user /dev/sdd2   /home/me/bulk

...そうです。終わりました。

完全性のために、以下は私が入力した対応する行であり、/etc/fstab動作します。

UUID=xxxUIDxxx-ofthe-btrfs-rootxxx /home/me/bulk btrfs subvol=/@/@mine,defaults,nossd,user 0 0

/dev/sdd2追加のドライブを追加または削除すると、デバイスを介したインストールが失敗する可能性があるため、UUIDを介してインストールしています。また、表示されたサブボリュームUUIDには、btrfs subvolume list特定のユーザーaccessbtrfsコマンドでのみアクセスできることがわかりました。しかし、他の方法では使用できませんしたがって、mountコマンドはルートディレクトリのアドレスを指定してからサブボリュームパスを指定する必要があります。

答え2

それ以来、問題が解決したようです。

カーネル6.6.26-1-MANJAROの場合:

sudo btrfs subvolume create /home/user/test
sudo btrfs subvolume list /
ID 257 gen 90511 top level 5 path @home
ID 627 gen 90465 top level 257 path @home/user/test

このfstabを使用すると、完全にマウントされます。

UUID=74684edf-64af-4e9a-a7ae-33842a4ff298   /home              btrfs   subvol=/@home,lazytime,compress-force=zstd:1             0 0 
UUID=74684edf-64af-4e9a-a7ae-33842a4ff298   /home/user/test    btrfs   subvol=/@home/user/test,lazytime,compress-force=zstd:1   0 0

重要な部分は

subvol=/@home/user/test

同じ場所にサブボリュームを手動でマウントする必要はなく、自動的にマウントされます。ただし、/ testに手動でインストールできます。

関連情報