Arch Linux 折腾记
Arch Linux 安装及配置
安装
对小白很友好的安装教程:https://www.bilibili.com/video/av81146687
有基础的请自行查看 ArchWiki 上最新的安装教程
虚拟机

默认选择第一个进入安装页面:


ip link 查看互联网设备
ip addr 查看当前 ip 地址信息

- 开启 ntp 服务更新系统时间:
1 | timedatectl set-ntp true |
磁盘分区
- 查看当前磁盘设备:
1 | fdisk -l |

- 分区说明

| 分区 | 说明 |
|---|---|
| /boot | 引导分区 |
| / | 主分区 |
| swap | 交换空间,相当于虚拟内存 |
- 进行磁盘分区
1 | cfdisk # 一个图形化的分区工具, 操作简单 |



- 进行磁盘格式化
1 | mkfs.fat -F32 /dev/sda1 # 引导分区必须格式化为FAT32格式 |

修改安装源顺序
1 | vim /etc/pacman.d/mirrorlist |

挂载分区
1 | mount /dev/sda3 /mnt # 挂载根目录 |

执行安装
1 | pacstrap /mnt base linux linux-firmware # 安装Arch、linux、linux框架 |

生成fstab文件
- fstab 是用来存放文件系统的静态信息的文件,当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录。
1 | genfstab -U /mnt >> /mnt/etc/fstab |
进入系统进行配置
1 | arch-chroot /mnt # 进入安装好之后的系统 |

- 设置时区
1 | ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime |
- 同步时间
1 | hwclock --systohc |
- 安装相关基础软件
1 | pacman -Sy # 更新安装源信息 |
- 本地化
1 | vim /etc/locale.gen |
去除 en_US.UTF-8 UTF-8 和 zh_CN.UTF-8 UTF-8 前面的 #
1 | locale-gen |

1 | vim /etc/locale.conf |
- 设置hosts
1 | vim /etc/hostname |

- 设置登录密码
1 | passwd |

创建新用户
1 | useradd -m xxx |
安装引导
1 | pacman -S grub efibootmgr intel-ucode os-prober |

确认系统架构:
1 | uname -m |

1 | grub-install --target=x86_64-efi --efi-directory=/boot |

安装一些基础软件
1 | pacman -S net-tools networkmanager dhcpcd openssh |
退出重启
1 | exit |
安装结束
物理机
安装步骤同虚拟机,分区挂载视具体情况确定。
无线网络启用:
1 | pacman -S iw |
桌面安装
该部分参考:
https://blog.csdn.net/ackjack_niuniu/article/details/12996987
1.安装sddm
1 | pacman -S sddm sddm-kcm |
2.开启sddm服务
1 | systemctl enable sddm |
3.安装KDE桌面
1 | pacman -S plasma kde-applications |

1 | pacman -S conky # 一个系统监控的工具 |
基础配置
中文字体及美化
1 | 安装字体 |
字体美化:

另外可从Windows中拷贝TTF字体:
1 | C:/Windows/System32/Fonts |
软件包相关配置
1 | yay安装 |
安装配置输入法
https://zhuanlan.zhihu.com/p/74931620
KDE桌面环境
(需要archlinuxcn源)
- 该方法现已有BUG,安装失败(2020-07-14)
1 | sudo pacman -S fcitx-lilydjwg-git fcitx-sogoupinyin |
1 | vim ~/.xprofile |
硬件相关
1 | modprobe acpi-cpufreq |
硬盘分区支持
1 | ntfs挂载支持 |
显卡驱动
Intel wiki: https://wiki.archlinux.org/index.php/Intel_graphics_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
NVIDIA wiki: https://wiki.archlinux.org/index.php/NVIDIA_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
https://www.cnblogs.com/tonyc/p/7732119.html
1 | pacman -S nvidia bbswitch optimus-manager-qt-kde |
蓝牙驱动
1 | sudo pacman -S bluez bluez-utils |
触摸板驱动
1 | pacman -S xf86-input-synaptics # 笔记本触摸板驱动 |
摄像头
1 | pacman -S cheese |
多屏幕
wiki: https://wiki.archlinux.org/index.php/Multihead_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
配置声音
https://www.jianshu.com/p/43a03df9acb3
https://wiki.archlinux.org/index.php/Advanced_Linux_Sound_Architecture_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
1 | pacman -S alsa-utils # 声卡驱动 |
使用PulseEffect调整全局音效: https://ywnz.com/linuxjc/3788.html
Linux音效软件 PulseEffects App 3.2.1:https://www.bilibili.com/video/av21958431/
电源管理
https://www.jianshu.com/p/894d24567a70
https://wiki.archlinux.org/index.php/TLP_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
1 | sudo pacman -S tlp tlp-rdw tlpui-git |
sudo配置
https://wiki.archlinux.org/index.php/Sudo_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
1 | pacman -S sudo |
常用软件
https://wiki.archlinux.org/index.php/List_of_applications_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
虚拟机
VMware Workstation
VirtualBox
Docker
https://wiki.archlinux.org/index.php/Docker_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
浏览器
1 | pacman -S chromiun vivaldi opera opera-ffmpeg-codecs |
Office
1 | sudo pacman -S wps-office-cn # 安装WPS |
多媒体软件
1 | pacman -S nomacs # 图片 |


