如何挂载 btrfs 子卷,它不工作/挂载

如何挂载 btrfs 子卷,它不工作/挂载

我已经做了:

# 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

相关内容