arch linux开始
🌱 🦤 🌱
- 参考资料: https://wiki.archlinuxcn.org/wiki/%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97, https://archlinuxstudio.github.io/ArchLinuxTutorial/#/, https://arch.icekylin.online/guide/
- 镜像下载arch
- 默认UEFI引导,已使用rufus烧录好arch镜像到U盘,bios设置U盘启动
前言
- 最早接触
Linux或许是MT管理器和Termux(应该称为终端模拟器)了- 然后用
Termux跑Ubuntu(本质上是把Ubuntu跑在容器里)等发行版- 然后
wsl(Windows Subsystem for Linux)来了(ms官方虚拟机?)- 还有把一些发行版跑在
VMware Workstation Pro虚拟机上
- 最后物理机(
12600kf+4060,12450H+4060) 一步到位- 安装
arch在移动固态硬盘(200多r的rc20,固态最低价)上
- 备份策略采取
timeshift自动备份根目录- 手动使用
rsync备份home目录
安装arch系统
连接网络及更改镜像
- 禁用 reflector 服务
1 | systemctl stop reflector.service |
- 编辑镜像文件
1 | vim /etc/pacman.d/mirrorlist |
- 挑选镜像
1 | Server = http://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch |
- 如果是无线网络,则需要通过命令连接WIFE
1 | iwctl # 进入交互式命令行 |
分区
- 分区大小
1 | sda1 EFI分区 /efi /dev/nvme0n1p1 1GiB EFI System |
- 查看磁盘分区
1 | fdisk -l |
- 新建EFI分区,交换分区,根目录分区,用户主目录
1 | cfdisk /dev/sda |
- 格式化
根分区
1 | mkfs.ext4 /dev/sda2 -L RTL9220_99GIB |
- 格式化
home分区
1 | mkfs.ext4 /dev/sda3 -L RTL9220_520GIB |
- 格式化
EFI系统分区
1 | mkfs.fat -F 32 /dev/sda1 |
- 格式化
交换空间分区
1 | mkswap /dev/sda4 |
- 挂载
根分区
1 | mount /dev/sda2 /mnt |
- 挂载
EFI系统分区
1 | mount --mkdir /dev/sda1 /mnt/boot |
- 挂载
home分区
1 | mount --mkdir /dev/sda3 /mnt/home |
- 启用
交换分区
1 | swapon /dev/sda4 |
- 复查挂载情况
1 | df -h |
- 复查 Swap 分区挂载情况
1 | free -h |
安装必须软件包
- 安装软件包
1 | pacstrap /mnt base linux-zen linux-firmware linux-zen-headers base-devel sudo vim networkmanager bash-completion |
fstab 文件
- 生成 fstab 文件
1 | genfstab -U /mnt > /mnt/etc/fstab |
- 复查一下 /mnt/etc/fstab 确保没有错误
1 | cat /mnt/etc/fstab |
arch-chroot配置
- chroot 到新安装的系统
1 | arch-chroot /mnt |
- 设置时区
1 | ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime |
- 对准时间
1 | hwclock --systohc |
- 取消掉
en_US.UTF-8 UTF-8和zh_CN.UTF-8 UTF-8前的注释
1 | vim /etc/locale.gen |
1 | en_US.UTF-8 UTF-8 |
- 生成 locale 信息
1 | locale-gen |
- 生成 locale.conf 文件
1 | echo 'LANG=en_US.UTF-8' > /etc/locale.conf |
- 主机名
1 | echo 'miniarch' > /etc/hostname |
- 设置 root 密码
1 | passwd |
- 新建用户
1 | useradd -m admin |
- 设置用户密码
1 | passwd admin |
- 添加权限
1 | vim /etc/sudoers |
1 | root ALL=(ALL:ALL) ALL |
- 安装引导程序
1 | pacman -S grub efibootmgr os-prober |
- 取消注释
GRUB_DISABLE_OS_PROBER=false,修改GRUB_CMDLINE_LINUX_DEFAULT="loglevel=5 nowatchdog nvidia_drm.modeset=1"
1 | vim /etc/default/grub |
1 | GRUB_CMDLINE_LINUX_DEFAULT="loglevel=5 nowatchdog nvidia_drm.modeset=1" |
- 将GRUB安装到你的硬盘上
- 安装引导时添加
--removable, 否则装有arch的移动固态硬盘插入新主机不显示引导
1 | grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB --removable |
- 生成主配置文件
1 | grub-mkconfig -o /boot/grub/grub.cfg |
- 离开
1 | exit |
- 卸载新分区
1 | umount -R /mnt |
重启
1 | reboot |
安装kde桌面
安装前的准备
- 连接网络
1 | sudo systemctl enable --now NetworkManager |
- 如果是无线网络
1 | nmcli dev wifi list # 显示附近的 Wi-Fi 网络 |
1 | nmtui |
- 编辑
/etc/profile文件, 写入export EDITOR='vim'
1 | sudo vim /etc/profile |
1 | export EDITOR='vim' |
- 去掉
[multilib]一节中两行的注释,ParallelDownloads设置成正整数5
1 | sudo vim /etc/pacman.conf |
1 | ParallelDownloads = 9 |
1 | sudo pacman -Syu |
安装显卡驱动
- 独显4060
1 | sudo pacman -S nvidia-dkms nvidia-settings nvidia-utils lib32-nvidia-utils |
- R5 4600H 核显 vega6 GCN5.0
1 | sudo pacman -S mesa lib32-mesa xf86-video-amdgpu vulkan-radeon lib32-vulkan-radeon |
安装kde桌面
1 | sudo pacman -S plasma-meta konsole dolphin kate |
1 | sudo systemctl enable --now sddm |
设置中文字体
- 采用全局是等宽字体的配置,等宽字体为: maple-font
- 下载好字体后双击安装
- 打开系统设置
文字和字体和区域与语言,设置字体为maple-font- 在系统设置里找到登入屏幕(SDDM)设置,点击
应用Plasma设置- 打开终端设置,新建方案里设置字体为
maple-font



