定义 btrfs 子卷父级?

定义 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

没有特殊的方法可以做到这一点。要创建子卷,就像创建常规文件或目录一样,您需要将其父卷安装在某处...

# 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之前已经完成的情况下添加它。)

相关内容