上のサブボリュームに関する btrfs wiki ページデフォルトでは、btrfs(つまりmake.btrfs <devicenode>
)の作成時にトップレベルサブボリューム ID=5 のサブボリュームが作成されます。
新しく作成されたファイルシステムもサブボリュームであり、トップレベルと呼ばれ、内部的には ID 5 を持ちます。このサブボリュームは削除したり、別のサブボリュームに置き換えたりすることはできません。
そこで を使用してこのサブボリュームを表示しようとしましたbtrfs subvolume list -a /btrfs.mountpoint
が、表示されません。なぜでしょうか?
アップデート 私は(自助努力として)上記のように作成されたこのトップレベルのサブボリューム ID=5 についてさらに詳しく調べようとしました。そこで、実際の btrfs ルート(サブボリューム ID=0 であると想定)にマウントして、次のようにその内容を確認しようとしました。
# mount a specific subvolume of a btrfs
$> mount -t btrfs -o subvolid=0 /dev/sda /mnt
# show the output of the "."-entry of the subvolume-root (show inodevalue)
$> ls /mnt -lai | head -n 2
total 112656
256 drwxr-xr-x 1 root root 432 May 25 09:08 .
再度アンマウントした後、同じ操作を実行しました(今回はサブボリュームID=5を使用)
# mount a specific subvolume of a btrfs
$> mount -t btrfs -o subvolid=5 /dev/sda /mnt
# show the output of the "."-entry of the subvolume-root (show inodevalue)
$> ls /mnt -lai | head -n 2
total 112656
256 drwxr-xr-x 1 root root 432 May 25 09:08 .
そして、ルート サブボリュームと ID=5 が同時にあったときとまったく同じ出力 (サブボリューム ID=5 と同じ) が生成されます。これで、btrfs subvolume list -a
コマンドで表示されない理由が少しわかるかもしれません。
とにかく、ルート ボリュームにもサブボリューム ID が割り当てられているため (少なくともマウントで使用する場合)、 に何も表示されないのは奇妙に思えますbtrfs subvolume list -a
。
(更新修正、間違った btrfs サブボリューム コマンドを貼り付けるミス)
アップデート2
btrfs
およびのマニュアル ページ、btrfs-progs
および引用された wiki ページ (質問の冒頭を参照) では、ファイルシステムのボリューム ルート、サブボリューム、サブボリューム ID などに関して、btrfs がどのように作成されるかがあまり正確に説明されていません。
メーリングリストで説明されている内容によると、次のようになります。
[a]すべてのサブボリュームは、使用時にマウントされたボリュームからアクセスできます
-o subvolid=0.
(0はルートボリュームの実際のIDではありません、 それはただマウントするためのショートカット.) [強調追加] (出典メールアーカイブ[メールアドレス]/メッセージ17141.html)
これにより、最初の引用にもかかわらず、サブボリューム ID 5 がルートであると考えられます (少なくとも私の場合)。
とにかく数年前、btrfsのメーリングリストではケースbtrfs subvolume list によって通常のスナップショットがすべて正しく報告されているわけではないため、サブボリュームが表示されない問題はすべてバグである可能性もあると考えられます。
これまで以上に、この質問に答える中で、誰かがこの点について少し光を当ててくれるとありがたいです。