启动U盘
进入BIOS中关闭Secure Boot
调整启动方式为UEFI(对应磁盘格式为GPT,之后格式化的时候会改)
使用U盘启动
进入如下archlinux的live页面
基础安装
systemctl stop reflector
reflector 会根据速度自动修改镜像源,但是由于只考虑最新的20个镜像站,其结果大多数时候都不怎么好用。
ls /sys/firmware/efi/efivars
若有效输出则已启动
1 | iwctl #执行iwctl命令,进入交互式命令行 |
可以等待几秒等网络建立连接后再进行下面测试网络的操作。
ping ``www.gnu.org
如果你不能正常连接网络,首先确认系统已经启用网络接口:
1 | ip link #列出网络接口信息,如无线联网的设备叫wlan0 |
如果随后看到类似 Operation not possible due to RF-kill
的报错,继续尝试 rfkill
命令来解锁无线网卡:rfkill unblock wifi
1 | timedatectl set-ntp true #将系统时间与网络时间进行同步 |
一个通用的方案:
挂载点 | 分区 | 分区类型 | 建议大小 | 备注 |
---|---|---|---|---|
/mnt/boot | /dev/sda1 或/dev/nvme0n1p1 | EFI System | 512 MiB | ESP 分区 |
/mnt | /dev/sda2 或/dev/nvme0n1p2 | Linux x86-64 root | 100 GiB(至少 50 GiB) | Arch Linux 的根分区 |
/mnt/home | /dev/sda3 或/dev/nvme0n1p3 | Linux home | 剩余磁盘空间 | Arch Linux 的 home 分区 |
首先将磁盘类型转换为GPT格式,这里假设比如你想安装的磁盘名称为 sdx。如果你使用 NVME 的固态硬盘,你看到的磁盘名称可能为 nvme0n1。
1 | lsblk #显示分区情况 找到你想安装的磁盘名称 |
然后进行分区操作
1 | cfdisk /dev/sdx #来执行分区操作,分配各个分区大小,类型 |
其次是格式化操作
1 | mkfs.ext4 /dev/sdax #格式化根目录和home目录的两个分区 |
最后是挂载操作
在挂载时,挂载是有顺序的,先挂载根分区,再挂载 EFI 分区。 这里的 sdax 只是例子,具体根据你自身的实际分区情况来。
1 | mount /dev/sdax /mnt |
交换文件相当于 Windows 中的虚拟内存,也就是利用硬盘空间充当内存。当内存相对不足时,部分内存中的内容会交换到硬盘中,从而释放内存。关于 swap 的重要性,有两篇不错的文章,推荐读者阅读。
https://farseerfc.me/zhs/in-defence-of-swap.html
https://farseerfc.me/zhs/followup-about-swap.html
推荐swap大小
内存大小 | 2 GiB | 4 GiB | 8 GiB | 16 GiB | 32 GiB | 64 GiB |
---|---|---|---|---|---|---|
推荐的交换文件大小(使用休眠功能) | 4096 MiB | 5793 MiB | 8192 MiB | 11585 MiB | 16384 MiB | 23170 MiB |
推荐的交换文件大小(不使用休眠功能) | 4096 MiB | 5793 MiB | 8192 MiB | 8192 MiB | 4096 MiB | 0 MiB |
建立交换文件的具体操作方法如下。
首先使用 dd 创建交换文件。例如,创建一块 8 GiB (=8192 MiB)大小的交换文件。
1 | dd if=/dev/zero of=/mnt/swapfile bs=1M count=8192 status=progress |
如果您需要创建其他大小的交换文件,请将 count= 后面的数值换成交换文件大小的 MiB 数(GiB 数 x 1024)。
然后修改权限
1 | chmod 0600 /mnt/swapfile |
最后格式化并启用swap
1 | mkswap -U clear /mnt/swapfile |
推荐使用reflector,使用如下命令选择镜像。此命令将为您选出位于平均同步延迟在 3 小时以内的,位于中国的 https 镜像,并根据速度排序。指定 –completion-percent 95(默认为100)的目的是防止忽略可用的镜像。
1 | reflector -p https -c China --delay 3 --completion-percent 95 --sort rate --save /etc/pacman.d/mirrorlist |
也可使用得分排序
1 | reflector -p https -c China --delay 3 --completion-percent 95 --sort score --save /etc/pacman.d/mirrorlist |
也可以手动修改 /etc/pacman.d/mirrorlist
配置文件,使用vim或nano在 /etc/pacman.d/mirrorlist
中添加镜像源
1 | root@archiso ~ # nano /etc/pacman.d/mirrorlist |
默认先使用第一行的镜像源
完整镜像源列表可以参考官方文档
安装必需的基础包
1 | pacstrap /mnt base base-devel linux linux-headers linux-firmware #base-devel在AUR包的安装是必须的 |
可能有警告但是一定应该没有报错
如果报告“验证软件包错误”,可以尝试以下方法,然后重新安装。
1 | pacman-key --init # 初始化密钥环 |
安装必需的功能性软件
1 | pacstrap /mnt dhcpcd iwd vim bash-completion #一个有线所需(iwd也需要dhcpcd) 一个无线所需 一个编辑器 一个补全工具 |
fstab是一个系统文件,决定了系统启动时如何自动挂载分区。没有 fstab,系统将找不到根分区,从而无法启动。
Arch Linux 提供了自动生成 fstab 的工具,我们利用它直接生成。
1 | genfstab -U /mnt >> /mnt/etc/fstab |
其中 genfstab -U /mnt
是以 UUID 的描述方式生成 fstab,“>>” 的意思是,将输出结果附加在后面的文件之后。
生成完成后,记得使用 cat 命令打印文件内容,仔细检查一遍。
1 | cat /mnt/etc/fstab |
我们使用 arch-chroot 工具切换到新安装的系统,以后的操作就可以在新安装的系统中完成了。
1 | arch-chroot /mnt |
将时区设置为中国上海
1 | ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime |
然后设置硬件时间
1 | hwclock --systohc |
Locale 决定了地域、货币、时区日期的格式、字符排列方式和其他本地化标准。
首先使用 vim 编辑 /etc/locale.gen
,去掉 en_US.UTF-8 所在行以及 zh_CN.UTF-8 所在行的注释符号(#)。
这里需要使用 vim 的寻找以及编辑功能,具体可自行查询
1 | vim /etc/locale.gen |
1 | [root@archiso ~]# vim /etc/hostname |
需要安装一个网络管理器,笔者推荐使用 NetworkManager。
1 | pacman -S networkmanager |
NetworkManager 附带一个守护程序。在 Arch Linux 中,守护程序由 systemd 管理。systemd 是非常重要的系统程序。现在我们使用 systemd 设置 NetworkManager 开机自动启动。
1 | systemctl enable NetworkManager.service |
设置root用户密码
1 | [root@archiso ~]# passwd |
推荐使用GRUB,本文章只针对UEFI启动模式的电脑,对于BIOS启动模式的电脑可查看参考文章
先查看CPU型号:
1 | cat /proc/cpuinfo | grep "model name" |
如果是 Intel CPU,安装 intel-ucode。
1 | pacman -S intel-ucode |
如果是 AMD CPU,安装 amd-ucode。
1 | pacman -S amd-ucode |
1 | pacman -S grub efibootmgr #grub是启动引导器,efibootmgr被 grub 脚本用来将启动项写入 NVRAM。 |
可以对配置文件进行修改:编辑/etc/default/grub 文件,去掉 GRUB_CMDLINE_LINUX_DEFAULT
一行中最后的 quiet 参数,同时把 log level 的数值从 3 改成 5,这样是为了后续如果出现系统错误,方便排错。同时在同一行加入 nowatchdog 参数,这可以显著提高开关机速度。
1 | vim /etc/default/grub |
最后生成GRUB所需的配置文件
1 | grub-mkconfig -o /boot/grub/grub.cfg |
首先退出chroot环境
1 | exit |
然后关闭交换文件(如果有)
1 | swapoff /mnt/swapfile |
随后,取消挂载/mnt
1 | umount -R /mnt |
最后重启计算机
1 | reboot |
至此基本的Arch Linux系统已安装成功
界面配置
重启之后使用root账户登陆,然后连接wifi:
1 | nmcli device wifi list # 列出可连接的 WiFi |
可以使用ping工具检验
新安装的系统只有一个超级用户,即 root。使用 root 进行日常操作是不安全的。应当创建普通用户进行日常操作,仅在管理系统时使用 root。
1 | [root@xxxx ~]# useradd -m -G wheel 用户名 # 创建用户,并为其创建家目录,将其加入 wheel 组 |
普通用户的权限又太低了,有时我们需要 root 权限进行系统管理,比如系统更新。这时我们需要提升权限。
为了提升权限,我们需要配置一个工具,我们的工具是 sudo
需要使用vim编辑 /etc/sudoers
进行配置,由于该文件十分重要,推荐通过visudo工具编辑,该工具提供了语法检查,防止文件错误。
1 | EDITOR=vim visudo #需要以 root 用户运行 visudo 命令 |
找到 #%wheel ALL=(ALL:ALL) ALL
这一行,将#注释去掉,:wq
保存退出
编辑 EDITOR=vim sudoedit /etc/profile
文件,加入如下内容,将 vim 设置为默认 EDITOR
1 | export EDITOR='vim' |
这样就不用在每次执行命令时都指定一遍 EDITOR=vim
了。
重启之后可以使用 sudo -e
编辑文件了
pacman是 Arch Linux 的包管理器,负责安装、卸载、更新和查找软件包。我们为了让它更好地运行,需要进行如下配置:
- 启用颜色显示
- 启用并行下载
- 启用 multilib 仓库
- 启用 archlinuxcn 仓库
- 安装 pkgstats
主要是编辑 /etc/pacman.conf
文件
1 | sudo -e /etc/pacman.conf |
为了启用颜色显示和并行下载([12]),请取消 Color 和 ParallelDownloads = 5 之前的“#”:
1 | /etc/pacman.conf |
其次,如果您需要在 Arch Linux 中运行 Steam 和 Wine(Steam 是 Valve 公司开发的游戏分发平台;Wine 是 Windows 兼容层,可以使您在 Linux 中运行 Windows 程序),请启用 multilib 仓库。该仓库提供 32 位软件包。请搜索“multilib”,取消下述两行之前的“#”。
1 | /etc/pacman.conf |
然后,推荐启用 archlinuxcn 仓库。该仓库是由 Arch Linux 中文社区驱动的非官方软件仓库,包含许多官方仓库未提供的额外的软件包,以及已有软件的 git 版本等变种,提供了大量适合国人使用的软件包。
请在文件最后新建一行,输入:
1 | /etc/pacman.conf |
如果您开启了 archlinuxcn 仓库,请安装 archlinuxcn-keyring。
1 | pacman -Syyu |
如果 pacman -S archlinuxcn-keyring
出现如下错误
1 | error: archlinuxcn-keyring: signature from "Jiachen YANG (Arch Linux Packager Signing Key) <[email protected]>" is marginal trust |
需要 sudo pacman-key --lsign ``[email protected]
具体见ArchLinux论坛
最后,建议安装 pkgstats。这个软件包将您安装的软件列表、镜像源和计算机架构定期上传到 Arch Linux 官方,反馈该信息有利于系统的发展,这也是为开源社区的贡献。如果您不希望上传软件列表,请跳过此步。要想查看统计数据,请前往 pkgstats.archlinux.de。
1 | pacman -S pkgstats |
使用 pacman 安装和更新软件包时,软件包会下载到 /var/cache/pacman/pkg/
目录下。久而久之,缓存会占据大量的存储空间。因此,定期清理软件包缓存是必要的。
推荐安装 pacman-contrib软件包,然后开机自动启动 paccache.timer,以便每周自动清理不使用的软件包缓存。
1 | pacman -S pacman-contrib |
1 | pacman -S plasma-meta konsole dolphin #安装plasma-meta元软件包以及终端和文件管理器 |
登陆屏幕
1 | systemctl enable sddm |
1 | sudo pacman -S sof-firmware alsa-firmware alsa-ucm-conf #一些可能需要的声音固件 |
设置中寻找,如果显示中文不全可能是 ~/.config/plasma-localerc
里的 LANG 变量缺少 .UTF-8。
具体参考ArchLinux论坛
1 | sudo pacman -S fcitx5-im #基础包组 |
设置环境变量:编辑文件 EDITOR=vim sudoedit /etc/environment
加入以下内容。konsole 以及 dolphin 都需要这些环境变量,倒是 chrome 和 firefox 都不需要就可以输入中文
1 | GTK_IM_MODULE=fcitx |
打开 系统设置区域设置输入法 ,先点击 运行Fcitx
即可,拼音为默认添加项。如你还需要更多输入法如五笔,则再点击 添加输入法
,找到简体中文下的五笔 ,点击添加即可加入五笔输入法。
接下来点击 拼音 右侧的配置按钮,点选 云拼音
和 在程序中显示预编辑文本
最后应用。
回到输入法设置,点击 配置附加组件
,找到 经典用户界面 在主题里选择一个你喜欢的颜色 最后应用。
注销,重新登陆,就可以发现已经可以在各个软件中输入中文了