1 | sudo systemctl restart sddm |
安装输入法
1 | sudo pacman -S fcitx5-im fcitx5-rime fcitx5-chinese-addons |
- 添加环境变量,否则输入时字母会上屏
1 | sudo vim /etc/environment |
1 | GTK_IM_MODULE=fcitx |

安装蓝牙
1 | sudo pacman -S bluez bluez-utils bluez-obex |
1 | modprobe btusb |
1 | sudo systemctl enable --now bluetooth |
- 设置开机自动启用蓝牙设备,编辑
/etc/bluetooth/main.conf文件,将AutoEnable和FastConnectable设置为true即可
1 | sudo vim /etc/bluetooth/main.conf |
1 | AutoEnable=true |
手动连接蓝牙设备
1 | bluetoothctl |
1 | pair 相应的MAC地址 |
1 | trust 相应的MAC地址 |
1 | connect 相应的MAC地址 |
1 | exit |
添加非官方源
1 | sudo vim /etc/pacman.conf |
- 添加非官方源
1 | [archlinuxcn] |
- 更新并导入
archlinuxcn-keyring
1 | sudo pacman -Sy archlinuxcn-keyring |
- 安装
yay
1 | sudo pacman -S yay |
添加localhost
- 不添加的话,搭建webdav服务器时可能因未设置localhost报错
1 | sudo vim /etc/hosts |
1 | 127.0.0.1 localhost |
安装应用
补全包
- 安装微码
1 | sudo pacman -S intel-ucode |
1 | sudo pacman -S amd-ucode |
1 | sudo pacman -S --needed zsh man-db man-pages tldr tree git curl wget npm openssh \ |
1 | sudo pacman -S --asdeps --needed giflib lib32-giflib libpng lib32-libpng libldap lib32-libldap gnutls lib32-gnutls \ |
1 | yay -S zotero wechat-appimage linuxqq \ |
1 | sudo systemctl enable --now sshd |
- blog
1 | sudo npm install -g hexo@6.3.0 |
安装vpn

