OFFSET偏移
← 文章目录OFFSET / FIELD NOTESNO. 068

Arch 桌面的交换空间、内核与排障

保留压缩交换、内核切换、系统清理及桌面常见问题的完整操作细节。

所在专题Arch Linux ↗
约 15 分钟阅读开始阅读

本文整理自 shorinkiwata/archlinuxinstall,保留原教程的操作深度并进行匿名化与风险校正。安装包名、扩展、驱动和界面可能随滚动更新变化,以下命令均为阅读示例,没有在此任务中执行或验证。

维护与删除的前提#

先确认当前运行内核、引导条目、备用内核和备份。swapoff 需要把交换中的页面放回其他可用内存/交换空间;内存不足时不要停用。删除交换文件前检查 fstab、休眠和引导参数中的引用。

删除 Linux 分区或 ESP 文件前,应从 Windows/恢复介质确认 Windows 能独立启动,备份重要数据及加密恢复资料。共享 ESP 时只处理确认属于 Linux 的目录,不删除 Microsoft、OEM 或整个分区。以下 DiskPart 选择编号是语法示例,现场编号必须重新核对;更改分区类型也不是“绝对安全”的删除方法。

性能优化#

N 卡动态功耗调节

sudo systemctl enable --now nvidia-powerd.service

LACT 进行显卡 offset

交换空间

关于交换空间大小: Swap - Manjaro --- Swap - Manjaro 电源管理/挂起与休眠 - Arch Linux 中文维基 zswap - ArchWiki zram - ArchWiki Swap - ArchWiki Zram vs zswap vs swap? : r/archlinux Zswap or Zram: at this time, which one is more efficient? : r/archlinux Zram, zswap and hibernation - Support - Manjaro Linux Forum kernel - zram vs zswap vs zcache Ultimate guide: when to use which one - Ask Ubuntu zswap — The Linux Kernel documentation zram: Compressed RAM-based block devices — The Linux Kernel documentation

不需要休眠的话

如果不需要休眠功能可以禁用 swap,然后开启 zram

sudo swapoff /swap/swapfile
sudo rm /swap/swapfile
  • 编辑 fstab
sudo vim /etc/fstab
删除与swap相关的挂载

zram 内存压缩

sudo pacman -S zram-generator
sudo vim  /etc/systemd/zram-generator.conf
[zram0]
zram-size = ram * 0.5
compression-algorithm = zstd #重视cpu开销和速度选择lz4
  • 禁用 zswap
sudo vim /etc/default/grub
编辑GRUB_CMDLINE_LINUX_DEFAULT=""
写入zswap.enabled=0
  • 重新生成 grub 的配置文件
sudo grub-mkconfig -o /boot/grub/grub.cfg
  • reboot
  • 验证 zswap 是否关闭
cat /sys/module/zswap/parameters/enabled
  • 验证 zram 是否开启
sudo zramctl
或者
swapon

安装 zen 内核

功耗和响应变化取决于负载,应实测比较。

  • 安装内核
sudo pacman -S linux-zen linux-zen-headers
  • 按 GPU 代际选择对应 DKMS 驱动,并为 linux-zen 安装匹配的 headers
sudo pacman -S nvidia-open-dkms # 按 GPU 支持分支调整
  • 重新生成 grub
sudo grub-mkconfig -o /boot/grub/grub.cfg
  • 重启
reboot #重启时在grub的arch advance启动项里选择zen
  • 可选:确认备用恢复内核、DKMS 和引导都可用后再考虑删除原内核;通常保留一个备用内核更稳妥
sudo pacman -R linux linux-headers
  • 重新生成 grub
sudo grub-mkconfig -o /boot/grub/grub.cfg

删除 Linux#

下列操作会影响启动文件和分区。不要把示例磁盘 0/分区 1 当作自己的目标。

和 windows 共用 efi 分区时

(重制)彻底删除Linux卸载后的无用引导项_哔哩哔哩_bilibili win+x 选择磁盘管理,找到 efi 在第几个磁盘的第几个分区 win+R 输入 diskpart 回车 select disk 命令选择 efi 分区所在磁盘,从 0 开始,第一个磁盘是数字 0

select disk <VERIFIED_DISK_NUMBER>

