这是一篇为GPT/EFI 引导 的电脑安装 Arch Linux(双系统)的中文简明流程,尽可能省略了可以省略的流程与文字以使得篇幅尽量短小,基本上基于Arch Wiki Installation guide 以及这篇优秀的安装教程,特此表示感谢。
本文严格按照操作顺序进行编写,还请认真阅读每一步操作的说明以及注意事项。
说明:下文中所指教程均指此篇教程:以官方Wiki的方式安装ArchLinux。
此处默认你使用 Windows 系统,其他情况请参阅Arch Wiki。
tuna.tsinghua.edu.cn,下载文件名形如archlinux-2022.04.05-x86_64.iso 的 iso 镜像文件。重要提示:如果你的 Windows 电脑为磁盘加上了Bitlocker 锁,请务必解除后再进行任何磁盘操作,否则会为你带来巨大的不幸。
此处默认 Arch Linux 与原系统安装在同一块硬盘上,如果你需要在一块新硬盘上安装,你还需要确定新硬盘的分区表为 GPT 格式,并新建一个 EFI 分区。具体的其他情况请查阅 Arch Wiki、教程 或自行搜索。
说明:你也可以在进入 Arch Linux 安装程序后进行这一步。
不同品牌的电脑/主板进入 BIOS 设置的方法不一样,联想以及戴尔是在按下开机键出现品牌徽标时 按 F2(或 Fn+F2),启动菜单是按下 F12,其他品牌请自行搜索。
各品牌 BIOS 设置界面各自不同,但需要做的事情大同小异。
关闭Secure Boot,Arch Linux 安装程序无法使用Secure Boot 启动,你可以在完成安装之后再启用此功能。
某些品牌(如戴尔)的电脑可能不会在其他系统中默认开启网卡,需要在设置中启用Enable UEFI Network Stack。
调整 BIOS 默认的启动顺序(Boot Sequence /Boot Order),检查是否有装载有 Arch Linux 的 U 盘,将其顺序调整到第一位(你也可以在计算机启动时手动进入启动菜单选择要启动的系统),保存 BIOS 设置并退出。
说明:如果在这里找不到你的 U 盘(设备名形如
ARCH_202204),说明可能你的设备开启了Secure Boot导致 BIOS 无法找到系统入口,保存 BIOS 设置退出后重新进行这一步即可。
完成了 BIOS 的设置后,重启计算机,我们应该进入到了 Arch Linux 的界面,选择第一个进入安装程序即可进入zsh 命令行界面。
说明:此部分问题较多,请耐心使用控制变量法以及搜索引擎进行问题排查。
解除可能出现的软硬件 block
rfkill unblock all 列出当前网络设备
ip link show 一般而言,无线网卡的名字默认为wlan0,检查其状态,若为DOWN 还需设置为UP,wlan0 请替换成此处显示的网卡名
ip link set wlan0 up 不同型号的无线网卡的支持情况不同,若有条件推荐优先使用有线网网络进行连接,可以直接使用 USB 线将手机连接电脑使用手机的数据网络。
接入网线或手机后,执行命令进行有线网连接
dhcpcd 测试网络是否联通
ping www.baidu.com 使用
Ctrl+C中止当前正在执行的命令
执行以下命令
iwctl 会进入一个以 [iwd] 开头的命令行环境中,接着执行:
device list 会列出当前可用的所有网卡设备,一般而言,无线网卡的名字默认为wlan0,接着执行下列命令进行无线网络的扫描:wlan0 请替换成此处显示的网卡名
station wlan0 scan 接着执行下列命令列出扫描到的网络:
station wlan0 get-networks 最后输入下列命令连接指定网络:Wifi-SSID 请切换成你想要连接的网络,输入密码回车即可连接成功。
station wlan0 connect Wifi-SSID 提示:单次或多次按下
Tab可以补全或选择可能的选项,免去输入校对之苦
使用quit 退出iwc,测试网络是否联通
ping www.baidu.com 使用
Ctrl+C中止当前正在执行的命令
提示:可以使用方向键的上、下键来查看曾经执行过的指令的历史记录
timedatectl set-ntp true 操作成功无提示
警告:除非你清楚你自己在做什么,否则请不要对硬盘分区表、以及除前文新建的分区之外的分区进行任何操作,并且请多次检查自己有没有输错命令,以防对其他分区的数据产生影响。
换而言之,只要你不对其他分区(Windows 相关分区)进行任何操作,就不需要担心有任何数据丢失的风险。
列出当前所有分区
fdisk -l 找到EFI System 分区 以及刚刚在 Windows 下建立的新分区 ,记下这两个分区的路径(形如/dev/nvme0n1p1 与/dev/nvme0n1p5)。EFI 系统分区一般大小为 300-500M 不等。
再次提示:单次或多次按下
Tab可以补全或选择可能的选项,免去输入校对之苦。
部分电脑蜂鸣器会在Tab无法补全时发出刺耳的提示声,使用rmmod pcspkr移除。
格式化刚刚在Windows下新建的数据分区(替换为你自己的路径)
mkfs.ext4 /dev/nvme0n1p5 请将nvme0n1p5 替换为之前创建的数据分区,将nvme0n1p1 替换为已经存在的 EFI 系统分区
mount /dev/nvme0n1p5 /mnt mkdir /mnt/boot mount /dev/nvme0n1p1 /mnt/boot 检查挂载是否成功
mount Arch Linux 的包管理器pacman 十分强大,大部分情况下,一行命令就可以搞定包与依赖的问题。
运行命令以配置pacman 所使用的镜像源,Reflector 会自动帮我们配置位于 China 的下载速度最快的镜像源
reflector --country China --sort rate --latest 5 --save /etc/pacman.d/mirrorlist 可能会报WARNING 但无需理会
休息一下,接下来我们的所有文字编辑命令都需要使用Vim。推荐使用以下的链接进行学习,只需要掌握第一等级即可:
简明 VIM 练级攻略
打开pacman 设置,启用pacman 的并行下载功能,加速下载,事半功倍。
vim /etc/pacman.conf 找到ParallelDownloads = 5 这一行并取消其注释。
执行以下命令,安装 Arch Linux 所需要的基本包
pacstrap /mnt base base-devel linux linux-firmware dhcpcd 遇到需要选择的场合一路回车选择默认项即可。
生成(Generate)自动挂载分区的fstab 文件(即文件系统表 File System Table)
genfstab -L /mnt >> /mnt/etc/fstab 由于这步比较重要,所以我们需要输出生成的文件来检查是否正确,执行以下命令:
cat /mnt/etc/fstab 如果前面的挂载操作没有出错,应该输出且仅输出 两条记录:(以你的磁盘分区情况为准)
根分区/ 被挂载到了此前建立的数据分区/dev/nvme0n1p5
引导分区/boot 被挂载到了硬盘已有的 EFI 系统分区/dev/nvme0n1p1
如果fstab 文件有任何错误,请先删除该文件。
rm -rf /mnt/etc/fstab 检查前面的挂载操作有没有出错,umount 之后再重新挂载、生成。
这里的配置流程虽然有些繁琐,但不会像前面的操作一样容易出错。
Chroot 意为Change root ,相当于把操纵权交给我们新安装(或已经存在)的Linux 系统,执行了这步以后,我们的操作都相当于在磁盘上新装的系统中进行。
执行如下命令:
arch-chroot /mnt 顺带一提,如果以后系统出现了问题,只要插入任意一个安装有 Arch Linux 镜像的 U 盘并启动,将我们的系统根分区挂载到/mnt 下、EFI 系统分区挂载到/mnt/boot 下,再通过这条命令就可以进入我们的系统进行修复操作。
打开pacman 设置,启用pacman 的并行下载功能,加速下载,事半功倍。
vim /etc/pacman.conf 找到ParallelDownloads = 5 这一行并取消其注释,可以将5 调整为你想要的数值。
目前,系统根目录已经从 U 盘切换到了硬盘中,需要安装一些必需的软件包
pacman -S vim dialog wpa_supplicant ntfs-3g networkmanager netctl 遇到需要选择的场合一路回车选择默认项即可。
依次执行如下命令设置我们的时区为上海,并生成相关文件
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime hwclock --systohc 执行如下命令,设置我们使用的语言选项
vim /etc/locale.gen 在文件中找到en_US.UTF-8 UTF-8、zh_CN.UTF-8 UTF-8 、zh_HK.UTF-8 UTF-8 及zh_TW.UTF-8 UTF-8 这四行,去掉行首的 # 号,保存并退出。
执行如下命令,系统会生成我们需要的本地化文件
locale-gen 打开(不存在时会创建)/etc/locale.conf文件:
vim /etc/locale.conf 在文件的第一行加入以下内容
LANG=en_US.UTF-8 保存并退出
打开(不存在时会创建)/etc/hostname 文件:
vim /etc/hostname 在文件的第一行输入你自己设定的一个myhostname,这将会是你的计算机名,保存并退出。
打开(不存在时会创建)/etc/hosts 文件:
vim /etc/hosts 在文件末添加如下内容(将myhostname 替换成你自己设定的主机名),保存并退出。
127.0.0.1 localhost ::1 localhost 127.0.1.1 myhostname.localdomain myhostname root 账户是Linux 系统中的最高权限账户,需要设置密码保护起来,以免无意间实施了破坏性的敏感操作。
passwd 关于这一步操作的说明,可以查看教程
请自行替换username 为你想要使用的用户名
useradd -m -G wheel username passwd username 为了在普通用户下使用 root 操作,需要配置 sudo
pacman -S sudo vim /etc/sudoers 找到# %wheel ALL=(ALL)ALL,取消注释并保存退出。
或许有的人已经发现 Arch Wiki 和一些其他教程资料中的命令是以
#或$开头的,这两个符号就对应着命令行中的命令提示符,#代表以Root用户执行命令,$代表以普通用户执行命令,平时使用教程中的命令时应该注意这一点。
显然你应该根据你电脑的 CPU 型号选取一个包进行安装
pacman -S intel-ucode pacman -S amd-ucode 此处使用grub 进行系统引导,先安装必要的包
pacman -S os-prober ntfs-3g grub efibootmgr 部署grub
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub 生成配置文件
grub-mkconfig -o /boot/grub/grub.cfg 检查文件末尾的menuenrtry 是否有 Arch Linux 入口
vim /boot/grub/grub.cfg 若有任何报错请查阅 Arch Wiki、教程或自行搜索。
交换文件可以在物理内存不足的时候将部分内存暂存到交换文件中,避免系统由于内存不足而完全停止工作。之前通常采用单独一个分区的方式作为交换分区,现在更推荐采用交换文件的方式,更便于我们的管理。分配一块空间用于交换文件,执行:
dd if=/dev/zero of=/swapfile bs=1M count=8192 status=progress 将8192 换成需要的大小,单位 Mb,一般与计算机 RAM 大小一致即可。
更改权限,执行:
chmod 600 /swapfile 设置交换文件,执行:
mkswap /swapfile 启用交换文件,执行:
swapon /swapfile 最后我们需要编辑/etc/fstab 为交换文件设置一个入口,使用Vim 打开文件:
vim /etc/fstab 注意编辑fstab 文件的时候要格外注意不要修改之前的内容,直接在最后新起一行加入以下内容:
/swapfile none swap defaults 0 0 再次提醒,你应当开启
pacman的并行下载功能遇到需要选择的场合一路回车选择默认项即可
安装 Xorg 图形服务
sudo pacman -S xorg 安装 KDE Plasma
sudo pacman -S plasma kde-applications 安装桌面管理器 sddm
sudo pacman -S sddm 设置 sddm 开机启动
sudo systemctl enable sddm 启用适用于桌面环境的网络服务NetworkManager
sudo systemctl disable netctl sudo systemctl enable NetworkManager