🇨🇳每日一言:
生命中,再无聊的时光,也都是限量版。
默认的开源显卡驱动性能问题
昨天在在使用arch的时候出现了加载网页卡死和自动切换壁纸渲染系统主题卡死的问题,卡死后只好强制重启,但是在使用chrome的过程中总会触发卡死,严重影响使用体验,我想这是显卡驱动的问题。经过查询,虽然我这个机子的amd显卡较差,但是这个显卡还是能在Linux中较好的驱动。为了解决卡死的问题,我切换显卡驱动到AMD驱动。
升级驱动前的系统备份
升级驱动存在较大的隐患。在升级前我做了系统备份。我使用的是btrfs的文件系统,使用snapper做备份方案。snapper这个工具超级好用,比之前在mintlinux上用的timeshift好用多了。

snapper
opensuse开发的快照软件,超级好用。
- 安装
| |
snapper 是主程序; snap-pac 利用钩子在进行pacman命令的时候自动创建快照; btrfs-assistant 是GUI(图形化交互界面),同时提供了几个简单的命令,进一步简化快照回档需要的操作。我们还没有安装桌面环境,但是肯定会用到,先装上。 grub-btrfs inotify-tools 在创建快照的时候自动在grub菜单里添加快照启动项 重启电脑用新的initramfs进入系统
- reboot 激活快照启动项服务
| |
- 创建快照配置
| |
-c root指定要使用的配置,由于该配置不存在,所以create-config创建,快照范围是/。
| |
同样的方式,创建home的配置。
- 创建快照
分别创建home和root的快照。
| |
create创建快照,–description添加自定义描述。我们这里是安装桌面之前,所以描述为before desktop。
为了方便快照回档,我们接着来配置从grub菜单进入快照的功能。
- 生成grub菜单入口
要至少运行一次grub-mkconfig生成grub菜单的snapshot入口
| |
现在就配置好快照啦
回档方法
- snapper命令行
列出可用快照
| |
找到自己想使用的快照的数字序号
- undochange回档
| |
这里的1..0,1是要使用的快照的序号,0代表当前状态。
这条命令会对比两者的区别,对当前状态进行修改,无须重启,重新登录即可生效。
⚠️注意:官方文档不建议用undochange回档root。
- btrfs-assistant命令行(记得使用root身份登录)
切换至root
| |
列出可用快照
| |
找到目标快照的数字序号。
回档
| |
这里的数字1是要使用的快照的数字序号。
- btrfs-assistant图形界面

创建配置
打开btrfs assistant,切换到snapper settings页面。我们创建子卷的时候至少创建了一个@子卷和一个@home子卷,所以需要两个config(配置)。

root 根目录快照 点击new config新建配置,config name写root,backup path选择 / ,然后点击save保存。
接着进行一些按照时间自动生成快照的设置。systemd unit settings里面有三个服务。 timeline是按照时间计划自动创建快照;cleanup是快照数量达到number设定的数量上限之后自动清理快照;boot是每次开机自动创建快照。按需设置,设置完记得点apply。
home目录快照 按照同样的方法创建一个home目录的配置。
创建快照
到snapper页面,select config选择配置,要创建root子卷的快照就选择刚刚创建的名为root的配置。点击new创建快照,description是快照的自定义文字描述(注释)。
使用快照进行恢复
snapper页面–> Browse/restore页面

select target选择想恢复的子卷,再选择想使用的快照,点击restore,此时会自动帮你创建一个额外的子卷用来备份当前的数据然后弹出一个确认窗口让你填写这个子卷的名字(可以空着不填写)
使用快照进行全盘恢复
因为root子卷和home子卷在创建的时候是平级的,所以虽然root目录包含了home目录,但是创建root子卷的快照时不会包含home子卷里的内容。这样的子卷布局叫作“扁平布局”。因此,需要分别创建root和home的快照,然后分别恢复root子卷和home子卷。
从grub菜单的快照启动项进入系统
无法正常进入系统时使用该方法。用btrfs-assistant回档,GUI或者命令行都可以。记得用root身份登录。
如果无法从快照启动项进入系统
设置覆盖文件系统(overlayfs)
设置一个overlayfs在内存中创建一个临时可写的类似live-cd的环境,否则可能无法正常从快照启动项进入系统。
编辑/etc/mkinitcpio.conf
| |
在HOOKS里添加grub-btrfs-overlayfs
| |
重新生成initramfs
| |
重启电脑