select partition 选择 efi 分区,从 1 开始,第一个分区是数字 1

select partition <VERIFIED_ESP_PARTITION_NUMBER>

以上命令只展示选择语法;核对现场磁盘/分区后才分配未被使用的盘符。

assign letter p

管理员运行记事本 ctrl+s 打开保存窗口 选择 p 盘,删除里面的 linux 启动相关文件 移除盘符

remove letter p

单独 EFI 分区时

只有确认 Windows 完全不依赖这个分区、恢复资料可用后才考虑删除。下面保留历史分区类型转换命令用于解释,不是必要或推荐的通用卸载步骤: 原参考:Windows 中删除独立 EFI 分区 diskpart 选中 efi 分区后输入:

 SET ID=ebd0a0a2-b9e5-4433-87c0-68b6b72699c7

分区类型转换可能让工具允许后续删除,但不能证明安全。先判断系统是否仍依赖该 ESP,再使用可信的分区管理工具并逐项确认。

issues#

时间错乱,windwos 开机磁盘检查

双系统时间同步-CSDN博客 管理员打开 powershell 运行

Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1

nautilus 创建文件的 symlinks 符号链接

Creating Symlinks in Files under Wayland : r/gnome ctrl+c 复制文件后 ctrl+m

NAUTILUS 无法访问 smb 共享

如果你的路由器或者别的设备开启了 smb 文件共享,安装 gvfs-smb 可以使你在 nautilus 访问那些文件

sudo pacman -S gvfs-smb

域名解析出现暂时性错误

解决 Ubuntu 系统中 “Temporary Failure in Name Resolution“ 错误-CSDN博客

sudo vim /etc/resolv.conf

如果 /etc/resolv.conf 由 NetworkManager 或 systemd-resolved 管理,应在实际管理器配置 DNS,避免直接覆盖。静态管理时才使用下面的配置结构:

nameserver <DNS_SERVER_IP>
nameserver <SECONDARY_DNS_SERVER_IP>

自定义安装字体

  • 复制字体到该目录下(可以自由创建子目录)
~/.local/share/fonts/
  • 刷新字体缓存
fc-cache -fv

扩展 windwos 的 efi 分区空间

NIUBI partition Editor free edition

grub 卡顿

检查 GRUB 图形模式、分辨率、固件和相关驱动条件,保存日志及现象后再定位;不能直接归因于某个品牌。

附录#

pacman 常用指令

  • -R 删除包,-s 同时删除不再被需要的依赖,-n 不保存受管理配置为 .pacsave;用户家目录配置另行处理。
sudo pacman -Rns <PACKAGE>
  • 查询包
pacman -Ss <KEYWORD>
  • 列出所有已安装的包
pacman -Qe # 列出显式安装的包;全部已安装包用 pacman -Q
  • 列出所有已安装的依赖
sudo pacman -Qd
  • 清理包缓存
sudo pacman -Sc
  • 列出孤立依赖包
sudo pacman -Qdt
  • 清理孤立依赖包
sudo pacman -Rns <CONFIRMED_ORPHAN_PACKAGE> # 先用 pacman -Qdt 检查

cpu 资源优先级

ananicy-cpp 按规则调整进程调度优先级,收益与影响应针对当前规则和实际负载测试,不把历史个案当作普遍结论。

sudo pacman -S ananicy-cpp
sudo systemctl enable --now ananicy-cpp.service

TLP 相关

sudo pacman -S tlp tlp-rdw
yay -S tlpui

设置方法参考官方文档 Settings — TLP 1.8.0 documentation 以下是原教程的设置思路,需按驱动支持与实测调整,不能视为通用设置:

processor选项卡中

CPU DRIVER OPMODE
AC active
BAT active
# 是否适用取决于 CPU scaling driver,不是所有机器都有此选项

CPU SCALING GOVERNOR
AC <SUPPORTED_GOVERNOR>
BAT <SUPPORTED_GOVERNOR> # 先检查驱动支持列表

CPU ENERGY PERF POLICY
AC balance_performance
BAT power

CPU BOOST
AC on
BAT off

PLATFORM PROFILE
AC balanced
BAT low-power

MEM SLEEP
BAT deep
  • 开启服务
sudo systemctl enable --now tlp

安装 alhp

