Btrfs 的“快照”功能能实现和 Win 上的“系统还原点”一样的功能吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
kokerkov
V2EX    Linux

Btrfs 的“快照”功能能实现和 Win 上的“系统还原点”一样的功能吗?

  •  
  •   kokerkov 344 天前 2040 次点击
    这是一个创建于 344 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我不在乎他们实现的方式和更高级的应用( Btrfs 应该是可以备份其他数据的),我只想知道 openSUSE 默认开启的 snapper 能否真的避免某一次升级就把系统搞崩了( typical linux experenice )

    6 条回复    2024-11-05 09:32:29 +08:00
    yanqiyu
        1
    yanqiyu  
       344 天前 via Android   1
    除非是把 bootloader 搞炸了是可以实现一键回滚的(我记得 suse 可以在 grub 里面选择启动到某个快照)

    不过想要避免更新导致爆炸真正的银弹是 Transactional Update ,比如 Fedora 的 silverblue 之类的 ostree 变种和 suse 的 micro os 版本。
    march1993
        2
    march1993  
       344 天前
    @yanqiyu overlayfs 我觉得更合理
    bczhc
        3
    bczhc  
       343 天前
    最简单的把 btrfs 里快照挂载到`/`上就可以实现了。还能做到 grub 里按 e 键随意决定进哪个子卷。不过 efi 分区不知能不能是 btrfs ,一般还是多留几个内核镜像,只要有一个能进系统就能修……
    chundi
        4
    chundi  
       343 天前
    snapper 自动打的快照一般情况没什么问题,比如下边的 792 这个就是直接回的 786 这个快照,

    # │ 已激活 │ 类型 │ 描述 │ 用户数据
    ......
    782 │ 否 │ post │ │ important=yes
    792* │ 是 │ single │ writable copy of #786 │
    ......

    我回滚过很多次,常见的回滚情况比如系统更新了但网卡驱动还没更,上不了网,或者某些库被移除了部分软件打不开之类的,启动时 grub 菜单选一个只读的快照进去,打开终端 snapper rollback 之前的快照就可以了,很方便。
    但也不是绝对的可以无痛回滚,比如 KDE5 升级到 KDE6 这样的大版本升级,在我电脑上就升挂了,回滚也不好使,不过就遇到过这一次。
    yanqiyu
        5
    yanqiyu  
       343 天前
    @chundi #4
    > 我回滚过很多次,常见的回滚情况比如系统更新了但网卡驱动还没更,上不了网,或者某些库被移除了部分软件打不开之类的,启动时 grub 菜单选一个只读的快照进去,打开终端 snapper rollback 之前的快照就可以了,很方便。

    我猜原因就是回滚之后 `/usr/lib/modules/` 里面的内核版本和启动的时候用的对不上了?不过我不太清楚 snapper 会不会连着 /boot 里面的内核镜像一起快照了,没有的话就几乎肯定会有这个问题。

    这时候就要推销 silverblue 这种 ostree 模式了,保证内核在内的一起回滚。

    > 但也不是绝对的可以无痛回滚,比如 KDE5 升级到 KDE6 这样的大版本升级,在我电脑上就升挂了,回滚也不好使,不过就遇到过这一次。

    有一种情况是升级的时候,第一次登陆 KDE 的组件对于什么数据库做了升级,然后回滚之后旧的 KDE 不认识了,然后就炸了。
    chundi
    &nsp;   6
    chundi  
       343 天前
    @yanqiyu #5
    > 我猜原因就是回滚之后 `/usr/lib/modules/` 里面的内核版本和启动的时候用的对不上了?不过我不太清楚 snapper 会不会连着 /boot 里面的内核镜像一起快照了,没有的话就几乎肯定会有这个问题。

    我的系统安装时默认只给分了两个分区,一个根分区是 btrfs ,一个 /home 是 xfs ,/boot 放在根分区,snapper 默认是会打上快照的。不过 /boot 里都是软链,指向的 /usr/lib/modules 。回滚主要是网卡驱动我用的第三方驱动,不支持 dkms ,升级内核后需要重新编译,但有的时候系统升级后部分库也升级了,如果网卡驱动还没跟着更新编译会通不过,就上不了网了,只能先回退,等网卡驱动更新。

    > 有一种情况是升级的时候,第一次登陆 KDE 的组件对于什么数据库做了升级,然后回滚之后旧的 KDE 不认识了,然后就炸了。

    可能确实是这个原因。当时系统升级后可以进入桌面环境,但只有一个提示正在处理个人数据什么的,等了很久没有任何反应,强制重启后就进不去桌面了。手动回滚到了上一个版本然后就炸了。当时也没折腾,命令行备份了数据直接重装了。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5399 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 95ms UTC 09:03 PVG 17:03 LAX 02:03 JFK 05:03
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86