本文是以记录为目的,可以作为一个参考,网上有很多很详细的教程,还有官方的 ArchWiki。
安装前准备#
关于双系统
双系统的安装分两种:
- 一种是将 win 和 linux 安装在同一张硬盘上,这时候,需要提前在 win 中分出一个空闲的区域,为 linux 留出空间
- 另外一种是将 win 和 linux 安装在两张独立的硬盘上,此时和单系统安装一样,但安装后的系统引导设置不同
下载 iso
去 archlinux 官网 或者一些开源镜像站 (tsinghua),下载最新 iso 文件
下载安装盘刻录软件
我使用的是 ventoy,开源。它和一般的刻录软件不同,一般软件是将安装引导系统刻录进整个 U 盘,这样系统安装完之后,U 盘就不能直接使用了,需要进行格式化;而使用 ventoy 安装系统后,U 盘还是能够正常使用,也不需要备份 U 盘内的文件;并且操作起来也很简单,只需要把 ios 文件直接拷贝至 u 盘即可,无需其他操作。
主板 BIOS 设置
开始安装之前,需要对 bios 进行简单的设置
- 关闭 Secure Boot,archwiki 指出
Arch Linux installation images do not support Secure Boot
- 设置安装盘(也就是 U 盘)优先启动
每台电脑进入 Bios 的方式都不一样,具体可以根据电脑型号,参考官方说明书
安装#
基本设置#
设置好 bios,插上 U 盘,就准备开始安装了。
当电脑屏幕跳出引导加载器菜单 (boot loader menu), 也就是一个可以选择的黑框框,选择第一个 Arch Linux install medium, 直接回车,就进入了 archlinux 安装环境
设置合适的字体和键盘布局 (optional)
安装环境下,这个 console 中的字体特别得小,看着很费劲,所以可以修改一下字体,选择一个更大的字体,系统所有可用字体都在/use/share/kbd/consolefonts/
目录下,可以用setfont
命令进行设置:
#以/usr/share/kbd/consolefonts/ 下的文件名(省略扩展名),作为命令参数
setfont LatGrkCyr-12x22 #这是一个比较大的字体
同时你也可以更改键盘布局,一般不需要更改,默认是 US 布局,所有支持的键盘布局都在/usr/share/kbd/keymaps/
下的每一个目录中,使用loadkeys
命令进行修改:
# 同样,下面的参数就是键盘布局的名字,不加扩展名
loadkeys keyboardlayout
确定电脑的启动模式 (optional)
电脑启动在加载硬件驱动方面的程序,主要有早期的 BIOS 和现在的 UEFI 两种,两种模式的启动方式不一样,按照 archwiki 介绍,可以通过以下命令确认电脑是 UEFI 模式:
cat /sys/firmware/efi/fw_platform_size
# 返回64 或者 32,分别代表64bit 和 32bit的UEFI,若文件不存在,则有可能是BIOS
连接网络
首先,检查网络设备是否打开:
# 该命令,列出无线网卡设备的名字(wlan0),以及其状态,如果其状态中<...,...,UP,...>有UP标志,标志网卡设备已经打开,否则为关闭
ip link
# 如果未打开,使用以下命令打开
ip link set wlan0 up # 这里网卡名为wlan0
# 如果以上命令出现了 Operation not possible due to RF-kill,则需要先将使用rfkill解锁网卡
# rfkill - tool for enabling and disabling wireless devices
rfkill # 列出无线设备及状态
rfkill unblock wlan # unblock网卡
接着使用 iwctl 来设置无线网络,这是一个使用命令交互形式的网络设置程序
# 查看帮助信息
help
# 查看当前网卡的连接状态
station wlan0 show
# 扫描网络
station wlan0 scan
# 查看可连接的网络
station wlan0 get-networks
# 连接网络,名字为“P40 pro”
station wlan0 connect "P40 pro"
此时可以检查网络是否连通:
ping baidu.com
如果无法 ping 通,极有可能是没有配置 dhcp,使用:
dhcpcd &
更新系统时钟
timedatectl set-ntp true # 将系统时间与网络时间进行同步
磁盘分区#
使用 fdisk 进行磁盘分区
命令:
-
m:查看帮助
-
p:打印当前分区表
-
g:创建一个新的空的分区表,清理原来的分区
在使用 w 命令之前,新创建的分区不会被写入,原来的分区也不会被覆盖 -
n:创建一个新的分区
主要有三个分区:
boot 分区 + 主分区 + swap 分区
我这里创建四个分区
第一个是系统引导分区,挂载在/boot
目录下
第二个是主分区,挂载在根目录/
下
第三个是用于存储用户文件数据分区,挂载在家目录/home
下
第四个是 swap 分区
格式化,创建文件系统
# /boot 分区应该为fat格式
mkfs.fat -F32 /dev/nvme0n1p1
# 根分区和家目录分区选择 ext4 文件系统
mkfs.ext4 /dev/nvme0n1p2
mkfs.ext4 /dev/nvme0n1p3
# swap分区
mkswap /dev/nvme0n1p4
挂载分区
# swap挂载
swapon /dev/nvme0n1p4
# 主分区
mount /dev/nvme0n1p2 /mnt
# boot分区
mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot
# home分区
mkdir /mnt/home
mount /dev/nvme0n1p3 /mnt/home
# or
# omit mkdir
# mount --mkdir /dev/nvme0n1p2 /mnt/home
挂载完成后,可以说系统的安装已经进行一大半了
正式安装#
选择国内的软件源
在安装前要禁用 reflector 服务,该服务会自动更新 pacman 的 mirrorlist,如果关闭晚了,也没关系,可以手动添加国内源
# /etc/pacman.d/mirrorlist
# 将其中China下的镜像源提到最前面即可
安装系统(Install essential packages)
安装 base 、linux 和 linux-firmware
pacstrap -K /mnt base linux linux-firmware
创建 fstab 文件
fstab 用来定义磁盘分区。它是 Linux 系统中重要的文件之一。使用 genfstab 自动根据当前挂载情况生成并写入 fstab 文件
genfstab -U /mnt >> /mnt/etc/fstab
安装后,新系统中的配置#
将当前安装环境切换到新系统环境下:
arch-chroot /mnt
设置时区,同步时间
# 在 /etc/localtime 下用 /usr 中合适的时区创建符号链接
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 同步时间
hwclock --systohc
本地化设置
编辑 /etc/locale.gen
并注释 en_US.UTF-8 UTF-8,然后使用
local-gen`
locale-gen
在/etc/locale.conf
中设置 LANG 变量
# /etc/locale.conf
LANG=en_US.UTF-8
主机名和 host 配置
新建 /etc/hostname 文件,向其中添加主机名
并在 /etc/hosts 文件中,添加配置
# /etc/hostname
glede
# /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.0.1 glede.localdomain glede
设置 root 密码
passwd
# SheN_2327
安装一些软件
# intel微码
# intel-ucode
# 引导程序
# grub efibootmgr os-prober
pacman -S grub efibootmgr intel-ucode os-prober
配置 boot loader (grub)
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH
# --efi-directory=/boot —— 将 grubx64.efi 安装到之前的指定位置(EFI 分区)
# --bootloader-id=ARCH —— 取名为 Arch
# 接下来使用 vim 编辑 /etc/default/grub 文件
# GRUB boot loader configuration
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=5 nowatchdog"
GRUB_CMDLINE_LINUX=""
GRUB_DISABLE_OS_PROBER=false
...
# 生产grub所需配置文件
grub-mkconfig -o /boot/grub/grub.cfg
安装自需软件
# 这里可以安装一些必需的软件
pacman -S iwd dhcpcd zsh vim
# 网络配置: iwd dhcpcd
# shell:zsh
# 编辑器:vim
重启
exit # 退回到安装引导系统中
reboot # 重启,在重启的过程中,将U盘拔出
重启后的配置#
重启后,系统可以说已经安装完成,但要达到可用的程度,还差很远,需要做很多工作,下载许多软件
最重要的莫过于安装桌面环境,可以选择个人喜欢的任何桌面环境 (Desktop Environment) 或者 窗口管理器 (Window Manager)
我选择使用的是 Hyprland,但由于我的电脑使用的是 Nvidia 显卡,安装 hyprland 环境的流程极其繁琐,本文不多作记录,可以参考 hyprland 官方 wiki
下面记录一些安装后,所需的基本配置
再次设置 vconsole
上文已经讲述过设置 vconsole 字体和 keymap,但那是在安装环境下,便于我们安装而设置的,现在进入新系统中,需要重新进行设置。
vconsole 的配置在/etc/vconsole.conf
文件中
# 在该文件中添加要修改的字体,以及键盘设置
KEYMAP=us
FONT=LatGrkCyr-12x22
设置双系统引导
如果是双系统,并且分别安装在两个盘中,那么现在开机时,你是无法进入 win 系统的,需要对 boot loader (grub) 进行设置
# 先挂在windows的系统引导分区
mount /dev/nvme1n1p1 /mnt
ls /mnt
# 使用os-prober 检测其他系统的引导
os-prober
# 重新配置grub文件
cp /boot/grub/grub.cfg /boot/grub/grub.cfg.bak
grub-mkconfig -o /boot/grub/grub.cfg
配置网络
启用 iwd
systemctl enable iwd.service
systemctl start iwd.service
# 这里网络的配置和上述一致,也有可能会遇到rfkill的问题,使用同样的方法即可
ip link
ip link set wlan0 up
rfkill
rfkill unblock wlan
# 然后就可以使用iwctl连接网络了
创建非 root 用户
useradd -m -G wheel -s /bin/bash username
passwd username # 设置密码
# 如果没用下载vi,可以直接将vim链接到vi
ln -s /usr/bin/vim /usr/bin/vi
# 使用visudo 编辑sudo file,提升wheel用户组权限
#注释以下行
%wheel ALL=(ALL:ALL) ALL
安装 man 和 sudo
pacman -S man-db sudo
添加 multilib && archlinuxcn 源
# 在pacman的配置文件中修改和添加
# /etc/pacman.conf
# 开启multilib
[multilib]
Include = /etc/pacman.d/mirrorlist
# 开启 archlinuxcn
[archlinuxcn]
Server = https://mirrors.nju.edu.cn/archlinuxcn/$arch
# 这里可以参考官网,添加离你最近的镜像源
pacman -S archlinuxcn-keyring archlinuxcn-mirrorlist-git
# 将上面archlinuxcn下的Server一行改为
Include = /etc/pacman.d/archlinuxcn-mirrorlist
关闭令人抓狂的 pc 扬声器,蜂鸣声
将 pcspkr 模块加入黑名单的方法可以阻止 udev 在启动时加载它
# /etc/modprobe.d/nobeep.conf
blacklist pcspkr