Arch Linux 安装教程
此文章适用于现代(2010年及以后)的x86_64机器
截至教程发布日,Arch Linux Live CD的最新版本是2024年9月的,测试无误。
支持的硬件
·x86_64架构的CPU,建议为2008年以后的CPU,比如 Intel Core i系列之后的以及AMD FX
·至少有1GB内存(Arch Wiki上写的最小的512MB现在已经无法启动如今的Live CD)
·可用的网络连接
·20GB可用的硬盘空间
具体步骤
制作安装介质
- 到镜像站去下载最新的Arch Linux Live CD iso ->
https://mirrors.ustc.edu.cn/archlinux/iso/latest/archlinux-x86_64.iso
- 使用工具将其写入到USB驱动器或者刻录光盘(不建议)
推荐写入工具balenaEtcher - 重启后按主板厂商的指引设置USB启动或选择USB启动(若失败请先关闭安全启动[^1])
- 从USB驱动器引导后就进入了Live CD环境
定义环境变量(可选)
很多命令都需要更改为你自己的设置。
因此为了方便(可以直接复制我的),我们在此处先定义一些环境变量。
这些环境变量的定义需要你在等号=
后面输入要输入的信息。
首先,是你要连接的 WIFI 名字,也就是 SSID:
1 |
|
然后是它的密码:
1 |
|
新建的用户名字:
1 |
|
Live CD设置
- 连接网络 ->
WIFI:如果直接插网线的话上面的步骤可以跳过1
2
3
4iwctl station wlan0 scan
iwctl station wlan0 get-networks
iwctl station wlan0 connect $SSID --passphrase $WIFI_PASSWORD #$SSID代表WIFI的名字,$PASSWORD代表密码
ip addr如果没有
wlan0
的话,可能是没有无线网卡或者是没有驱动,请插网线。如果没有RJ45网口,请移步Manjaro(ip addr
返回了wlan0的信息并且下面有正确的ip,则代表网络已连接成功。
可选:停止reflector
服务,防止/etc/pacman.d/mirrorlist
被写入其他地区镜像 ->1
systemctl stop reflector.service
- 配置镜像
国内网络环境懂得都懂,用镜像(注意:这一步须在reflector.service
停止后进行,可手动结束或等待其执行完成,否则编辑完的mirrorlist
会被它重写) ->1
vim /etc/pacman.d/mirrorlist
- 在文件开头按
i
进入insert
模式,添加Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
- 按
esc
退出insert
模式,输入:wq
保存并退出vim
- 在文件开头按
- (可选)ssh 远程连接
远程访问,可以直接复制命令。看 wlan0(如果是 WIFI 连接)下面的信息,这里会显示联网后本机在局域网内被分配的ip地址。记下它。1
ip a
然后我们设置这台机器 root 用户的密码:这里随便设一个,只要你能记住。1
passwd
我这里假设这台机器的ip是 192.168.101.12,于是在另一台在同一个局域网的机器上,执行然后按提示,输入1
ssh [email protected]
yes
,再输入刚才设置的密码,就可以连接了。
磁盘相关
- 磁盘分区 ->
这一步需要按照情况自行更改,操作不当会导致数据丢失。一定要理解下面info中的内容。
我这台机器有一个NVME接口的固态硬盘,它的编号是
nvme0n1
。在有多个NVME接口的主板上,如果你插了多块硬盘,它将会有nvme1n1
、nvme2n1
等编号,一定要清楚自己要操作的是哪块硬盘。连在SATA与USB接口上的硬盘会显示sda
、sdb
等,sda
可能是U盘也可能是内置硬盘,请先lsblk
进行辨认。这条命令的意义是对nvme0n1
进行操作,请根据自身需要更改。1
cfdisk /dev/nvme0n1
如果先前有Windows安装的话,请注意不要把Windows分区直接缩小大小,会让Windows坏掉。应先使用其他工具完成分区大小调整再进行后续步骤。
- 使用GPT分区表(这是UEFI引导的必须条件)
- 推荐分区方案 ->
- EFI分区:不小于4MB,类型:
EFI System
- 主分区:不小于10GB,类型:
Linux filesystem
(建议在分区内部建立一个swapfile来承担swap的任务)
- EFI分区:不小于4MB,类型:
- 结束后,选
Write
再输入yes
来写入分区表,再选Quit
退出
- 建立文件系统 ->
主分区使用ext4
文件系统如果先前安装了Windows或者其他操作系统,不要执行第一条,会导致Windows引导损坏。
这条命令也需要自行修改,意为在
nvme0n1
的第一分区创建vfat
文件系统,在nvme0n1
的第二分区创建ext4
文件系统。1
2mkfs.vfat /dev/nvme0n1p1
mkfs.ext4 /dev/nvme0n1p2如果之前
nvme0n1p2
建立过其他文件系统,这里需要按y
确认。 - 挂载分区 ->
改,勿照抄。
/
的nvme0n1p2
挂载到/mnt
,再把nvme0n1p1
这个EFI分区挂到/mnt/boot/efi
下。1
2
3mount /dev/nvme0n1p2 /mnt
mkdir -p /mnt/boot/efi
mount /dev/nvme0n1p1 /mnt/boot/efi - 创建
swapfile
->swap
的用途是在内存不足时,将硬盘的一部分作为内存的扩展空间使用。这里swap
创建为8G,可根据需要改变count=
后的数字,单位是MB。当然如果内存够大也可以不用执行这些命令。1
2
3
4dd if=/dev/zero of=/mnt/swapfile bs=1M count=8192
chmod 600 /mnt/swapfile
mkswap /mnt/swapfile
swapon /mnt/swapfile
安装系统
- 安装软件包 ->
首先初始化keyring!!1
pacman -Sy archlinux-keyring
使用KDE Plasma作桌面环境的系统
pacstrap
安装必要的包1
pacstrap /mnt base linux-zen linux-firmware linux-zen-headers base-devel git zsh zsh-completions grub efibootmgr networkmanager openssh vim plasma konsole dolphin noto-fonts-cjk noto-fonts noto-fonts-emoji noto-fonts-extra fcitx5-chinese-addons chromium fastfetch htop
使用GNOME作桌面环境的系统
1
pacstrap /mnt base linux-zen linux-firmware linux-zen-headers base-devel git zsh zsh-completions grub efibootmgr networkmanager openssh vim gnome noto-fonts-cjk noto-fonts-emoji noto-fonts-extra ibus ibus-libpinyin chromium fastfetch htop
使用命令行界面的系统(Headless)
这是我的习惯 ->1
pacstrap /mnt base linux-zen linux-firmware linux-zen-headers base-devel git zsh zsh-completions grub efibootmgr networkmanager openssh vim fastfetch htop tmux
- 生成
fstab
->1
genfstab -U /mnt >> /mnt/etc/fstab
chroot
到新系统 ->1
arch-chroot /mnt
初步配置系统
- 时间设置 ->
1
2ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc - 用户设置 ->
1
2
3echo archlinux > /etc/hostname
useradd -m $NEW_USERNAME -G wheel
passwd $NEW_USERNAMEuseradd
用于添加账户,passwd
用于修改密码,为安全考虑输入的密码不会直接显示出来。虽然没有反应,但确实是输入进去了。-m
参数用以添加用户目录,-G
参数用以将用户加入到wheel
组中。这个组将会被赋予使用sudo
的权力。 - 编辑
sudoers
->将文件中的1
visudo
# %wheel ALL=(ALL:ALL) ALL
(大概率在第121行,使用vim
按:121
跳转)的注释取消,使得wheel
组里的用户可以使用sudo
- 配置
zsh
->zsh 是一个有强大客制化能力的 shell,并且 Apple 也将新 macOS 默认的 shell 换成了 zsh。现在Arch Linux Live CD 的默认 shell 就是 zsh。
如果不喜欢zsh,或者考虑兼容性,请跳过这一步。这里使用了清华大学的 git 镜像,如果网络条件允许可以换成1
sudo pacman -S grml-zsh-config
https://github.com/ohmyzsh/ohmyzsh
。 - 本地化 -> 此处命令意为去掉
1
2
3echo "LANG=\"en_US.UTF-8\"" >> /etc/locale.conf
sed -i "s@#zh_CN.UTF-8 UTF-8@zh_CN.UTF-8 UTF-8@g" /etc/locale.gen
sed -i "s@#en_US.UTF-8 UTF-8@en_US.UTF-8 UTF-8@g" /etc/locale.gen#zh_CN.UTF-8 UTF-8
和#en_US.UTF-8 UTF-8
的注释符号“#
”
最后运行 ->1
locale-gen
- 服务设置 ->
1
2
3
4systemctl enable NetworkManager
systemctl enable sshd
systemctl enable sddm # KDE
systemctl enable gdm # GNOME - 引导设置 ->
gurb
已支持引导Windows。
可以让grub
找到Windows。对于1
sudo pacman -Sy ntfs-3g os-prober
UEFI
引导的安装方式
1
2
3grub-install --target=x86_64-efi --efi-directory=/boot/efi
sed -i "s@#GRUB_DISABLE_OS_PROBER=false@GRUB_DISABLE_OS_PROBER=false@g" /etc/default/grub
grub-mkconfig -o /boot/grub/grub.cfg
对于BIOS
引导的安装方式
1
2
3grub-install /dev/nvme0n1
sed -i "s@#GRUB_DISABLE_OS_PROBER=false@GRUB_DISABLE_OS_PROBER=false@g" /etc/default/grub
grub-mkconfig -o /boot/grub/grub.cfg - 退出
chroot
环境并重启 ->至此Arch Linux的安装就完成了1
2exit
reboot
接下来是配置部分
进一步配置系统
如果是KDE的话,重启系统后,大概就是这样的 ->
- 输入法配置
如果直接右键
-配置
是会显示这个的 ->
这会进入文本配置,显然我们是不懂的(
所以要安装fcitx5-configtool
->然后再1
sudo pacman -S fcitx5-configtool
右键
-配置
就可以看到 ->
然而现在按Ctrl+Tab
是不能切换到拼音输入法的,我们需要把Fcitx5
设为默认输入法并自动启动 ->把下面的东西加进去 ->1
sudo vim /etc/environment
重新登录就可以正常使用喵~1
2
3
4
5GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus
更多用法请参阅Arch Wiki - 软件源
众所周知,官方源对于灰色地带/非自由软件是不收录的。
所以我们通常用第三方源+AUR
来进行补充。
官方源是不带任何AUR
工具的,所以我们先装archlinuxcn
源 ->加入以下文本 ->1
sudo vim /etc/pacman.conf
然后获取1
2[archlinuxcn]
Server = https://mirrors.bfsu.edu.cn/archlinuxcn/$archkeyring
->(2024.9.7测试问题已解决)近期这一步会出现问题,因为archlinuxcn 社区源的 keyring 包 archlinuxcn-keyring 由 farseerfc 的 key 签署验证,而 Arch Linux 官方 keyring 中包含了 farseerfc 的 key 。自12月初 archlinux-keyring 中删除了一个退任的 master key (https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/issues/246) 导致 farseerfc 的 key 的信任数不足,由 GnuPG 的 web of trust 推算为 marginal trust,从而不再能自动信任 archlinuxcn-keyring 包的签名。(转自Arch Linux CN Telegram Messages Channel)
archlinuxcn-keyring
包时遇到如下报错:请使用以下命令在本地信任 farseerfc 的 key 。此 key 已随1
error: archlinuxcn-keyring: Signature from "Jiachen YANG (Arch Linux Packager Signing Key) <[email protected]>" is marginal trust
archlinux-keyring
安装在系统中,只是缺乏信任:然后1
sudo pacman-key --lsign-key "[email protected]"
就可以使用1
sudo pacman -Sy archlinuxcn-keyring
archlinuxcn
源了!
由于要使用AUR
,所以我们先装一个AUR工具:详细的用法和1
sudo pacman -S paru
pacman
一样。 - 引导Windows
在安装系统时,os-prober
往往不能正常检测到Windows,需要我们再运行重启即可看到1
sudo grub-mkconfig -o /boot/grub/grub.cfg
Windows Boot Manager
。
显卡驱动
如果是A卡和I卡,在这个时候已经不用看了,开源的驱动会做得很好,而且已经随桌面环境装上了
而N卡,需要进行以下步骤
查看显卡型号
1 |
|
GeForce 900 系以及更新的显卡(NV110+),安装 nvidia(用于官方源里的标准内核)或者 nvidia-lts(用于 linux-lts 内核)
Turing (NV160/TUXXX) 系列或更新的显卡。可以安装 nvidia-open 包,开源的(仅适用于官方源里的内核,其他内核上必须使用 nvidia-open-dkms 包)
更老的显卡型号(发布于 2010 年或更早),就用内核自带的 Nouveau
安装驱动
1 |
|
后续
安装 NVIDIA 官方的驱动之后,需要编辑/etc/mkinitcpio.conf
,在 HOOKS 一行删除kms
并保存
然后执行
1 |
|
重新生成一次镜像。这能防止 initramfs 包含 nouveau 模块,避免 nouveau 和官方驱动的冲突。
到现在一个日常使用的系统已经完成了~ 剩下的请自由发挥~
常用软件
- telegram
1
sudo pacman -S telegram-desktop
- Visual Studio Code(Official version)
1
paru -S visual-studio-code-bin
- Wine
先启动/etc/pacman.conf
中的multilib
源,其中包含32位软件
不要直接复制这些命令,要先看好你的显卡是哪家的1
2
3
4sudo pacman -S lib32-mesa # 普通御三家卡
sudo pacman -S lib32-nvidia-utils # 绿厂闭源驱动,效果好,需要现代N卡
sudo pacman -S lib32-amdgpu-pro-oglp # 专业A卡
sudo pacman -S wine wine-gecko wine-mono lib32-alsa-lib lib32-alsa-plugins - Chrome / Edge
1
2paru -S microsoft-edge-stable-bin # 莫名慢速下载警告
paru -S google-chrome - 网易云音乐替代品
Go 写的 musicfox,TUI 版网易云1
paru -S go-musicfox-git
- Steam
1
2sudo pacman -S steam
paru -S proton - Clash Verge Reversion
这是一个 Clash Verge 的修复版本,解决了原版无法更新订阅的问题1
paru -S clash-verge-rev
美化
Shell
对于 zsh, 我推荐 Powerlevel10k。
它的 Github 仓库链接是https://github.com/romkatv/powerlevel10k
当你添加了 archlinuxcn 源之后,你可以
1 |
|
创建~/.zshrc
并加入source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme
在这里如果你直接运行source ~/.zshrc
,你会发现这里有很多图标不能显示。
所以要安装「高级」的字体,也就是打了补丁的 Nerd Fonts。这是一个系列,加入了很多图标。
我喜欢 Meslo Font,你也可以换成别的,比如 ttf-jetbrains-mono-nerd
1 |
|
然后source ~/.zshrc
并运行p10k configure
就可。
字体配置
一天你打开浏览器,看到了抽象的日本字体,比如关、复的字形过窄,门的点变成了竖插在上面……
这是不可接受的。
于是你执行vim ~/.fonts.conf
把以下内容写了进去:
1 |
|
并fc-cache -fv
问题就聪明的解决了。
Vim
Vim 是一个文本编辑器,我们已经安装好了。
它有强大的客制化能力,你甚至可以把它变成IDE。
比如https://github.com/amix/vimrc
1 |
|
如果网络条件差也是没有办法((
请注意一下「常用软件」部分的第7号,这是一个奇妙小工具。