时间:2025-12-23 21:27
人气:
作者:admin
官网下载 https://archlinux.org/download/ 最新镜像
镜像烧录
制作启动盘,Windows 下推荐使用 Ventoy ,下载好软件,安装进U盘(会格式化U盘,请保存好U盘数据),把下载好的镜像文件(archlinux.iso)直接放在 VENTOY 分区即可,开机重启进入U盘,选择进入arch live进行安装系统。
1.进入系统后,设置root用户密码
passwd root
连接 wifi 热点,另一个电脑跟这个电脑在同一个 wifi下
#是否启用了网络接口
ip link
#执行iwctl命令,进入交互式命令行
iwctl
-------------下面为iwctl界面,不同于终端-----------
[iwd] help # 输入help回车可以查看使用说明
[iwd] device list # 回车后可以查看当前网卡设备,一般为 wlan0
[iwd] station <device> scan # <device>替换为上面的网卡设备,这条命令可以让网卡扫描wifi设备
[iwd] station <device> get-networks # 回车后可以显示当前可连接网络,列出所有 wifi 网络
[iwd] station <device> connect <wifi name> # 连接wifi, <wifi name> 为上面获取的wifi名称,注意这里无法输入中文。回车后输入密码即可
password: # 如果wifi为加密wifi,输入密码回车
[iwd] exit或者quit # 退出 wifi 连接界面
ip address
查看ip地址,远程连接 ip 端口为22。用户:root,密码:root
ssh -p 22 root@192.168.43.77
ssh 连接之后,在另一个电脑的终端即可复制粘贴命令,省去了手打命令的繁琐,也可用 Windws的 finalshell 或者 Xshell 进行 ssh连接
通过以下命令将 reflector 服务禁用:
systemctl stop reflector.service
通过以下命令查看该服务是否被禁用,按下 q 退出结果输出:
systemctl status reflector.service
结果如下表示禁用成功
○ reflector.service - Refresh Pacman mirrorlist with Reflector.
Loaded: loaded (/usr/lib/systemd/system/reflector.service; disabled; preset: disabled)
Active: inactive (dead)
Docs: https://wiki.archlinux.org/index.php/Reflector
禁用 reflector 服务后,再来确认一下是否为 UEFI 模式:
ls /sys/firmware/efi/efivars
timedatectl set-ntp true # 将系统时间与网络时间进行同步
timedatectl status # 检查服务状态
使用 vim 编辑器修改 /etc/pacman.d/mirrorlist 文件。将 pacman 软件仓库源更换为国内软件仓库镜像源:
vim /etc/pacman.d/mirrorlist
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch # 中国科学技术大学开源镜像站
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch # 清华大学开源软件镜像站
Server = https://repo.huaweicloud.com/archlinux/$repo/os/$arch # 华为开源镜像站
Server = http://mirror.lzu.edu.cn/archlinux/$repo/os/$arch # 兰州大学开源镜像站
Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch # 阿里云镜像站
格式化引导分区
mkfs.fat -F32 /dev/nvme0n1p1
格式化交换分区(一般为电脑内存的一半大小即可)
mkswap /dev/nvme0n1p5
格式化根目录
mkfs.btrfs -L myhome /dev/nvme0n1p2 -f
挂载根目录
mount -t btrfs -o compress=zstd /dev/nvme0n1p2 /mnt
创建 btfrs 子卷
btrfs subvolume create /mnt/@ # 创建 / 目录子卷
btrfs subvolume create /mnt/@home # 创建 /home 目录子卷
查看是否创建成功
btrfs subvolume list -p /mnt
卸载根目录
umount /mnt
重新挂载,并创建家目录,将家目录挂载在根目录下
mount -t btrfs -o subvol=/@,compress=zstd /dev/nvme0n1p2 /mnt # 挂载 / 目录
mkdir /mnt/home # 创建 /home 目录
mount -t btrfs -o subvol=/@home,compress=zstd /dev/nvme0n1p2 /mnt/home # 挂载 /home 目录
mkdir -p /mnt/boot # 创建 /boot 目录
mount /dev/nvme0n1p1 /mnt/boot # 挂载 /boot 目录
swapon /dev/nvme0n1p5 # 挂载交换分区
pacstrap /mnt base base-devel linux-lts linux-firmware btrfs-progs
pacman -S archlinux-keyring
pacstrap /mnt networkmanager vim sudo zsh zsh-completions man
genfstab -U /mnt > /mnt/etc/fstab
cat /mnt/etc/fstab
arch-chroot /mnt
ThinkPad 电脑内核编译会出错,因为没有设置键盘布局,添加如下
cat <<EOF > /etc/vconsole.conf
KEYMAP=us
EOF
cat /etc/vconsole.conf
mkinitcpio -P
echo "ArchLinux" >> /etc/hostname
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
vim /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 ArchLinux.localdomain ArchLinux
同步时钟
hwclock --systohc
sed -i 's/^#en_US.UTF-8/en_US.UTF-8/' /etc/locale.gen
sed -i 's/^#zh_CN.UTF-8/zh_CN.UTF-8/' /etc/locale.gen
locale-gen
echo "LANG=en_US.UTF-8" >> /etc/locale.conf
echo "LANG=en_US.UTF-8" >> /etc/profile
passwd root
pacman -S intel-ucode # Intel
pacman -S amd-ucode # AMD
pacman -S grub efibootmgr os-prober
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH
vim /etc/default/grub
进行如下修改:
GRUB_CMDLINE_LINUX_DEFAULT 一行中最后的 quiet 参数loglevel 的数值从 3 改成 5。这样是为了后续如果出现系统错误,方便排错nowatchdog 参数,这可以显著提高开关机速度nowatchdog 参数无法禁用英特尔的看门狗硬件,改为 modprobe.blacklist=iTCO_wdt 即可。如有需要可以参考 ArchWiki 对应内容
如果使用的是AMD Ryzen CPU,检查日志中的sp5100-tco相关输出。sp5100-tco是AMD 700芯片组系列中的硬件看门狗。要关闭它,编辑:
vim /etc/modprobe.d/disable-sp5100-watchdog.conf
blacklist sp5100_tco
或者使用modprobe.blacklist=sp5100_tco 内核参数。
要检查新配置是否成功应用,执行 cat /proc/sys/kernel/watchdog 或 wdctl 。
因为加载的模块更少,上述两种关闭看门狗的方式都能提升系统的启动和关机速度。此外,关闭看门狗计时器还能提升性能并降低电量消耗。
grub-mkconfig -o /boot/grub/grub.cfg
pacman -S openssh
systemctl enable NetworkManager # 设置开机自启并立即启动 NetworkManager
systemctl enable sshd
useradd -m -G wheel -s /bin/bash vconlln
命令参数说明:
-m 创建用户的同时创建用户家目录wheel —— wheel 附加组可 sudo 进行提权-s 选项后指定 shell 程序myusername —— 用户名(请自定义,但不要包含空格和特殊字符)passwd vconlln
vim /etc/sudoers
找到如下这样的一行,把前面的注释符号 # 去掉:
#%wheel ALL=(ALL:ALL) ALL
vconlln ALL=(ALL) NOPASSWD:NOPASSWD:ALL
这里稍微解释一下:
%wheel —— 用户名或用户组,此处则代表是 wheel 组,% 是用户组的前缀
ALL= —— 主机名,此处则代表在所有主机上都生效(如果把同样的 sudoers 文件下发到了多个主机上)
(ALL:ALL) —— (任意用户:任意用户组),此处则代表可以成为任意目标用户/用户组
最后的 ALL —— 代表可以执行任意命令
几个更详细的例子:
在 mailadmin 组里的用户可以作为 root 用户,在 snow 和 rain 这两台主机执行一些邮件服务器控制命令(命令之间用 , 分隔):
%mailadmin snow,rain=(root) /usr/sbin/postfix, /usr/sbin/postsuper, /usr/bin/doveadm
用户 whoami 可以在所有主机上以 root 用户不输入密码执行 rndc reload 这条命令(正常来说 sudo 都是要求输入调用方的密码的):
whoami ALL=(root) NOPASSWD: /usr/sbin/rndc reload
当在 users 组里的用户以 sudo passwd 或者 sudo passwd root 方式运行命令的时候,可以直接把 root 用户的密> 码 改掉,这真是太危险了!必须要把这两条命令禁止掉,但我们又希望用户可以通过 sudo passwd 修改其它用户的密码。那么我们可以在命令前面加上 ! 来表示不可执行的命令:
%users ALL=(root) !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
总结一下,语法如下:
用户名/%用户组名 主机名=(目标用户名) 命令1, 命令2, !命令3
exit
umount -R /mnt
reboot
用普通用户进入
vim ~/.bash_profile
export EDITOR='vim'
若为无线连接,则需要在启动 networkmanager 后使用 nmcli 连接网络:
nmcli dev wifi list # 显示附近的 Wi-Fi 网络
nmcli dev wifi connect "mate70" password "****" # 连接指定的无线网络
sudo vim /etc/pacman.conf
[archlinuxcn]
SigLevel = Never
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
sudo pacman -S timeshift grub-btrfs
sudo systemctl enable --now cronie.service‘
sudo systemctl enable --now grub-btrfsd.service
sudo systemctl edit grub-btrfsd.service
在默认的光标位置,添加以下内容后保存并退出
[Service]
ExecStart=
ExecStart=/usr/bin/grub-btrfsd --syslog --timeshift-auto
自动生成快照启动项
通过安装 grub-btrfs 包,可以实现在每次使用 grub-mkconfig 重新生成 GRUB 启动项时,自动添加快照的启动入口。 如果希望在 Timeshift 自动创建快照的能够同时自动生成启动项,可以通过以下命令运行 grub-btrfsd.service 并将其配置为自动启动
重载并重启服务
sudo systemctl daemon-reload
sudo systemctl restart grub-btrfsd.service
这样就能够实现在 Timeshift 生成快照时,自动添加快照启动项
问题解决
Timeshift 图形用户界面无法在 Wayland 上启动
XWayland 只允许启动 X 服务器的用户连接客户端(请参阅以根用户权限启动图形用户界面)。
由于 Timeshift 需要 root 权限,试图通过应用程序启动器或终端使用命令 timeshift-launcher 启动 Timeshift GUI 时,会出现包含 xhost: command not found 的错误。
遇到此错误的用户还可能会看到他们的身份验证组件提示输入密码,但输入密码后却发现 Timeshift GUI 无法启动。
这是因为命令 timeshift-launcher 需要 xorg-xhost包 软件包,请安装它。
完成后建议执行下述指令删除 subvolid:
sudo sed -i -E 's/(subvolid=[0-9]+,)|(,subvolid=[0-9]+)//g' /etc/fstab
否则,恢复 BTRFS 类型快照时,可能因子卷 ID 改变导致无法正常进入系统,参阅 恢复后无法挂载目录。
sudo pacman -Sy --needed niri alacritty fuzzel swaylock swayidle waybar swaybg xwayland-satellite sddm mako
sudo systemctl enable --now sddm.service
waybar 需要字体
sudo pacman -S noto-fonts-emoji otf-font-awesome
sudo pacman -S adobe-source-han-serif-cn-fonts wqy-zenhei # 安装几个开源中文字体。一般装上文泉驿就能解决大多 wine 应用中文方块的问题
sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra # 安装谷歌开源字体及表情
sudo pacman -S mesa lib32-mesa xf86-video-amdgpu vulkan-radeon lib32-vulkan-radeon
yay -S radeon-profile-git radeon-profile-daemon-git
systemctl --user add-wants niri swayidle
这样做可以让 swayidle 软件包接管锁屏、睡眠等系统操作。
sudo pacman -S niri xdg-desktop-portal-gtk xdg-desktop-portal-gnome alacritty swaybg swayidle hyprlock xwayland-satellite dolphin sddm brightnessctl wireplumber grim flameshot breeze wshowkeys-git fcitx5 fcitx5-qt fcitx5-chinese-addons blueman noto-fonts libnotify pipewire pipewire-pulse
sudo pacman -S ttf-fira-code
yay -S ***-verge-rev-bin
systemctl --user add-wants niri.service mako.service
systemctl --user add-wants niri.service waybar.service
sudo pacman -S noto-fonts-emoji otf-font-awesome
# 搜索可用的 CaskaydiaCove 相关包,这是waybar配置文件中的首选字体
yay -Ss caskaydia
yay -Ss cascadia
# 安装找到的包
yay -S ttf-cascadia-code-nerd
fc-cache -fv