终端使用代理
- 终端设置代理
1 | vim ~/.bashrc |
1 | export https_proxy="http://127.0.0.1:10809" |
- 或者使用proxychains-ng
1 | sudo pacman -S proxychains-ng |
1 | sudo vim /etc/proxychains.conf |
1 | [ProxyList] |
- git
1 | git config --global http.proxy http://127.0.0.1:10809 |
1 | git config --global --unset http.proxy |
安装常用应用
- firefox
1 | sudo pacman -S firefox |
- 浏览器扩展需要
1 | yay -S vdhcoapp |
- ms vscode (打便携版)
1 | yay -S visual-studio-code-bin |
- tg
1 | sudo pacman -S telegram-desktop |
1 | yay -S wechat-appimage |
1 | yay -S linuxqq |
- 腾讯会议
1 | yay -S wemeet-wayland-screenshare-git |
- 向日葵远程控制
1 | yay -S sunloginclient |
1 | systemctl enable --now runsunloginclient |
- wps
1 | yay -S wps-office-cn wps-office-mui-zh-cn ttf-wps-fonts |
- 文献管理
1 | yay -S zotero |
系统美化
更换桌面主题
天气挂件
1 | sudo pacman -S plasma-applets-weather-widget-3 |
grub主题美化
1 | cd sleek |
1 | sudo cp . /usr/share/grub/themes/sleek -rf |
1 | sudo vim /etc/default/grub |
1 | GRUB_THEME="/usr/share/grub/themes/sleek/theme.txt" |
1 | sudo grub-mkconfig -o /boot/grub/grub.cfg |
终端美化
1 | sudo pacman -S zsh |
1 | sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" |
1 | git clone --depth=1 https://github.com/romkatv/powerlevel10k.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k" |
1 | vim ~/.zshrc |
1 | ZSH_THEME="powerlevel10k/powerlevel10k" |
1 | chsh -s $(which zsh) |
1 | p10k configure |
- 打开 ~/.p10k.zsh 。在文件顶部附近,您可以看到最重要的参数,它们定义了提示符中显示哪些段。所有常用的提示符段都列在其中。其中一些已启用,另一些则被注释掉了。其中一个是您感兴趣的。
1 | vim ~/.p10k.zsh |
1 | typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=( |
- 搜索 context 以在配置中找到列出此提示段特定参数的部分。您应该看到以下几行:
1 | # Don't show context unless running with privileges or in SSH. |
- 如果你按照提示
删除(或注释掉)最后一行,你就会一直看到 提示符中输入 username@hostname 。您可以通过调整附近参数的值,将格式更改为仅 username ,或更改颜色。有大量注释可供您浏览。
zsh插件配置
1 | git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting |
1 | git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions |
1 | vim ~/.zshrc |
1 | plugins=( |
系统优化
修改密码错误重试次数
修改为
deny = 6如果超过最大重试次数,则会发生输入正确的密码显示错误
1 | sudo vim /etc/security/faillock.conf |
缩短关机时间
1 | sudo vim /etc/systemd/system.conf |
1 | DefaultTimeoutStopSec=30s |
1 | sudo systemctl daemon-reload |
1 | sudo systemctl edit user@.service |
1 | [Service] |
禁用coredump
1 | sudo vim /etc/sysctl.d/50-coredump.conf |
1 | kernel.core_pattern=|/bin/false |
1 | sudo sysctl -p /etc/sysctl.d/50-coredump.conf |
关闭baloo
- 不关闭有时会发生磁盘读取过高
1 | sudo balooctl6 suspend |
1 | sudo balooctl6 disable |
1 | sudo balooctl6 status |
更改cpu频率方案
- 查看cpu频率
1 | cat /proc/cpuinfo | egrep '(processor|cpu MHz)' |
- powersave会导致跑不到更高的频率
1 | performance |
1 | cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor |
1 | sudo echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor |
- 这样重启后的修改会消失,使用cpupower
1 | sudo pacman -S cpupower |
1 | sudo vim /etc/default/cpupower |
1 | governor='performance' |
1 | sudo systemctl enable --now cpupower.service |
合理管理系统
关于python开发环境
- https://wiki.archlinuxcn.org/wiki/%E5%BB%BA%E8%AE%AE%E9%98%85%E8%AF%BB/%E7%BB%99%E6%96%B0%E7%94%A8%E6%88%B7%E7%9A%84%E5%85%B3%E4%BA%8E%E5%A6%82%E4%BD%95%E4%B8%8D%E5%8E%BB%E5%BC%84%E5%9D%8F_Arch_Linux_%E7%B3%BB%E7%BB%9F%E7%9A%84%E5%BB%BA%E8%AE%AE#%E4%B8%8D%E8%A6%81%E7%9B%B4%E6%8E%A5_-{}-pip_install
- https://wiki.archlinux.org/title/Python#Virtual_environment
- https://wiki.archlinux.org/title/Python/Virtual_environment
不要直接 pip install
不要默认启用 anaconda 环境
一定在 venv(或类似的虚拟环境)中运行
有时候一些 Python 程序会依赖一些重量级库,如果在 venv 这样的隔离环境中安装,这通常无法与系统上的其它软件良好集成。这种时候,你可以用
python -m venv --system-site-packages来创建 venv 并在其中安装你需要的软件包。这样创建的 venv 不是与系统环境完全隔离的,venv 之内的 Python 能够导入系统范围安装的包,而系统环境的包则看不到 venv 内的包,因此不会干扰系统软件包正常工作
1 | python -m venv --system-site-packages |
- 创建虚拟环境
1 | sudo pacman -S python |
1 | python -m venv env_test |
1 | source env_test/bin/activate |
1 | deactivate |
- 例如
1 | python3.9 -m venv py39 |
1 | pip install numpy scipy matplotlib py4vasp ase |
小心类似make install
- pacman 包管理通过统一的方式管理系统软件及其文件,但 make install、ninja install 等安装的文件不受 pacman 管理,且可能与 pacman 管理的文件相冲突。同样,如果需要卸载由这些命令安装的文件,也需要花费一番功夫。
设置Timeshift 快照
1 | sudo pacman -S timeshift |
1 | sudo systemctl enable --now cronie.service |
进入tty还原系统
1
2sudo timeshift --list # 获取快照列表
sudo timeshift --restore --snapshot '20XX-XX-XX_XX-XX-XX' --skip-grub # 选择一个快照进行还原,并跳过 GRUB 安装,一般来说 GRUB 不需要重新安装若无法进入系统,需要首先设置原来快照存储的位置
1
sudo timeshift --restore --snapshot-device /dev/sdbx
延长电池寿命
- TLP 作为一款自由开源的高级电源管理工具提供开箱即用的默认配置。同时也可以高度定制化,以满足特定需求
1 | sudo pacman -S tlp tlp-rdw |
- Smartmontools 通过使用自我监控(Self-Monitoring)、分析(Analysis)和报告(Reporting)三种技术(缩写为 S. M. A. R. T 或 SMART)来管理和监控存储硬件
1 | sudo pacman -S smartmontools |
- 查看磁盘信息
1 | sudo smartctl -A /dev/sdx # 硬盘 |
- 相关服务设置
1 | sudo systemctl enable tlp.service |
- 安装后,TLP 将在开机时自动启动。为了避免第一次重启系统,可以使用以下命令手动启动
1 | sudo tlp start |
- 使用 TLP 显示相关系统信息
1 | sudo tlp-stat -b # 显示电池信息 |
使用conda
1 | bash Miniforge3-Linux-x86_64.sh |
1 | conda init --reverse $SHELL |
1 | conda config --set auto_activate_base false |
1 | vim ~/.condarc |
1 | conda clean -i |
1 | conda create --no-default-packages --name chem_py39 python=3.9 |
1 | conda install -n chem_py39 numpy scipy matplotlib py4vasp ase |
1 | conda env list |
1 | conda remove --name chem_py39 --all |
使用docker安装其它常用应用
docker更改存储位置
1 | sudo docker info | grep "Docker Root Dir" |
1 | docker stop $(docker ps -aq) |
1 | systemctl stop docker |
1 | sudo mv /var/lib/docker /$HOME/app/docker -f |
1 | sudo ln -sf /$HOME/app/docker /var/lib/docker |
1 | sudo ls -alF /var/lib/ |
1 | sudo docker info | grep "Docker Root Dir" |
1 | systemctl start docker |
docker部署windows子系统
- 检查 KVM 支持, 在bios里开启cpu虚拟化
1 | grep -E --color=auto 'vmx|svm|0xc0f' /proc/cpuinfo |
- 检查内核中是否已包含必要的模块
1 | lsmod | grep ip_tables |
1 | lsmod | grep iptable_nat |
- 检查
lsmod | grep ip_tables和lsmod | grep iptable_nat不是空的, 空的运行
1 | echo -e "ip_tables\niptable_nat" | sudo tee /etc/modules-load.d/iptables.conf |
1 | sudo pacman -S docker docker-compose |
1 | sudo systemctl enable --now docker.service |
- 开始安装windows
1 | mkdir windows |
1 | vim compose.yaml |
1 | name: "win11" # Docker Compose Project Name. |
1 | sudo usermod -aG docker admin |
1 | newgrp docker |
1 | docker compose --file ~/app/windows/compose.yaml up |
- 安装依赖
1 | sudo pacman -Syu --needed -y curl dialog freerdp freerdp2 git iproute2 libnotify gnu-netcat |
- 测试
1 | docker compose --file ~/app/windows/compose.yaml start |
1 | xfreerdp /u:"admin" /p:"admin" /v:127.0.0.1 /dynamic-resolution /clipboard /sound /scale:140 |
1 | cd windows |
1 | vim windows.sh |
1 |
|
1 | vim windows.desktop |
1 | [Desktop Entry] |
1 | cp windows.desktop ~/.local/share/applications/ |
- 如果要撤消所有更改并从头开始,请运行以下内容
1 | docker compose down --volumes |
1 | docker compose down --rmi=all --volumes |
- windows11 config
1 | irm https://massgrave.dev/get | iex |
1 | reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" |
- regedit, 关闭自动更新
1 | 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings |
1 | FlightSettingsMaxPauseDays |
ollama部署大语言模型
1 | sudo pacman -S ollama ollama-cuda |
1 | nvidia-smi |
1 | sudo systemctl enable --now ollama.service |
1 | ollama run deepseek-r1:8b |
1 | ollama run qwen2.5:7b |
- 如何将模型保持在内存中加载或使其立即卸载
1 | sudo vim /usr/lib/systemd/system/ollama.service |
1 | [Service] |
1 | systemctl daemon-reload |
1 | systemctl restart ollama |
- 常用命令
1 | ollama list |
docker部署gpt_academic
1 | mkdir gpt_academic |
1 | vim docker-compose.yml |
采取方案0
修改
LLM_MODEL为ollama-deepseek-r1:8b
1 | version: '3' |
1 | docker-compose up |
1 | docker-compose start |
- 更新docker-compose.yml文件
1 | docker-compose up -d |
docker部署stirling_pdf
1 | mkdir stirling_pdf |
1 | vim docker-compose.yml |
1 | version: '3.3' |
1 | docker-compose up |
关于游戏
1 | sudo pacman -S gamemode lib32-gamemode gamescope mangohud lib32-mangohud |
1 | sudo groupadd gamemode |
1 | sudo gpasswd -a $USER gamemode |
1 | newgrp gamemode |
- gamescope 启动拉伸缩放
1 | -S stretch |
MC
1 | sudo pacman -S jdk21-openjdk |
wine
1 | sudo pacman -S wine wine-gecko wine-mono winetricks |
1 | winecfg |
- 复制windows字体
1 | sudo pacman -S --asdeps giflib lib32-giflib libpng lib32-libpng libldap lib32-libldap gnutls lib32-gnutls \ |
- 4060显卡驱动
1 | sudo pacman -S nvidia-dkms nvidia-settings nvidia-utils lib32-nvidia-utils |
- 禁用 GUI 崩溃对话框
1 | sh winetricks nocrashdialog |
- 这样一些游戏就能成功运行了,如图

lutris
1 | sudo pacman -S lutris umu-launcher |
1 | ./ProtonUp-Qt.AppImage |
- 安装
GE-Proton
1 | sudo pacman -S nvidia-dkms nvidia-settings nvidia-utils lib32-nvidia-utils |
1 | sudo pacman -S --asdeps giflib lib32-giflib libpng lib32-libpng libldap lib32-libldap gnutls lib32-gnutls \ |
- 先在终端启动
1 | lutris -d |


本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 admin🌸!



