我已经做了:
# btrfs subvolume create /@srv
然后:
# btrfs subvolume list /
ID 257 gen 73 top level 5 path @
ID 258 gen 71 top level 5 path @home
ID 260 gen 65 top level 257 path @srv
并添加到 /etc/fstab,如下所示:
/dev/mapper/fs--1--vg-root /home btrfs defaults,compress=zlib,subvol=@home 0 2
/dev/mapper/fs--1--vg-root /srv btrfs defaults,compress=zlib,subvol=@srv 0 2
...其中 /home 是来自 Ubuntu 安装的默认设置,而 /srv 是我根据所见的“作为示例(即 /home)”手动添加的。
但是它没有安装,请看:
# mount /srv
mount: mount(2) failed: No such file or directory
子目录/srv
存在:
# file /srv
/srv: directory
我错过了什么?
顺便说一句,子卷 @ 和 @home 没问题。但我无法创建更多子卷并将其与 @home 等并排挂载。
答案1
看起来像是错误-我偶然发现了类似的问题:https://unix.stackexchange.com/q/190698/34801
裱装subvolid=
作品。
这应该有效:
/dev/mapper/fs--1--vg-root /srv btrfs defaults,compress=zlib,subvolid=260 0 2
答案2
刚刚尝试了一下,发现你应该指定subvol=/@
或subvol=/@home
– 使用前斜线。
因此,我的工作 /etc/fstab 带有一个自动挂载和一个可手动挂载的子卷,现在如下所示:
/dev/sdb /backup btrfs noatime,nodiratime,subvol=/@ 0 0
/dev/sdb /snapshots btrfs noauto,noatime,nodiratime,subvol=/@snapshots 0 0
之前,我没有使用前导斜杠,因此mount /snapshots
失败了。现在mount /snapshot
可以了。
系统:
# uname -a
Linux debian-9 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u4 (2018-08-21) x86_64 GNU/Linux
# btrfs --version
btrfs-progs v4.7.3
# btrfs subvolume list -up /backup
ID 258 gen 10 parent 5 top level 5 uuid b2740892-9b17-9147-b930-83de797d20df path @
ID 259 gen 8 parent 5 top level 5 uuid 10560ce1-b6f5-1248-94a0-c0a7734b804f path @snapshots