Linux:Arch Linux 安装小记(一)


  • GUIDE: UEFI+GPT
  • DE: KDE
  • Laptop: Lenovo XiaoXin Pro 13 AMD 2020

安装前

连接网络和刻录启动U盘就不提了。

BIOS 设置

关闭主板设置中的 Secure Boot

在类似名为 security 的选项卡中,找到一项名为 Secure Boot(名称可能略有差异)的选项,选择 Disable 将其禁用。

调整启动方式为 UEFI

在某些旧的主板里,需要调整启动模式为 UEFI,而非传统的 BIOS/CSM。在类似名为 boot 的选项卡中,找到类似名为 Boot Mode 的选项,确保将其调整为 UEFI only,而非 legacy/CSM。

调整硬盘启动顺序

在类似名为 boot 的选项卡中,找到类似名为 Boot Options(名称可能略有差异)的设置选项,将 USB 优盘的启动顺序调至首位。

准备安装

最后保存 BIOS 设置并退出,一般的按键是 F10。此时系统重启,不出意外你应该已经进入 archlinux 的安装界面。

安装系统

无图形化系统安装

确保是否为 UEFI 模式

在一系列的信息刷屏后,可以看到已经以 root 登陆安装系统了,此时可以执行的命令:

ls /sys/firmware/efi/efivars

若输出了一堆东西,即 efi 变量,则说明已在 UEFI 模式。否则请确认你的启动方式是否为 UEFI。

连接网络

对于有线连接来说,直接插入网线即可。

对于无线连接,则需进行如下操作进行网络连接。

无线连接使用 iwctl 命令进行,按照如下步骤进行网络连接:

iwctl                           		  # 执行iwctl命令,进入交互式命令行
device list                               # 列出设备名,比如无线网卡看到叫 wlan0
station wlan0 scan                        # 扫描网络
station wlan0 get-networks                # 列出网络 比如想连接YOUR-WIRELESS-NAME这个无线
station wlan0 connect YOUR-WIRELESS-NAME  # 进行连接 输入密码即可
exit                                      # 成功后exit退出

可以等待几秒等网络建立链接后再进行下面测试网络的操作。

ping www.gnu.org

如果你不能正常连接网络,首先确认系统已经启用网络接口[1]。

ip link               # 列出网络接口信息,如不能联网的设备叫wlan0
ip link set wlan0 up  # 比如无线网卡看到叫 wlan0

如果随后看到类似Operation not possible due to RF-kill的报错,继续尝试rfkill命令来解锁无线网卡。

rfkill unblock wifi

更新系统时钟

timedatectl set-ntp true  # 将系统时间与网络时间进行同步
timedatectl status        # 检查服务状态

分区

首先将磁盘转换为 gpt 类型,这里假设比如你想安装的磁盘名称为 sdx。如果你使用 NVME 的固态硬盘,你看到的磁盘名称可能为 nvme0n1。

lsblk                     # 显示分区情况 找到你想安装的磁盘名称
parted /dev/sdx           # 执行parted,进入交互式命令行,进行磁盘类型变更
(parted)mktable           # 输入mktable
New disk label type? gpt  # 输入gpt 将磁盘类型转换为gpt 如磁盘有数据会警告,输入yes即可
quit                      # 最后quit退出parted命令行交互

接下来使用 cfdisk 命令对磁盘分区。进入 cfdisk 后的操作很直观,用键盘即可操作分配各个分区的大小与格式。一般建议将 EFI 分区设置为磁盘的第一个分区,据说有些主板如果不将 EFI 设置为第一个分区,可能有不兼容的问题。其中 EFI 分区选择EFI System类型,其余分区选择相应类型。

cfdisk /dev/sdx  # 来执行分区操作,分配各个分区大小,类型
fdisk -l         # 分区结束后, 复查磁盘情况

格式化

建立好分区后,需要对分区用合适的文件系统进行格式化。这里用mkfs.ext4命令格式化文件系统分区,用mkfs.vfat命令格式化 EFI 分区,用mkswap命令格式化 swap 分区。如下命令中的 sdax 中,x 代表分区的序号。格式化命令要与上一步分区中生成的分区名字对应才可以。磁盘若事先有数据,会提示你: 'proceed any way?' 按 y 回车继续即可。

mkfs.ext4  /dev/sdax  # 格式化Linux文件系统分区
mkfs.vfat  /dev/sdax  # 格式化efi分区
mkswap     /dev/sdax  # 格式化swap分区

挂载

在挂载时,挂载是有顺序的,先挂载根分区,再挂载引导 EFI(boot)分区(到 /mnt/boot/mnt/efi),。 这里的 sdax 只是例子,具体根据你的实际情况来。

mount /dev/sdax  /mnt
mkdir /mnt/boot/efi  # 创建efi目录
mount /dev/sdax /mnt/efi
swapon /dev/sdax

稍后genfstab将自动检测挂载的文件系统和交换空间。

安装系统

必须的基础包