笔记
- Typora
wine(放弃使用,体验极差)
1 | sudo pacman -S wine wine-mono wine_gecko |
1 | sudo pacman -S playonlinux |
远程桌面
RealVNC
https://blog.csdn.net/cc1969281777/article/details/100116496
1 | /usr/bin/vnclicense -add VKUPN-MTHHC-UDHGS-UWD76-6N36A |
解压缩
1 | pacman -S p7zip rar zip unzip |
启动器
1 | yay -S utools |
同步软件
Onedrive上传工具:https://www.moerats.com/archives/1006/
密码保存
Enpass: https://www.enpass.io/
1 | pacman -S enpass-bin |
远程终端连接
1 | yaourt -S asbru-cm-git |
其他软件
1 | wxHexEditor |
1 | pacman -S flameshot # 截图工具 |
1 | peek # GIF录制工具 |
1 | pacman -S fsearch-git # 文件搜索(类似everything) |
usb控制手机
1 | yay -S scrcpy |
| Scrcpy 的命令参数 | |
|---|---|
| 关闭手机屏幕 | scrcpy -S |
| 限制画面分辨率 | scrcpy -m 1024 (比如限制为 1024) |
| 修改视频码率 | scrcpy -b 4M (默认 8Mbps,改成 4Mbps) |
| 裁剪画面 | scrcpy -c 1224:1440:0:0 表示分辨率 1224x1440 并且偏移坐标为 (0,0) |
| 多设备切换 | scrcpy -s 设备ID (使用 adb devices 命令查看设备ID) |
| 窗口置顶 | scrcpy -T |
| 显示触摸点击 | scrcpy -t 在演示或录制教程时,可在画面上对应显示出点击动作 |
| 全屏显示 | scrcpy -f |
| 文件传输默认路径 | scrcpy --push-target /你的/目录 将文件拖放到 scrcpy 可以传输文件,此命令指定默认保存目录 |
| 只读模式(仅显示不控制) | scrcpy -n |
| 屏幕录像 | scrcpy -r 视频文件名.mp4 或 .mkv |
| 屏幕录像 (禁用电脑显示) | scrcpy -Nr 文件名.mkv |
| 设置窗口标题 | scrcpy --window-title '异次元好棒!' |
| 同步传输声音 | 可借助 USBaudio 这个开源项目实现,但仅支持 Linux 系统 |
使用 WIFi 连接手机
Scrcpy 使用 adb 与 Android 设备通讯,而 adb 本身是支持无线连接的。因此除了 USB 数据线之外,我们也能无线使用。前提是需要保证手机和电脑处于同一局域网 (连接到相同的 WiFi 路由器),步骤如下:
- 查询设备当前的 IP 地址 (设置 →关于手机→状态)
- 启用 adb TCP/IP 连接,执行命令:
adb tcpip 5555,其中 5555 为端口号 - 拔掉你的数据线
- 通过 WiFi 进行连接,执行命令:
adb connect 设备IP地址:5555 - 重新启动 scrcpy 即可
- 如果 WiFi 较慢,可以调整码率:
scrcpy -b 3M -m 800,意思是限制 3 Mbps,画面分辨率限制 800,数值可以随意调整。 - 如需切换回 USB 模式,执行:
adb usb
dwm
安装编译环境及依赖包:
1 | pacman -S base-devel gcc make xorg xorg-xinit xorg-server xorg-apps |
安装dwm:
1 | git clone https://git.suckless.org/dwm |
安装st:
1 | git clone https://git.suckless.org/st |
配置启动文件:
1 | echo "exec dwm" > ~/.xinitrc |
桌面壁纸
1 | pacman -S feh |
开发环境安装
Java
JDK与OpenJDK不同,OpenJDK源代码不完整,且不包含部署功能,只包含最精简的JDK,
Oracle官网下载:
Java SE Development Kit 8u241: https://www.oracle.com/java/technologies/javase-jdk8-downloads.html
配置环境:
1 | vim /etc/profile |
MySQL
1 | sudo pacman -S mysql |
根据提示进行初始化操作:

1 | sudo mysqld --initialize --user=mysql --basedir=/usr --datadir=/var/lib/mysql |
得到临时密码

