web-dev-qa-db-ja.com

btrfsサブボリュームの親を定義しますか?

別の特定のサブボリュームの子になるように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サブボリュームは、なんらかの方法で作成されました。作成方法を複製したいだけです。

1
courtlandj

それを行うための特別な方法はありません。通常のファイルやディレクトリと同じようにサブボリュームを作成するには、その親をどこかにマウントする必要があります...

# 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を実行した場合にのみ追加しました。)

1
user1686