Arch Linux 安装指导文档(图文教程)
以前一只使用的是 manjaro 这个 Arch 的衍生版(gnome)桌面的,但是在使用一段时间后发现,桌面会有莫名其妙的卡顿感,尤其是在 CPU 使用率过高的时候,CLion 还是 CPU 使用大户,所以能够想象打几行卡一下的酸爽,也是趁着这个机会记录一下整个安装过程,毕竟中间还是遇到了一些问题的。
0. 首先阅读官方安装指导文档
不管怎样说、对 Arch 了解的最多的还是其开发人员、不管其它安装教程怎么写最权威的还是 Arch WIKI、所以建议你在看以下的步骤时先将官方安装指导文档浏览一遍,做到心中有数、能够帮助你知道自己究竟在做什么。链接如下:
1. 开始安装
现假设你已经了解了官方指导文档,对每个操作都有了大致的了解,那么下面开始介绍主要的安装步骤。
1.1 验证启动模式
如果以在 UEFI 主板上启用 UEFI 模式,Archiso 将会使用 systemd-boot "Systemd-boot (简体中文)") 来 启动 Arch Linux。可以列出 efivars 目录以验证启动模式:
# ls /sys/firmware/efi/efivars
如果目录不存在,系统可能以 BIOS 或 CSM 模式启动,详见您的主板手册。
可以看出我的系统是以 UEFI 模式引导的,之所以在这里验证启动模式,是因为我们后续分区操作的时候需要根据启动模式的不同使用不同的分区方案!
1.2 连接到因特网
- 确保系统已经启用了 网络接口,用 ip-link(8) 检查:
# ip link
- 连接到网络,连接网线或无线网络.
- 配置网络连接:
- 有线网络
- 动态 IP:
- 启动 dhcpd 从 dhcp 服务器中获取一 IP 地址
- 检查网络连接状态(ip a、ping 命令)
- 无线网络
- 键入
wifi-menu
命令打开 wifi 连接界面 - 选择需要连接的网络
- 键入密码确认连接
- 保存配置文件
- 检查网络连接状态(ip a、ping 命令)
- 键入
抱歉、因设备原因,此处只有有线网络动态 IP 的配置截图,如需静态 IP 上网可参考官方 wiki 相关介绍。
1.3 更新系统时间
使用 timedatectl(1) 确保系统时间是准确的:
# timedatectl set-ntp true
可以使用 timedatectl status
检查服务状态。
1.4 进行硬盘分区
磁盘若被系统识别到,就会被分配为一个 块设备,如 /dev/sda
或者 /dev/nvme0n1
。可以使用 lsblk 或者 fdisk 查看:
# fdisk -l
结果中以 rom
,loop
或者 airoot
结束的可以被忽略。
对于一个选定的设备,以下的分区是必须要有的:
分区示例
BIOS 和 MBR | |||
---|---|---|---|
挂载点 | 分区 | 分区类型 | 建议大小 |
/mnt |
/dev/sd*X*1 |
Linux | 剩余空间 |
[SWAP] | /dev/sd*X*2 |
Linux swap (交换空间) | 大于 512 MiB |
UEFI with GPT | |||
挂载点 | 分区 | 分区类型 | 建议大小 |
/mnt/boot or /mnt/efi |
/dev/sd*X*1 |
EFI 系统分区 "EFI system partition (简体中文)") | 260–512 MiB |
/mnt |
/dev/sd*X*2 |
Linux x86-64 根目录 (/) | 剩余空间 |
[SWAP] | /dev/sd*X*3 |
Linux swap (交换空间) | 大于 512 MiB |
因现在绝大部分 BIOS 都支持 UEFI 启动,所以下面演示一下怎么建立适用于 UEFI 启动的分区规划。
- 根据
fdisk -l
命令显示出的信息,选择自己所需要的硬盘,比如/dev/sda
。 - 使用
fdisk /dev/sda
打开相应硬盘的会话。 - 因为这是一块新虚拟的空白硬盘不存在分区表,所以我们需要先输入 g 新建一个 GPT 分区表
- 输入 n 新建一个分区,分区开头扇区默认直接回车就行。输入 +1G,创建一个 1G 大小的分区作为 EFI 分区使用。
- 再输入 n 新建
/
分区,我们使用这个硬盘剩下的所有空间,所以开始扇区与结束扇区都是默认值。 - 输入 p 显示我们创建的分区、确认大小。
- 确认无误之后输入
w
写入硬盘。
1.5 格式化分区
EFI 分区,要求的文件系统为 FAT32
,/
分区我们还是采用现在已经很成熟的 EXT4
.
- 格式化 EFI 分区
mkfs.fat -F32 /dev/sda1
- 格式化
/
分区
mkfs.ext4 /dev/sda2
- 交换分区,我喜欢用交换文件的方式启用。
如果您创建了交换分区(例如 /dev/sda3),使用 mkswap 将其初始化:
# mkswap /dev/sd*X*2
# swapon /dev/sd*X*2
1.6 挂载分区
root@archiso ~ # mount /dev/sda2 /mnt
root@archiso ~ # mkdir /mnt/efi
root@archiso ~ # mount /dev/sda1 /mnt/efi
1.7 为 livecd 更换连接性好的镜像源
众所周知,默认的国外的镜像源的连接性能让人急出心脏病,所以在安装必要软件之前,我们需要更换为连接性比较好的镜像源。因为读取镜像源时是自上向下读取的,所以将下面的粘贴到 /etc/pacman.d/mirrorlist
文件前几行。
vim /etc/pacman.d/mirrorlist
## China
Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch
Server = http://mirror.lzu.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.xjtu.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.zju.edu.cn/archlinux/$repo/os/$arch
最后效果如下。
1.8 安装必须的软件包
使用 pacstrap 脚本,安装 base 软件包和 Linux 内核以及常规硬件的固件:
# pacstrap /mnt base linux linux-firmware
2 配置系统
2.1 生成 Fstab
用以下命令生成 fstab 文件 (用 -U
或 -L
选项设置 UUID 或卷标):
# genfstab -U /mnt >> /mnt/etc/fstab
强烈建议 在执行完以上命令后,后检查一下生成的 /mnt/etc/fstab
文件是否正确。
2.2 Chroot 进新系统
在安装好基本软件后,我们需要 Chroot 进新系统,安装一些其它的必要软件。
Change root 到新安装的系统:
# arch-chroot /mnt
2.3 设置时区
# ln -sf /usr/share/zoneinfo/*Region*/*City* /etc/localtime
例如使用上海时区:
# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
运行 hwclock(8) 以生成 /etc/adjtime
:
# hwclock --systohc
这个命令假定硬件时间已经被设置为 UTC 时间。
2.4 本地化
本地化的程序与库若要本地化文本,都依赖 Locale,后者明确规定地域、货币、时区日期的格式、字符排列方式和其他本地化标准等等。在下面两个文件设置:locale.gen
与 locale.conf
。
/etc/locale.gen
是一个仅包含注释文档的文本文件。指定您需要的本地化类型,只需移除对应行前面的注释符号(#
)即可,建议选择带 UTF-8
的项:
# vim /etc/locale.gen
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_TW.UTF-8 UTF-8
接着执行 locale-gen
以生成 locale 讯息:
# locale-gen
/etc/locale.gen
会生成指定的本地化文件。
创建 locale.conf
并编辑 LANG
这一 变量,比如:
Tip: 将系统 locale 设置为 en_US.UTF-8
,系统的 Log 就会用英文显示,这样更容易问题的判断和处理。用户可以设置自己的 locale,详情参阅 Locale 或 Locale_(简体中文)#设置 locale。
/etc/locale.conf
-------
LANG=en_US.UTF-8
**警告: **不推荐在此设置任何中文 locale,会导致 TTY 乱码。
另外,如果你需要修改 #键盘布局,并想让这个设置持续生效,编辑 vconsole.conf(5),例如:
/etc/vconsole.conf
KEYMAP=*de-latin1*
2.5 安装 GRUB
- 安装 GRUB、efi,ntfs 支持和获取其它系统的支持
os-prober
。
pacman -S grub efibootmgr os-prober ntfs-3g
- 安装 grub 到 efi 分区中
grub-install --target=x86_64-efi --efi-directory=/efi/ --bootloader-id=GRUB
- 生成内存盘
mkinitcpio -P
- 生成 grub 主配置文件
grub-mkconfig -o /boot/grub/grub.cfg
2.6 安装桌面环境
这里推荐 KDE
,所以暂且放一 KDE 的安装步骤,如有需要后续会添加其它的 DE。
pacman -S xorg plasma kio-extras kde-applications
pacman -Ss sddm-breath-theme
systemctl enable sddm.service --force
2.7 启动网络服务
systemctl enable NetworkManager
2.8 添加用户
useradd -mG lp,network,power,sys,wheel username
passwd username
2.9 用户添加 sudo 权限
- 安装 sudo
sudo pacman -S sudo
- 编辑 sudo 配置文件
vim /etc/sudoers
##
## User privilege specification
##
root ALL=(ALL) ALL
username ALL=(ALL) ALL
3 重启检验系统状态
3.1 退出 Chroot 环境
exit
3.2 重启
reboot
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于