标签: Linux

  • 轻松备份,安心生活:个人电脑全盘备份指南

    有没有想过,如果电脑因为一些意外原因突然罢工,所有的宝贵记忆和重要文件就这么不翼而飞?这可不是危言耸听,但好消息是,有了全盘备份,这种噩梦就可以避免了。

    为什么要备份?

    想象一下,你的笔记本电脑突然不工作了,所有的工作文档、个人照片以及定制的系统设置都无法访问。这种情况下,如果你有一个最新的系统全盘备份,那么你可以快速地在新电脑上恢复工作环境。这就像是给数据做了一个时间胶囊,无论发生什么,都能回到过去,将你的数字生活恢复到最后一次备份的状态。

    全盘备份是什么?

    系统全盘备份与仅备份用户数据不同,它是对电脑上所有内容的完整克隆,包括操作系统、应用程序、设置和所有文件。这意味着在恢复过程中,你无需担心哪些隐藏的配置文件没被备份或者某些应用程序无法正常工作,因为一切都会被还原到备份时的状态。

    怎么选备份软件?

    作为一个对价格敏感的用户,我的选择标准很实在:便宜、好用、快速、还得能省空间。我找到了两款不错的备份软件,一款适合 Windows,一款适合 Linux:

    要求Dism++ (Windows)restic(Linux)
    成本免费软件,备份会被压缩,硬盘占用较小开源软件,备份会被压缩,硬盘占用较小
    备份格式WIM,标准的 Windows 部署文件格式开源的专有备份格式
    备份速度不比直接复制文件慢多少 🚗速度超快 🚀
    增量备份不支持增量备份 😥支持增量备份 😃
    其他优势WePE 内置工具支持加密备份文件;支持查看备份系统中的文件内容

    我选择 Dism++ 和 restic 的原因是它们都能够提供简洁且高效的备份解决方案。Dism++ 的备份文件格式是 WIM,这是 Windows 的标准部署格式,意味着即使未来 Dism++ 不再更新,我也能找到方法来恢复我的数据。Restic 虽然使用的是开源的专有备份格式,但它的速度和增量备份功能使得它成为 Linux 环境下的理想选择。这两款工具都解决了我对备份速度和便捷性的需求。

    备份计划

    我的备份策略是定期且频繁的备份。对于 Windows 系统,我每季度备份一次 C 盘;而 Linux 系统则更频繁,每周都要备份一次,因为这是我的主力办公电脑,这样的策略确保了在任何紧急情况下我都能迅速恢复工作环境。

    数据恢复测试与体验

    案例 1:备份并恢复 Windows 系统

    • 准备:使用带有 WePE 的 U 盘进行离线备份,将备份文件存储在一块旧的 1TB 移动硬盘上。
    • 结果:整个系统原本有 250GB ,被压缩成大概 80GB WIM 镜像,恢复后一切正常,就连原系统 Surface Book 的特殊驱动都在。所以还需要手动清理一些不必要的驱动程序。手动清理 Windows 驱动有风险,如果旧驱动没有清理干净可能导致新驱动不生效,可以参考这篇文章尝试修复。

    案例 2:备份并恢复 Linux 系统

    • 准备:使用 systemrescue Live CD 的 U 盘恢复备份,备份文件存储在运行 restic server 的 NAS 上。
    • 结果:原系统大概 300 GB,备份文件总体积约为 40GB ,恢复速度快。尽管需要手动修复 bootloader,但对于有经验的用户来说,这不是难题。

    安全与隐私

    备份时,我确保不通过公网传输数据。而且,为了防止家里 NAS 遭遇不测,我还会把加密后的备份放到云盘,实现异地存储。不过得提醒一下,Dism++ 不支持加密,所以要先用别的工具加密再上传,确保隐私安全。

    结论

    全盘备份就像是给电脑的生命买了份保险,无论遇到什么灾难,都能让你的数字生活重回正轨。备份或许听起来有点技术性,但实际操作起来并不复杂,而且它给你带来的安心,是任何金钱都买不到的。

  • 网上冲浪指南 – 001

    网上冲浪指南 – 001

    AstroNvim https://astronvim.com

    一个全功能的 NVim 发行版,开箱即可获得非常完整的 IDE 体验,预设的快捷键很符合我这个前 SpaceVim 用户的使用直觉。它跟 SpaceVim 有很多不同的地方:

    • AstroNvim 使用 lua 作为配置语言,官方提供了一个用户配置模板帮助用户自定义 AstroNvim。
    • 正如它的名称所示,AstroNvim 只支持 neovim 。

    这是我的 AstroNvim 配置 https://github.com/ZeekoZhu/AstroNvim

    Burning Vocabulary https://burningvocabulary.com

    这是一款简单好用的背单词浏览器插件,网上冲浪遇到不认识的单词,只需要用鼠标选中它,插件就会自动查询翻译并展示翻译结果,并且在之后的浏览中,会自动在网页上标注查过的生词。我个人认为,类似的浏览器插件有很多,但上手难度比它低、使用的顺滑度比它高不多:

    我现在会把 Burning Vocabulary 翻译的目标语言设置成英文(就是用英文解释英文),跟沙拉词典搭配使用,因为沙拉词典支持的词典源更加丰富,让我暂时还不能放弃。

    System Rescue https://www.system-rescue.org

    这是一个 Linux 系统急救工具箱,基于 Arch Linux 开发,一共 700M 的镜像大小,可以使用 Ventoy 制作成 Live CD 使用。

    最近我在扩容工作用笔记本 /root 分区时发现了它,自带图形界面跟 GParted,比单纯的 Arch Install ISO 要方便很多。

  • 不花钱提升工作笔记本的电池续航

    我的工作电脑是一台安装 Arch Linux 的轻薄笔记本,虽说 Linux 比 Windows 更加节省资源,但是我的工作笔记本续航比较尿崩,出门必须带充电器,进店必找有插座的位置。看到同事的 mbp 的超长续航不可能不羡慕,但我也不奢望过多,只期望出门后,笔记本能够支撑一下午的正常办公就足够了。

    amd_pstate

    刚好最近注意到 Linux 6.1 内核中集成了 amd_pstate 模块,这是用来实现动态调节 Ryzen CPU 频率的驱动模块,相较于原先的 acpi_cpufreq 驱动, amd_pstate 支持 CPPC(Collaborative Processor Performance Control) 功能,简单来说,CPPC 可以根据系统对性能、功耗的需求,调节 CPU 的工作频率。

    支持 CPPC 的 CPU driver 需要跟合适的 CPU scaling governor 配合使用。后者是 Linux 系统中用来调节 CPU 频率的软件,不同的 gorvernor 实现了不同的 CPU 频率调整算法,跟 CPPC 最搭配的是下面两个 gorvernor:

    • ondemand:基于当前工作负载动态调节 CPU 频率
    • schedutil:基于调度器的反馈动态调节 CPU 频率

    这两种 gorvernor 都能根据操作系统的需要动态降低或提升 CPU 的工作频率,从而实现比较理想节能效果。

    对于运行 6.1 版本或者更新内核的 Linux ,可以参考这个链接启用 amd_pstate 驱动。

    检测 amd_pstate 生效的方式也比较简单,推荐安装 cpupower

    analyzing CPU 14:
      driver: amd-pstate
      CPUs which run at the same hardware frequency: 14
      CPUs which need to have their frequency coordinated by software: 14
      maximum transition latency: 20.0 us
      hardware limits: 400 MHz - 1.90 GHz
      available cpufreq governors: conservative ondemand userspace powersave performance schedutil
      current policy: frequency should be within 400 MHz and 1.90 GHz.
                      The governor "ondemand" may decide which speed to use
                      within this range.
      current CPU frequency: Unable to call hardware
      current CPU frequency: 1.11 GHz (asserted by call to kernel)
      boost state support:
        Supported: yes
        Active: no
        AMD PSTATE Highest Performance: 166. Maximum Frequency: 4.51 GHz.
        AMD PSTATE Nominal Performance: 70. Nominal Frequency: 1.90 GHz.
        AMD PSTATE Lowest Non-linear Performance: 41. Lowest Non-linear Frequency: 1.11 GHz.
        AMD PSTATE Lowest Performance: 15. Lowest Frequency: 400 MHz.
    

    对于笔记本来说,更常见的需求是根据电源状态自动设置性能偏好,这里推荐使用 TLP,为了方便使用,我还安装了 tlpui。TLP 允许我们配置电脑在不同电源状态的 CPU 调节参数:

    • gorvernor
    • 最低频率、最高频率
    • 自动超频开关

    不过 TLP 的自动超频开关有些死板,即使是出门在外使用电池的场景,我也希望偶尔开启 Boost 提高一下 IDE 分析代码的速度。解决这个问题很简单,有两个方法:

    1. 手动按需执行开关 CPU Boost 的命令
    2. 安装 auto-cpureq,这个软件会在后台监听当前的工作负载,会在必要的时候开关 Boost

    经过一段时间的观察与调试,为了尽量减少风扇噪音、提高电池续航,我的笔记本(HP EliteBook 845 G8 / Ryzen 5800U)配置如下:

    • 外部电源:schedutil gorvernor,启用自动超频,限定最低频率在标称频率的 68%(大概 1.1GHz)
    • 内置电池:ondemand gorvernor, 配合 auto-cpufreq 动态调整超频开关

    实际续航测试

    目前的电池状况,标称容量 45wh,电池健康度 76%,屏幕亮度 30% ~ 35%。工作时会使用的软件包括:

    • Webpack Dev Server
    • WebStorm(180kloc TypeScript 项目)
    • Vivaldi 浏览器(通常控制在 30 个标签以内)
    • Firefox 浏览器(通常控制在 3 个标签以内)
    • 飞书 Linux 客户端
    • Telegram

    acpi_cpufreq

    在 acpi_cprfreq 驱动下,我的笔记本电脑的最低运行频率是 1.9 GHz,最高可以达到 4.1 GHz,下面是我记录的两次续航时长。

    roundstart timeend timetime to 10%
    12023-02-06 13:322023-02-06 16:413:10
    22023-02-13 14:112023-02-13 17:353:24

    amd_pstate

    在 amd_pstate 驱动下,最低运行频率可以到 400 MHz,通常会在 900 MHz 徘徊,最高可以达到 4.1 GHz。

    roundstart timeend timetime to 10%
    12023-02-19 10:1514:474:32
    22023-02-20 9:3714:304:53
    32023-03-06 13:3117:314:00

    在 IDE 的使用体验上没有明显区别,小项目依然很流畅,巨型项目该卡的操作还是卡,但是续航的提升非常明显,至少出门重度办公一下午没有续航焦虑了。

    如何进一步改善续航?

    关于这点,我建议你看看 极客湾的观点

    • 尽量减少 Boost 时长
    • 减少 CPU 以外硬件的功耗

    普通消费者几乎没法做硬件上的改进(最多禁用独显以提高续航),只能从减少 Boost 时长上入手,毕竟是否开启 Boost、需要多长时间的 Boost,这些参数是可以通过软件调节的,上面提到的 auto-cpufreq 就是干这件事的,这个软件是用 python 编写,除了可以通过配置文件来设置之外,自己也可以根据实际体验和偏好来调节相关算法。

  • 2022 年,我的 Wayland 工作电脑设置

    Wayland 比 Xorg 要快很多,在没有独立显卡的笔记本电脑上对桌面动画性能提升还是很明显的,忍受不了卡顿掉帧的桌面动画,我决定切换到 Wayland 。

    DE

    试用了各种 DE、WM 后,我的最终选择是 KDE,KDE 支持为不同分辨率的屏幕设置不同的 DPI,并且能够清晰地在不同的屏幕上缩放 XWayland 应用,使之适配多个分辨率不同的显示器。

    只有真正去折腾的人才知道,让 Linux 桌面适配多个分辨率差异很大的屏幕有多痛苦,KDE Wayland 能够以最小的代价实现让人满意的效果。

    在 XOrg 下,为了实现为多块屏幕设置不同分数缩放,我使用的是全局设置两倍缩放,然后通过 xrandr 压缩到合适分辨率的做法,这种方式比较消耗性能,但还在可以勉强忍受的范围内。

    Wayland 下的 GNOME 虽然支持为不同显示器设置不用的缩放系数,但是分数缩放的支持比较差,使用 XWayland 渲染的软件会先按照 1 倍渲染,然后被系统强制放大到指定的倍率,其效果可想而知,满脸的马赛克锯齿。

    Wayland 下的 KDE 就厉害多了,可以直接在系统设置中针对不同的屏幕设置分数缩放,而且性能还很不错,最重要的是,KDE 会自动管理那些不支持 Wayland 的软件的缩放系数,最终可以让我们得到非常 Nice 的显示效果。

    左侧是笔记本内置屏幕(1920×1080, 14″,150%)上的 KDE 系统设置,使用原生 Wayland 渲染,右边是外接显示器上(3840×2160, 24″,200%)基于 Chromium 的 Obsidian,使用 XWayland 渲染。

    打工人必备

    飞书 XWayland

    Wayland 下的飞书跟 XOrg 下的使用体验没有太大区别,主要是 Wayland 下共享桌面需要一些额外的设置,可以参考下面的做法:

    1. 启用 Chromium 的一个 flag: enable-webrtc-pipewire-capturer
    2. 安装 xdg-desktop-portal-kde

    这种做法对于其他的基于 Chromium 的软件应该同样使用,其中的原理可以查看这篇文章

    截图与录屏

    截图工具用的是 Flameshot,虽然对多显示器的支持比较早期,但是用的顺手。KDE 自带的 spectacle 能用,但在我的电脑连接外置显示器的时候比较卡,而且不太符合我的使用习惯。

    录屏比较麻烦,我之前用的 SimpeScreenRecorder 并不支持 Wayland,找了一圈发现很多带图形界面的录屏软件在 KDE Wayland 下要么卡顿,要么功能上有 Bug。还有 Sway 用户推荐的各种命令行工具,感觉用起来会很不方便。最终我还是决定用 OBS 来录屏,属于是用牛刀来杀鸡了,但是至少稳定高效。

    输入法

    对于 KDE 用户来说,直接安装 fcitx5 应该就可以开箱即用了,如果发现输入法候选框没有在有些应用中出现,可以参考这里的说明试试。

    开发必备

    JetBrains 系列

    JetBrains 所有基于 Idea 的软件以及 Fleet 目前都只能在 XWayland 下运行,不过就我目前的使用体验来看,没有遇到任何阻断性的问题。

    WebStorm 2022
    Fleet

    KDE 会为 Fleet 设置 1.5 倍缩放(跟我设置的全局缩放一致),但实际上 Fleet 的 UI 库似乎会跟随全局缩放自动调整,所以得手动在 Fleet 中把缩放系数改为 75%,把 KDE 设置的缩放抵消掉。

    终端模拟器

    虽然用的 KDE,但是我没有选择使用 Konsole 作为终端模拟器,在我看来,响应更加迅速、跟 Shell 融和地更好的 kitty 更有吸引力。如果你发现无法在 kitty 窗口中调用 fcitx5,可以参考这里

    设置全局唤起 kitty 的快捷键需要一点 tricks,KDE Wayland 把设置自定义快捷键的设置面板换掉了,需要通过执行 QT_QPA_PLATFORM=xcb systemsettings 找回旧的快捷键设置面板。