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冲突 则执行完上一步重启一下电脑即可。
重启电脑,即可看到欢迎界面,输入新用户的密码即可登录桌面,使用面板连接网络。