参考资料
0 系统安装前的准备
0.0 镜像下载
可以在ArchLinux官网进行下载
之后正常制作启动盘,最后安装之前希望设备有网络连接
0.1 网络设置
显示当前网络设备
ip link
使用的是有线网络连接比较简单,如果使用的是 WIFI
,则需要执行以下命令进行连接:
iwctl
[iwd] device list
[iwd] station <device> scan
[iwd] station <device> get_networks
[iwd] station <device> connect <network-name>
[iwd] exit
最后检查网络连接是否正常
ping archlinux.org
0.2 更新系统时间
正常情况下网络连接后,系统时间将自动同步。执行以下命令可以确保系统时间会自动通过网络从时间服务器同步
timedatectl set-ntp true
0.3 硬盘相关操作
查看当前硬盘设备
fdisk -l
结果中以 rom
、loop
或者 airootfs
结尾的设备可以被忽略。结果中以 rpbm
、boot0
或者 boot1
结尾的 mmcblk*
设备也可以被忽略。
查看到硬盘设备后,使用 cfdisk
工具进行硬盘的分区
cfdisk <disk-name>
🌟 选择分区表的类型:1. DOS:传统的MBR(主引导记录)分区表类型,支持最多4个主分区。2. GPT:GUID分区表,支持更大的硬盘容量和更多的分区,适用于UEFI启动。3. Sun:适用于Solaris操作系统的分区表类型。4. Mac:适用于Mac OS X的分区表类型。
这个工具比较直观,主要用到的有 New
,用于新建分区,Type
用户更改分区的文件类型,Write
用于写入新的分区表,Quit
在以上操作执行完成后退出。退出后可以重新执行 ffisk -l
查看分区是否成功。
分区完成之后可以格式化分区
# 格式化 Boot 分区(-n 起名字)
mkfs.fat -F 32 -n ARCHBOOT <efi_boot>
# SWAP 分区
mkswap <swap_partition>
# Root 分区(-L 起名字)
mkfs.ext4 -L ARCHROOT <root_partition>
# Home 分区
mkfs.ext4 -L ARCHHOME <home_partition>
最后挂载各个分区
# 挂载 / 分区
mount <root_partition> /mnt
# 挂载 /home 目录
mount --mkdir <home_partition> /mnt/home
# 挂载 EFI 分区
mount --mkdir <efi_boot> /mnt/boot
# 挂载交换分区
swapon <swap_partition>
1 安装ArchLinux
1.0 选择镜像站
正常情况下,系统在连接到互联网后,reflector
会通过选择20个最新同步的HTTPS镜像站并按下载速率对其进行排序来更新镜像列表。可以检查 /etc/pacman.d/mirrorlist
文件,看看镜像站是否合适
cat /etc/pacman.d/mirrorlist
我习惯性的配置清华源,在该文件顶部添加清华源
vim /etc/pacman.d/mirrorlist
# 添加清华源
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
# 更改好镜像源后更新软件包的缓存
pacman -Syyu
1.1 安装必须的软件包
base
:是一个软件包组,包含了Arch Linux系统的基本组件,例如Shell工具、核心库等。安装base
软件包组是建立一个基本的Arch Linux系统所必需的。linux
:是Linux内核软件包,是系统的核心组件之一。安装Linux内核软件包是确保系统正常运行的关键。linux-firmware
:是包含设备固件文件的软件包,用于支持硬件设备的正常运行。
pacstrap -K /mnt base linux linux-firmware networkmanager vim man-db man-pages texinfo
2 基本系统配置
2.0 生成fstab
fstab
文件可用于定义磁盘分区,各种其他块设备或远程文件系统应如何装入文件系统。(建议检查一下生成后的 fstab 文件)
genfstab -U /mnt >> /mnt/etc/fstab
2.1 chroot到新系统
📌注意命令使用的是 arch-chroot
arch-chroot /mnt
2.2 设置时区
# 设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 生成 /etc/adjtime
hwclock --systohc
2.3 区域和本地化设置
程序和库如果需要本地化文本,都依赖区域设置,后者明确规定了地域、货币、时区日期的格式、字符排列方式和其他本地化标准。需要设置这两个文件:locale.gen
与 locale.conf
。
🚩首先,编辑 /etc/locale.gen
,然后取消掉 en_US.UTF-8 UTF-8
前的注释符号
接着执行 locale-gen
以生成 locale 信息:
locale-gen
然后创建 locale.conf
文件,并编辑设定 LANG
变量
vim /etc/locale.conf
LANG=en_US.UTF-8
为什么不设置中文
❌ 并不推荐在此设置任何中文 locale,这可能会导致 tty 上中文显示为方块。如果您不经常使用 tty ,或是稍后需要安装桌面环境,则在不使用 tty 后可以设置为中文的 locale 。
2.4 root密码与主机名称
# 设置 root 密码
passwd
# 设置主机名称
vim /etc/hostname
<随便设置名称即可>
2.5 网络服务
开机自动启动网络管理服务,后续如果有需要,可以方便的进行配置
systemctl enable NetworkManager.service
2.6 CPU微码
微码是处理器内部的指令集,它们用于控制处理器的各种功能和行为。微码更新通常用于修复处理器的漏洞、提高性能、增强稳定性和兼容性。
# 选择自己对应的 CPU
pacman -S intel-ucode
pacman -S amd-ucode
2.7 安装引导程序
pacman -S grub efibootmgr
# 多系统的话还需要安装
pacman -S os-prober ntfs-3g
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
# 多系统需要
vim /etc/default/grub
# 去除 GRUB_DISABLE_OS_PROBER=false 的注释
grub-mkconfig -o /boot/grub/grub.cfg
2.8 重启计算机
# 退出 chroot 环境
exit
# 手动卸载被挂载的分区
umount -R /mnt
# 关机
shutdown now
之后拔出U盘以后再启动电脑,见到以下界面安装成功
3 Arch后续选配
3.0 网络设置
一切选配的前提,先确保网络是正确的,可以执行以下命令,方便的连接 wifi
nmtui
# 确认网络的可用性
ping archlinux.org
3.1 显卡驱动
暂略
3.2 新建普通用户
我们使新用户默认使用 zsh
,所以需要提前执行 pacman -S zsh
进行安装,然后再执行以下命令添加新用户
# 安装 sudo
pacman -S sudo
# 创建用户
useradd -m -G wheel -s /bin/zsh <new_user_name>
# 设置密码
passwd <new_user_name>
# 编辑 sudo 文件
EDITOR=vim visudo
# 去掉 %wheel ALL=(ALL:ALL)ALL 的注释
3.3 CN源与AUR
📌 建议重这里开始,先解决魔法,参考🪄Server·魔法,这样就不需要
CN源
了,直接安装yay
即可。
先配置CN源,执行命令 sudo vim /etc/pacman.conf
进行编辑,在文件末尾写入以下内容:
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
之后通过以下命令安装 archlinuxcn-keyring
包导入 GPG key
❌
sudo pacman -Sy archlinuxcn-keyring
📌 以上错误解决办法
2023 年 12 月后,在新系统下安装 archlinuxcn-keyring
时可能会出现错误:
error: archlinuxcn-keyring: Signature from "Jiachen YANG (Arch Linux Packager Signing Key) " is marginal trust
需要在本地信任 farseerfc 的 GPG key,然后再重新安装
pacman-key --lsign-key "[email protected]"
之后安装 yay
使用 AUR
pacman -S yay
3.4 openssh服务
sudo yay -S openssh
# 开启服务
sudo systemctl start sshd.service
sudo systemctl enable sshd.service
# 查看服务状态
systemctl status sshd.service
3.5 oh-my-zsh
3.6 Gnome桌面
参考👣Gnome桌面