更改 btrfs 默认子卷以删除快照

更改 btrfs 默认子卷以删除快照

我用过鲷鱼使用 Fedora 26 创建我的 btrfs 系统的快照,我正在尝试重新开始(即删除 snapper 及其所做的任何事情),但我有一个快照无法删除,因为它似乎是我的默认子卷(我不记得了)为什么它会这样做,也许我尝试了回滚)。

# snapper delete 535
Deleting snapshot failed.
# btrfs subvolume get-default /
ID 1630 gen 112224 top level 275 path .snapshots/535/snapshot
# btrfs subvolume show /
/
    Name:                   root
    UUID:                   544f9215-4537-fe4b-b1b5-4da21d9abb9c
    Parent UUID:            -
    Received UUID:          -
    Creation time:          2017-07-19 21:28:42 +0100
    Subvolume ID:           257
    Generation:             112591
    Gen at creation:        8
    Parent ID:              5
    Top level ID:           5
    Flags:                  -
    Snapshot(s):

我不确定我在这里问的是否有意义,但我想将默认子卷更改回我最初在顶部设置系统时所拥有的父卷(;master;root,不确定正确的词)卷- 文件系统的级别,即/,默认更改之前。

# btrfs subvolume list / -a -p -t
ID      gen     parent  top level       path
--      ---     ------  ---------       ----
257     112604  5       5               <FS_TREE>/root
258     112604  5       5               <FS_TREE>/home
263     112214  257     257             root/var/lib/machines
275     112593  257     257             root/.snapshots
276     112577  258     258             <FS_TREE>/home/.snapshots
1630    112224  275     275             <FS_TREE>/root/.snapshots/535/snapshot
1639    112604  257     257             root/var/log
1641    111548  257     257             root/mnt/virtualbox

我可以运行btrfs subvolume set-default其中一个来实现这一目标吗?我不确定 /... 的含义,因为我猜测我应该将默认值更改为 ID 257 的根,但这让我失望了。

与 / 中的文件相比,此快照中的文件现在已经过时,因此我不希望用快照的内容覆盖 / 。

答案1

通过挂载 BTRFS 文件系统,可以指定要挂载或不挂载的子卷:

Btrfs 文件系统有一个默认子卷,它最初设置为顶级子卷 [其 ID 始终为 5],如果未指定 subvol 或 subvolid 选项,则安装该子卷。 -https://btrfs.wiki.kernel.org/index.php/SysadminGuide#Snapshots

subvol您可以在挂载文件系统时使用以下选项覆盖默认子卷:

mount /dev/sda / -o subvol=root/.snapshots/535/snapshot

在您的情况下,当您执行回滚时,子卷 275 已更改为默认值。

回滚[选项] [数量]

创建两个新快照并设置默认子卷。默认情况下,系统从根文件系统的默认子卷启动。-http://snapper.io/manpages/snapper.html

Snapper 映射页面在这里隐含的意思是,它期望根文件系统的挂载点为不是指定子卷。否则,回滚命令将无效,因为它会被选项覆盖subvol

您原来的默认子卷是顶层(ID 5)。您当然可以btrfs subvolume set-default再次将其设为默认值,但是......也许您不应该这样做。

如果您一直从 535 子卷启动,那么随着时间的推移,您可能已经在该子卷上积累了大量更改。恢复到顶级子卷意味着损失这些变化;我用这个词损失考虑到更改仍然存在,只是在不同的子卷中,所以此处松散。

相关内容