我有 Fedora 20,当我安装它时,我选择使用 btrfs 作为文件系统,原因有很多,但主要是为了获得快照。
但我似乎无法创建 的快照/
。我可以像这样 快照我的主文件夹(也是 btrfs)btrfs subvolume snapshot /home/ /snap/home
,但当我尝试/
通过写入来快照时btrfs subvolume snapshot / /snap
,它只会输出ERROR: incorrect snapshot name ('/')
。
我确信 / 是 btrfs。
列出子卷输出:
# btrfs subvolume list /
ID 256 gen 9562 top level 5 path home
ID 258 gen 9562 top level 5 path root
ID 306 gen 9517 top level 258 path snap/home/2014-08-15_00:44:00
即使使用 btrfs,是否也无法对根文件夹进行快照?
答案1
您需要为 /snap 下的快照提供一个名称,例如
$ btrfs subvolume snapshot / /snap/root
如果您不提供名称,btrfs 将使用源子卷的名称。 在您的例子中,源子卷的名称/
不是快照的有效名称。
usage: btrfs subvolume snapshot [-r] <source> <dest>|[<dest>/]<name>
btrfs subvolume snapshot [-r] [-i <qgroupid>] <source> <dest>|[<dest>/]<name>
Create a snapshot of the subvolume
Create a writable/readonly snapshot of the subvolume <source> with
the name <name> in the <dest> directory. If only <dest> is given,
the subvolume will be named the basename of <source>.
-r create a readonly snapshot
-i <qgroupid> add the newly created snapshot to a qgroup. This
option can be given multiple times.
答案2
如果你想保留你的根系统,你可能希望这样做
mkdir /. snapshots
btrfs subvolume snapshot / /.snapshots/24072018
nano /.snapshots/24072018/etc/fstab
UUID=XXXXXXXX / btrfs defaults, subvol=root/.snapshots/24072018 0 1
对于如今的 Fedora 来说,当您使用 btrfs 格式化系统时,创建一个名为 root 的子卷是很常见的,因此如果您在 fstab 中找不到 subvol 选项,则请从 subvol 中省略 root。
下一步将重新启动系统。系统启动时,您将看到 grub 启动菜单。
- 在默认条目上按 e
如果 Fedora 安装在子卷上,请向下滚动直到找到 subvol 选项。如果没有,则必须找到 rootflags 选项并写入以下内容:
rootflags=subvol=.snapshots/24072018
或者对于系统安装在子卷上的情况:
rootflags=subvol=root/.snapshots/24072018
请注意,如果系统未安装在子卷上,则您不太可能在 grub 条目中看到 rootflags 选项,因此您必须在“ro”参数旁边写入 rootflags 参数才能使其起作用。
成功启动系统后,打开终端,登录 root 帐户,并更新 grub 配置(如果您想使更改永久生效)。