1 | sudo systemctl start mysqld # 启动MySQL服务 |
Mariadb
1 | sudo pacman -S mariadb |

1 | sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql |
Redis
1 | 可视化管理工具 |
PHP&Apache
https://wiki.archlinux.org/index.php/Apache_HTTP_Server_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
1 | pacman -S httpd php php-apache |
Python
1 | pacman -S python |
系统备份
1 | pacman -S timeshift |
系统软件
防病毒(无必要)
1 | pacman -S clamav clamtk |
优化管理
1 | yay -S stacer |
常用防火墙配置
https://www.cnblogs.com/gavinpan/p/11220474.html
https://wiki.archlinux.org/index.php/Iptables_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
IPv4 防火墙:
1 | systemctl enable iptables |
1 | iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT #允许本地回环接口(即运行本机访问本机) |
IPv6 防火墙:
1 | systemctl start ip6tables |
1 | ip6tables -A INPUT -s ::1 -d ::1 -j ACCEPT |
ip6tables -A INPUT -p ipv6-icmp -j ACCEPT只有IPv6 icmp数据包可以经过网络传输时,SLAAC才可以正常工作。所以在要配置IPv6的计算机上,必须修改防火墙,允许ipv6-icmp数据包进入。
bash 优化
- zsh + powerlevel10k
垃圾清理
https://blog.csdn.net/weixin_43968923/article/details/88768951
清理系统中无用的包:(尽量保留 linux linux-headers 等重要软件包以防滚崩)
1 | sudo pacman -R $(pacman -Qdtq) |
清除已下载的安装包
1 | sudo pacman -Scc |
查看日志文件大小:
1 | sudo journalctl --disk-usage |
删除指定大小的日志文件:
1 | sudo journalctl --vacuum-size=50M |
删除崩溃日志:
1 | sudo rm /var/lib/systemd/coredump/* |
问题解决
invalid or corrupted package (PGP signature))
1 | vim /etc/pacman.conf |
更新系统内核后无法进入系统
情况:upgrad linux (5.5.7.arch1-1 -> 5.5.8.arch1-1)
时间:2020-03-08
引导后提示:
1 | Loading Linux linux ... |
解决方案:
进LiveCD,挂载 / 和 /boot
1 | arch-chroot /mnt # 进入系统 |
切换内核到LTS版本(临时)
1 | pacman -S linux-lts linux-lts-headers |
安装完成后,重启进入 grub 引导时按 e 进行编辑
1 | 原为 linux /vmlinuz-linux |
F10 进入即可,
进入系统后发现独立显卡驱动无法正常工作,LiveCD 中尝试卸载当前内核发现:
1 | :: removing linux breaks dependency 'linux' required by bbswitch |
解决方法
卸载当前系列的包,重新安装最新版本:
1 | pacman -R bbswitch nvidia |
重启即可
安装有NVIDIA驱动的可以在更新前先卸载,更新完内核后重新安装即可避免更新后出现上述情况
该方法于2020-03-15更新时有效
upgraded linux (5.5.8.arch1-1 -> 5.5.9.arch1-2)
1 | sudo pacman -R bbswitch nvidia |
日常更新之更新出错
发生时间:2020-05-05
出现的问题:
pacman 更新失败、同时 linux 内核更新失败,pacman 丢失无法使用,重启后无法进入系统(无内核)
更新日志:
1 | [2020-05-05T08:54:19+0800] [PACMAN] Running 'pacman -Su' |
猜测发生原因:更新了pacman ,而保存软件包的 /var/cache/pacman/pkg 文件夹被我之前整成软连接了,可能在此次更新过程中被当莫名删掉了,然后就找不到下载的安装包,导致后来的内核、pacman都安装失败(然而都已经卸载了。。。)
解决途径:
回到 Arch 安装盘,挂载分区和引导之后重新安装内核:
1 | pacstrap /mnt linux |
删除 /var/lib/pacman/local/pacman-5.2.1-5 文件夹,然后再安装
1 | pacstarp /mnt pacman |
回滚操作
1 | 安装包缓存位置: |
卸载MySQL更换Mariadb
执行 sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql 时报错:
1 | Installing MariaDB/MySQL system tables in '/var/lib/mysql' ... |
解决方法:
1 | sudo rm -rf /var/lib/mysql |
plasma桌面特效失效
一次开机突然所有的桌面特效失效了,包括透明效果、动画等等
解决方法:


重新选择渲染后端后应用即可解决。
pacman 报错
1 | :: 正在同步软件包数据库... |
解决方法:
1 | sudo rm /var/lib/pacman/db.lck |
Linux常用命令
磁盘测速
1 | sudo hdparm -tT /dev/sdb2 |
修改卷标
1 | sudo blkid -c /dev/null # 查看卷标信息 |
视频合并
1 | pacman -S mencoder |