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