別の特定のサブボリュームの子になるようにbtrfsサブボリュームを作成するにはどうすればよいですか?または、既存のサブボリュームの多くがそうであるように、親/トップレベルが5で作成されるようにするにはどうすればよいですか?
例:私が持っていると言う:
# btrfs subvolume list -p -a -t -u /
ID gen parent top level uuid path
-- --- ------ --------- ---- ----
257 80732 5 5 43d2daae-112f-ab49-931f-ddc9ba1c6ffd <FS_TREE>/root
258 80732 5 5 01b630a4-608d-b44f-8f97-e9c371c7c759 <FS_TREE>/home
261 80731 257 257 0dbf3e8a-a9bf-2a4a-92fe-7661d48295f2 root/var/lib/machines
次のように表示されるようにnew_subvolume
を作成するにはどうすればよいですか。
# btrfs subvolume list -p -a -t -u /
ID gen parent top level uuid path
-- --- ------ --------- ---- ----
257 80732 5 5 43d2daae-112f-ab49-931f-ddc9ba1c6ffd <FS_TREE>/root
258 80732 5 5 01b630a4-608d-b44f-8f97-e9c371c7c759 <FS_TREE>/home
261 80731 257 257 0dbf3e8a-a9bf-2a4a-92fe-7661d48295f2 root/var/lib/machines
262 80732 5 5 XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX <FS_TREE>/new_subvolume
root
およびhome
サブボリュームは、なんらかの方法で作成されました。作成方法を複製したいだけです。
それを行うための特別な方法はありません。通常のファイルやディレクトリと同じようにサブボリュームを作成するには、その親をどこかにマウントする必要があります...
# mkdir /mnt/toplevel
# mount /dev/sda2 /mnt/toplevel -o subvolid=5
...そしてその中に子サブボリュームを作成します:
# btrfs subvolume create /mnt/toplevel/new_subvolume
# ls -la /mnt/toplevel
total 16K
drwxr-xr-x 1 root root 36 Sep 10 15:13 ./
drwxr-xr-x 1 root root 26 Mar 1 14:18 ../
drwxr-xr-x 1 root root 14 Sep 10 15:48 home/
drwxr-xr-x 1 root root 0 Mar 1 14:19 new_subvolume/
drwxr-xr-x 1 root root 150 Feb 19 13:07 root/
# umount /mnt/toplevel
(注:デフォルトでは、subvolid=5
はすでにデフォルトであり、指定する必要はありません。以前にbtrfs subvolume set-default
を実行した場合にのみ追加しました。)