Files
My-Blog/content/awesome-arch-linux.md
2025-07-14 19:28:09 +08:00

460 lines
13 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

+++
title = "综合工程:Arch-linux 安装与配置"
date = 2023-08-16
[taxonomies]
tags = ["综合工程"]
+++
前言 Arch linux是一个轻量、灵活、滚动更新的 Linux 发行版衍生了诸多优秀的桌面端linux。其官方Wiki更是被称为技术界的“武林秘籍”这里介绍其安装与使用。
<!-- more -->
## 安装
一般而言有以下几种安装方法:
- 原版 Arch linux 的命令行安装;
- 原版 Arch linux 的脚本安装;
- 第三方发行版的图形界面安装。
前两种方法较为繁琐这里说明第三种方法常见的Arch发行版有GarudaCachyos以及EndeavourOS等等。
- [Cachyos下载](https://cachyos.org/download/)
- [Garuda下载](https://garudalinux.org/editions)
- [EndeavourOS下载](https://endeavouros.com/)
安装方法同ubuntu一样是基于Calamares的图形化界面安装。一般步骤为``选择语言American English--选择键盘/时区(默认/shanghai--选择分区xfs抹除全盘可选全盘加密--选择桌面环境Gnome或KDE--确认安装。``
## 安装软件
随后安装常用开源软件(KDE环境省略file和wayland)
```
# gui
paru -S floorp-bin keepassxc qemu-full virt-manager materialgram-bin legcord-bin onlyoffice-bin localsend-bin kazumi-bin foliate vlc krita qtscrcpy strawberry oculante obs-studio
# tui
paru -S neovim yazi lazygit btop zellij termshark
# cli
paru -S alacritty fish fastfetch tealdeer expac fish-autopair fish-pure-prompt fisher onefetch starship atuin bat fzf fd ripgrep eza tree android-tools payload-dumper-go-bin nexttrace-bin syncthing aria2
# file
paru -S gvfs gvfs-mtp gvfs-afc gvfs-nfs nemo
# zip
paru -S peazip
# Type
paru -S fcitx5-configtool fcitx5-chinese-addons fcitx5-skin-material fcitx5-im fcitx5-rime
# Blog
paru -S zola npm pnpm just go
# ttf
paru -S ttf-jetbrains-mono-nerd
# Wayland
paru -S hyprland waybar wofi network-manager-applet swww wl-gammarelay-rs brightnessctl easyeffects wireplumber pipewire blueman wl-clipboard-rs swaync swayosd swappy grim wlogout hyprlock hyprpolkitagent
```
| 分类 | 软件列表 |
| ------------ | ------------------------------------------------ |
| **窗口管理器** | hyprland |
| **状态栏** | waybar |
| **启动器** | wofi |
| **网络** | network-manager-applet |
| **蓝牙** | blueman |
| **音频** | pipewire, wireplumber |
| **亮度** | brightnessctl, wl-gammarelay-rs |
| **剪贴板** | wl-clipboard-rs,wl-clip-persist |
| **通知** |swaync,swayosd |
| **截图** | grim, swappy |
| **壁纸管理** | swww |
| **Polkit 授权代理** | hyprpolkitagent |
| **锁屏/开始菜单** | hyprlock, wlogout |
| **文件管理** | gvfs, gvfs-mtp, gvfs-afc, gvfs-nfs, nemo |
安装完毕后我们开始配置输入法与字体:
输入法我们采用雾凇拼音即前面我们安装的fcitx5系列软件包的一个输入方案这里我们使用[自动部署脚本](https://github.com/Mark24Code/rime-auto-deploy)
```
# step1: 克隆/下载 latest 最新的稳定版到本地
git clone --depth=1 https://github.com/Mark24Code/rime-auto-deploy.git --branch latest
# step2: 进入项目目录
cd rime-auto-deploy
# step3: 执行部署脚本
./installer.rb
```
选择部署fcitx5即可随后在设置的Input Method中Add Input Method 选择Rime随后默认按Ctrl+Space即可切换中文。
字体的配置在[Linux之旅(七):系统与终端字体设置](https://blog.dich.bid/learn-linux-for-pc-7/)这一期说过这里不再赘述。缺少的字体可以通过paru下载或者到[喵闪字库](https://www.miao3.cn/)下载ttf并安装。
## 图形美化
安装完毕后可以看到KDE的界面较为简陋这里给出笔者的美化配置
- 在设置中找到Colors&Themes分别设置为
```
- ColorBreeze Dark
- Application StyleBreeze
- Plasma StyleSweet
- Window DecorationsEdna
- IconsBeautySolar
- CursorsAfterglow Cursors
- Splash ScreenNone
```
- 随后设置壁纸,这里给出了笔者收藏的[壁纸](https://github.com/Dichgrem/wallpaper.git)。
- 设置完成后将Dock栏的Status全部隐藏删除间隔与空隙删除时间更改Memu图标随后固定常用软件到其上。
- 随后在Dock栏下新建一个空白栏结构为数字时钟加两个空白字体为JetBrains Mono24小时ISO格式。最终效果如下
![desktop](/images/desktop.png)
## 迁移数据
将需要的数据迁移到Home目录下对笔者来说是用来同步的Data文件夹以及Git工作文件夹。随后Add to Places将其固定到侧边栏开启隐藏文件可见将View mode改为Detail。最终效果如下
![file](/images/file.png)
## 设置软件
- 配置fastfetch显示效果
```
创建配置目录mkdir -p ~/.config/fastfetch
创建配置文件touch ~/.config/fastfetch/config.jsonc
编辑该文件以添加你的自定义选项
```
- 设置GFS参考[乱七八糟:GFS项目考量笔记 ](https://blog.dich.bid/about-gfs/)。
- 设置Keepassxc/Vscodium/Electerm导入备份好的配置文件。
- 设置Matrix/Telegram登录并在另一台设备上验证。
- 设置浏览器:导入书签备份文件(有图标);定制工具栏,下载扩展插件,包括:
```
Dark Reader暗黑模式
kiss-translator翻译工具
uBlock Origin广告拦截
ClearURLs去跟踪链接
KeePassXC-Browser链接Keepass
BookmarkHub书签同步
BewlyBewlyB站美化
V2EX PolishV站美化
```
## 双系统添加Windows引导
如果Grub引导菜单中没有windows选项可以通过以下方法添加
- 安装 os-prober首先确保系统中安装了 os-prober这是一个用于检测其他操作系统的工具。
```
sudo pacman -S os-prober
sudo os-prober
```
- 打开 /etc/default/grub 文件进行编辑:
```
sudo nano /etc/default/grub
# 确保 GRUB_DISABLE_OS_PROBER 设置为 false
```
- 保存文件并退出编辑器后,运行以下命令更新 GRUB 配置:
```
sudo grub-mkconfig -o /boot/grub/grub.cfg
```
或者``手动添加``
```
nano /etc/grub.d/40_custom
```
```
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Windows 11 (Manual)" {
insmod part_gpt
insmod fat
insmod chain
set root='hd0,gpt1'
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
```
## Arch中安装QEMU虚拟机
前面我们已经安装了Qemu高性能虚拟机平台和virt-manager用来管理虚拟机的图形界面随后配置virt-manager并安装Ubuntu-server
如果virt-manager报错无法找到Qemu
- ​如果 libvirtd 服务未运行virt-manager 将无法连接到虚拟化环境。​
```
sudo systemctl start libvirtd
sudo systemctl enable libvirtd
```
- 用户权限问题:​​将当前用户添加到 libvirt 组,以获得必要的权限。​
```
sudo usermod -aG libvirt $(whoami)
```
- 虚拟网络未激活virt-manager 可能无法连接到默认的虚拟网络。​
```
sudo virsh net-start default
```
默认网络在系统启动时自动启动,可以执行:
```
sudo virsh net-autostart default
```
- 配置文件权限问题:​配置文件的权限设置可能导致访问问题。
```
sudo chown $(whoami):libvirt /var/run/libvirt/libvirt-sock
```
随后安装虚拟机,流程大概为``选择镜像和系统类型--设置CPU/内存--设置空间大小--编辑配置项--开启UEFI引导和3D加速``.
**开启3D加速**
- NIC
```
<graphics type="spice">
<listen type="none"/>
<image compression="off"/>
<gl enable="yes" rendernode="/dev/dri/by-path/pci-0000:05:00.0-render"/>
</graphics>
```
- video virtio
```
<video>
<model type="virtio" heads="1" primary="yes">
<acceleration accel3d="yes"/>
</model>
<alias name="video0"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0"/>
</video>
```
安装完成后即可使用electerm进行SSH连接如果无法连接可以将Tun模式开启的"strict_route"关闭。
## 更改启动内核顺序
如果安装了多个linux内核可以使用以下方法调整启动顺序
- 使用以下命令查看内核名称:
```
ls /boot/vmlinuz*
```
- 在 /etc/default/grub 中添加或修改如下行:
```
GRUB_TOP_LEVEL="/boot/vmlinuz-linux-cachyos"
```
需要注意,这种方法会关闭 GRUB 的“记住上次启动项”的功能。
- 修改完 /etc/default/grub 后,记得重新生成 GRUB 配置文件:
```
sudo grub-mkconfig -o /boot/grub/grub.cfg
```
**图形界面更改方法:**
可以使用grub-customizer来修改Grub这里以ubuntu为例子
- 添加PPA源并更新软件列表
```
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt update
```
- 安装GRUB Customizer
```
sudo apt install grub-customizer
```
随后在grub-customizer中将要默认启动的选项放在首位即可。
## 开机自启动
**设置Syncthing开机自启动**
```
sudo systemctl enable --now syncthing@<username>.service
```
**设置Aria2开机自启动**
```
[Unit]
Description=Aria2c - lightweight multi-protocol & multi-source command-line download utility
After=network.target
[Service]
User=dich
Group=dich
WorkingDirectory=/home/dich
Environment=HOME=/home/dich
Environment=USER=dich
ExecStart=/usr/bin/aria2c --conf-path=/home/dich/.config/aria2/aria2.conf
Restart=always
NoNewPrivileges=true
PrivateTmp=true
[Install]
WantedBy=multi-user.target
```
## 开启BBR
- 确保你的内核版本 >= 4.9
```
uname -r
```
- 启用 BBR
你只需要设置两个 sysctl 参数即可:
```
sudo sysctl -w net.core.default_qdisc=fq
sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
```
要让它们永久生效,把它们写入配置文件:
```
sudo nano /etc/sysctl.d/99-bbr.conf
```
加入以下内容:
```
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
```
然后重新加载配置:
```
sudo sysctl --system
```
- 验证 BBR 是否启用
```
sysctl net.ipv4.tcp_congestion_control
```
应该输出:
```
net.ipv4.tcp_congestion_control = bbr
```
## 性能模式切换
需要安装``power-profiles-daemon``
```
# 查看可用的电源配置文件profiles
powerprofilesctl list
# 查看当前正在使用的 profile
powerprofilesctl get
# 切换到“性能”模式
sudo powerprofilesctl set performance
# 切换到“平衡”模式
sudo powerprofilesctl set balanced
# 切换到“省电”模式
sudo powerprofilesctl set power-saver
```
## 其他性能优化
```
Profilesyncdaemon
将浏览器配置文件和缓存挂载到内存,退出时再写回磁盘:
sudo pacman -S profile-sync-daemon
systemctl --user enable --now psd.service
Systemdoomd
启用 systemd 自带的内存超载保护守护进程:
sudo pacman -S systemd-oomd
sudo systemctl enable --now systemd-oomd
Bpftune
加载 BPF 性能调优脚本网络、I/O、调度等
sudo pacman -S bpftune
sudo systemctl enable --now bpftune
AnanicyCpp
根据预设规则给游戏、多媒体和后台任务打优先级标签:
sudo pacman -S ananicy-cpp
sudo systemctl enable --now ananicy-cpp
```
## 常用命令
```
更新系统sudo pacman -Syu
重新安装所有软件包sudo pacman -Qq | sudo pacman -S -
Reset keyrings
sudo rm -rf /etc/pacman.d/gnupg
sudo pacman-key --init
sudo pacman-key --populate archlinux
移除数据库锁sudo rm -f /var/lib/pacman/db.lck
清理软件包缓存sudo pacman -Sc (或 -Scc 完全清空)
删除孤立软件包sudo pacman -Rns $(pacman -Qtdq)
Install Gaming packagessudo pacman -S steam wine lutris dxvk
排序镜像:
sudo pacman -S reflector
sudo reflector --latest 10 --sort rate --save /etc/pacman.d/mirrorlist
更改 DNS 服务器:编辑 /etc/systemd/resolved.conf 中的 DNS=1.1.1.1 8.8.8.8,然后 sudo systemctl restart systemd-resolved
```
## 在Arch Linux上安装Docker
一般推荐在qemu虚拟机中安装这里仅做示例
```
sudo pacman -S docker
```
安装完成后需要启动Docker服务并设置为开机自启
```
sudo systemctl start docker
sudo systemctl enable docker
```
运行以下命令来验证Docker是否正常工作
```
sudo docker run hello-world
```
默认情况下只有root用户才能运行Docker命令。为了避免每次运行Docker命令时都需要使用sudo可以将当前用户添加到docker组
```
sudo usermod -aG docker $USER
```
之后,需要注销并重新登录,或者重启系统以使更改生效。
安装Docker Compose
```
sudo pacman -S docker-compose
```
---
**Done.**