pacstrap /mnt base base-devel linux linux-headers linux-firmware  # base-devel在AUR包的安装是必须的

必须的功能性软件

pacstrap /mnt dhcpcd iwd vim bash-completion  # 一个有线所需(iwd也需要dhcpcd) 一个无线所需 一个编辑器 一个补全工具

生成 fstab 文件

fstab 用来定义磁盘分区

genfstab -U /mnt >> /mnt/etc/fstab

复查一下 /mnt/etc/fstab 确保没有错误

cat /mnt/etc/fstab

change root

把环境切换到新系统的/mnt 下

arch-chroot /mnt

时区设置

设置时区,在/etc/localtime 下用/usr 中合适的时区创建符号连接。如下设置上海时区。

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

随后进行硬件时间设置,将当前的正确 UTC 时间写入硬件时间。

hwclock --systohc

设置 Locale 进行本地化

Locale 决定了地域、货币、时区日期的格式、字符排列方式和其他本地化标准。

编辑 /etc/locale.gen,去掉 en_US.UTF-8 所在行以及 zh_CN.UTF-8 所在行的注释符号(#)。

然后使用如下命令生成 locale。

locale-gen

向 /etc/locale.conf 导入内容

echo 'LANG=en_US.UTF-8'  > /etc/locale.conf

设置主机名

首先在/etc/hostname设置主机名

vim /etc/hostname

加入你想为主机取的主机名,这里比如叫 myarch。

接下来在/etc/hosts设置与其匹配的条目。

vim /etc/hosts

加入如下内容

127.0.0.1   localhost
::1         localhost
127.0.1.1   myarch

为 root 用户设置密码

passwd root

安装微码

pacman -S intel-ucode  # Intel
pacman -S amd-ucode    # AMD

安装引导程序

注意--efi-directory=与前面挂载 EFI 分区创建的文件夹的关系。

pacman -S grub efibootmgr  # grub是启动引导器,efibootmgr被 grub 脚本用来将启动项写入 NVRAM。
grub-install --target=x86_64-efi --efi-directory=/boot/efi --removable

接下来编辑/etc/default/grub 文件,去掉GRUB_CMDLINE_LINUX_DEFAULT一行中最后的 quiet 参数,同时把 log level 的数值从 3 改成 5。这样是为了后续如果出现系统错误,方便排错。同时在同一行加入 nowatchdog 参数,这可以显著提高开关机速度。

vim /etc/default/grub

最后生成 GRUB 所需的配置文件

grub-mkconfig -o /boot/grub/grub.cfg

完成安装

exit             # 退回安装环境#
umount -R  /mnt  # 卸载新分区
reboot           # 重启

注意,重启前要先拔掉优盘,否则你重启后还是进安装程序而不是安装好的系统。重启后,开启 dhcp 服务,即可连接网络

systemctl start dhcpcd  # 立即启动dhcp
ping www.gnu.org        # 测试网络连接

若为无线链接,则还需要启动 iwd 才可以使用 iwctl 连接网络

systemctl start iwd  # 立即启动iwd
iwctl                # 和之前的方式一样,连接无线网络

到此为止,一个基础的,无 UI 界面的 Arch Linux 已经安装完成了。

安装图形界面

重启并放置过一段时间,那需要先按照上节末尾处的方式重新连接网络,然后更新系统。

pacman -Syyu  # 升级系统中全部包

非root用户

添加用户,比如新增加的用户叫 testuser

useradd -m -G wheel -s /bin/bash testuser  # wheel附加组可sudo,以root用户执行命令 -m 同时创建用户家目录

设置新用户 testuser 的密码

passwd testuser

编辑 sudoers 配置文件

EDITOR=vim visudo  # 需要以 root 用户运行 visudo 命令

找到下面这样的一行,把前面的注释符号 # 去掉,:wq 保存并退出即可。

#%wheel ALL=(ALL) ALL

安装 KDE Plasma 桌面环境

pacman -S plasma-meta konsole dolphin  # 安装plasma-meta元软件包以及终端和文件管理器

配置 greeter sddm

systemctl enable sddm

换源并开启 32 位支持库

以中科大源为例。

编辑 /etc/pacman.d/mirrorlist ,在文件的最顶端添加

Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch

/etc/pacman.conf 文件末尾添加两行:

[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch

去掉[multilib]一节中两行的注释,来开启 32 位库支持。

刷新 pacman 数据库,然后请安装 archlinuxcn-keyring 包以导入 GPG key。

pacman -Syyu
pacman -S archlinuxcn-keyring

网络设置

systemctl disable iwd                  # 确保iwd开机处于关闭状态,其无线连接会与NetworkManager冲突
systemctl stop iwd                     # 同上,立即关闭iwd
systemctl enable --now NetworkManager  # 确保先启动NetworkManager,并进行网络连接 若iwd已经与NetworkManager冲突 则执行完上一步重启一下电脑即可。

重启电脑,即可看到欢迎界面,输入新用户的密码即可登录桌面,使用面板连接网络。