ALHP 是第三方优化仓库,以下为历史配置结构示例。仓库覆盖官方包会改变支持与信任边界;检查当前仓库名称、签名和 CPU 指令集兼容性,不盲目启用。 * 参考链接: ALHP:优化你的archlinux性能 - 哔哩哔哩

  • 检查芯片支持,记住结果里是 x86-64-v 几
/lib/ld-linux-x86-64.so.2 --help
  • 安装密钥和镜像列表
yay -S alhp-keyring alhp-mirrorlist
  • 编辑配置文件
sudo vim /etc/pacman.conf
  • 搜索 core,在 core 上方加入
   [core-x86-64-v4]
   Include = /etc/pacman.d/alhp-mirrorlist
   [extra-x86-64-v4]
   Include = /etc/pacman.d/alhp-mirrorlist
   [multilib-x86-64-v4]
   Include = /etc/pacman.d/alhp-mirrorlist
  • 刷新源
sudo pacman -Syyu

ibus 输入法

可按输入习惯选择 IBus 方案。 ibpinyin 是中文拼音输入法,anthy 是日文输入法登出一次,设置里找到键盘,添加输入源

sudo pacman -S ibus ibus-pinyin
更好用的中文输入法:
sudo pacman -S ibus-rime
日语输入法:
yay -S ibus-mozc
  • 配置输入法 常规里勾选候选词,设置候选词排序为词频 拼音模式里启用云输入 辞典里勾选辞典 用户数据里取消所有勾选 * 登出,测试输入是否正常

ranger 预览图片

sudo pacman -S python-pillow ranger kitty
vim ~/.config/ranger/rc.conf
set preview_images true
set preview_images_method kitty

美化 kitty

终端与平铺扩展的兼容性依赖版本;多显示器下出现问题时可单独测试扩展。

sudo pacman -S kitty
# 下载配置文件 https://github.com/catppuccin/kitty
以frappe为例,下载frappe.conf,复制到~/.config/kitty/目录下,重命名为kitty.conf
# 编辑配置文件
写入:
linux_display_server x11 #修复kitty奇怪的刘海
hide_window_decorations yes #隐藏顶栏,隐藏后无法调整窗口大小,建议配合tiling shell扩展使用
background_opacity 0.8 #设置背景透明度
font_family 字体名
font_size 字体大小数字
# 如果波浪号在左上角,配置文件写入:
symbol_map U+007E Adwaita Mono
# 强制指定notosansmono字体,也可以选择别的
# 示例配置
hide_window_decorations yes
background_opacity 0.8
font_family Adwaita Mono
font_size 14
# 重启终端

官方核对入口#

ArchWiki:Swap。

ArchWiki:Zram。

ArchWiki:Dual boot with Windows。

ArchWiki:Domain name resolution。

zram-generator.conf(5)。

参考与延伸

  1. 原教程:shorinkiwata/archlinuxinstall ↗
  2. ArchWiki:Swap ↗
  3. ArchWiki:Zram ↗
  4. ArchWiki:Dual boot with Windows ↗
  5. ArchWiki:Domain name resolution ↗
  6. zram-generator.conf(5) ↗

根据技术笔记重新整理,示例使用通用名称。

沿专题继续阅读

Arch Linux

  1. 01Arch Linux 的哲学与安装规划
  2. 02内核管理、systemd-boot 与 UKI
  3. 03Pacman Hook、AUR 与构建安全
  4. 04Btrfs 子卷布局与 Snapper 快照
  5. 05LUKS2、Secure Boot 与 TPM2 加固
  6. 06性能选择与日常维护清单
  7. 07Pacman 常用命令与参数记忆
  8. 08Pacman 下载慢的诊断与镜像选择
  9. 09informant:Arch 新闻与 Pacman Hook
  10. 10Arch Linux 与 Btrfs:手动安装和 archinstall
  11. 11GNOME 桌面、输入法与快照配置
  12. 12GNOME 笔记本管理与桌面美化
  13. 13Arch Linux 的 KVM、GPU 直通与游戏
  14. 14Arch 桌面的交换空间、内核与排障
CONTINUE READING / 下一篇用 QEMU 验证 NixOS 配置

从最小配置到 GNOME 与 Sway,区分虚拟机声明和持久化磁盘状态。