安装Archlinux

通过安装Archlinux,可以进一步了解Linux的工作方式。正巧需要新装一台虚拟机,需要装Archlinux系统,并滚动更新,因此写一篇教程,详细介绍一下Archlinux的安装过程。

安装准备

要阅读关于安装的官方文档,请访问: https://wiki.archlinux.org/index.php/Installation_guide

下载镜像

首先当然需要下载安装镜像啦,官方镜像列表:
https://www.archlinux.org/download/

然后选择最近的镜像源即可,下载很快,基本上能跑满运营商带宽。我这里选择的是清华源: https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/

制作启动盘(可选)

如果需要在物理机上跑,则先需要将iso文件装载到U盘上。Linux下直接dd,Windows下可以使用 Etcher(https://www.balena.io/etcher/ )这种刻盘工具,如果是虚拟机,就不多说啦。

启动

iso启动,完成后将显示如下界面:

启动完成

安装环境配置

设置键盘布局(可选)

一般我们中文用户的键盘布局使用的是通用的美式键盘,因此一般不用更改。

确认启动方式

输入命令ls /sys/firmware/efi/efivars,如果有输出,则为UEFI启动环境,否则为BIOS启动环境,然后记住你的环境,后续步骤(磁盘分区和引导安装)时需要用到。

连接网络

Archlinux的安装一般建议连接网络,使用网络上的镜像源可以做到安装后开箱即用。不用担心连接速度,在后续的安装过程中将选择镜像源。

一般启动盘已经配置好了网络,可以通过ping来确定网络是否正常。

同步系统时间

使用一下代码来同步时间:

timedatectl set-ntp true

若时间设定不正确,可能影响到系统对证书有效性的判断,进而影响到软件包的获取和安装

磁盘分区

官方Wiki建议使用fdisk进行磁盘分区

合理地规划分区是一个非常重要的过程。在这里我的分区规划如下:

/dev/vda 共64GB,分区表类型GPT
| 分区 |  大小  | 类型 | 系统挂载点 |
| vda1 | 512MB | ESP  | /boot/efi |
| vda2 | 60GB  | EXT4 | /         |
| vda3 | 3.5GB | swap | -         |

其中ESP(EFI System Partition,EFI系统分区)是UEFI启动环境必需的分区,其用于存放EFI启动文件。这些文件通常不大,一般200MB足够了,但是若需要装双系统的话建议大些(700MB左右)

开始分区:

首先fdisk -l查看磁盘情况,确定磁盘在设备树的编号

输入fdisk /dev/sdX这样的命令进入分区工具

1、输入g,新建GPT分区表
2、输入n,新建分区

3、输入t,改分区类型,将分区1改为EFI,分区3改为SWAP

4、输入p,查看更改后的磁盘以检查
5、输入w,将更改写入磁盘

格式化分区

将分区1格式化为FAT32:

mkfs.vfat -F 32 /dev/sdX1

将分区2格式化为EXT4:

mkfs.ext4 /dev/sdX2

在分区3制作交换分区并启用:

mkswap /dev/sdX3
swapon /dev/sdX3

挂载系统根目录

根据自己的分区规划,进行挂载,一般挂载在/mnt,像/boot/efi这样的分区则需要先挂载根分区后再在分区内新建文件夹,再进行进一步挂载:

mount /dev/sdX2 /mnt
mkdir -p /mnt/boot/efi
mount /dev/sdX1 /mnt/boot/efi

安装和配置基本系统

更改镜像源

编辑/etc/pacman.d/mirrorlist,注释掉相应的镜像源以启用,如果嫌麻烦可以直接:

echo "Server = http://mirrors.tuna.tsinghua.edu.cn/archlinux/\$repo/os/\$arch" >  /etc/pacman.d/mirrorlist

下载并安装基本系统

pacstrap /mnt base linux linux-firmware
选择对的镜像源,安装还是非常快的

基本系统已经安装好了,接下来需要进行一些配置:

Fstab配置

/etc/fstab是文件系统的配置文件,主要列出了系统应该如何挂载文件系统

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

执行完后务必检查一下:

chroot进入系统

arch-chroot /mnt

chroot后,相当于换了一个系统环境,此时在终端敲的指令都直接对新系统生效。

设置时区

这里我们不用wiki的方法,我们使用:

tzselect

根据屏幕上的提示即可完成时区配置。

设置硬件时间(建议)

如果需要将主板的时间设置为UTC:(一般系统会默认配置为此项)

timedatectl set-local-rtc 1

并将系统(所在时区时间)与硬件时间(UTC时间)的差值写入配置:

hwclock --systohc

而如果是双系统,若需要兼容Windows,则需要将主板时间设置为本地时间:

timedatectl set-local-rtc 0

关于更多时间的配置问题,可以参考: https://wiki.archlinux.org/index.php/System_time#Time_standard

本地化设置

将文件/etc/locale.conf中的zh_CN.UTF-8 UTF-8取消注释,然后执行

locale-gen

然后官方文档中要求编辑/etc/locale.conf,这里我们也有替代方法,执行下面命令即可:

localectl set-locale LANG=zh_CN.UTF-8

网络主机名配置

1、更改hostname:编辑/etc/hostname,里面填入你的计算机名称
2、编辑hosts

Initramfs(可选)

如果需要在内核启动的同时加载一些服务(如启用nfs挂载无盘系统,启用LVM解密分区),则需要修改/etc/mkinitcpio.conf相关文件,然后重新建立ramfs文件:

mkinitcpio -P

如有这方面需求的,可以参考Archlinux Wiki: mkinitcpio, mkinitcpio.conf(5)LVM 等文档

创建Root密码(建议)

建议创建Root密码:

passwd

安装引导

这里只介绍GRUB在UEFI系统的安装方法,其他引导器可参考: https://wiki.archlinux.org/index.php/Arch_boot_process#Boot_loader
GRUB在BIOS系统的安装方法,可以参考: https://wiki.archlinux.org/index.php/GRUB#BIOS_systems
还可以阅读GRUB在Archlinux Wiki的文档: https://wiki.archlinux.org/index.php/GRUB

1、使用pacman安装grub和efibootmgr:

pacman -S grub efibootmgr

2、安装grub

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Archlinux

参数解释:
–target:计算机架构,64位UEFI系统就是x86_64-efi,32位是i386-efi
–efi-directory:我们的ESP分区挂载路径
–bootloader-id:用于区分启动文件的标识(ESP分区下启动文件夹的名称)

注释:ESP分区结构类似如下:

ESP
|--/EFI
   |--/Archlinux
      |--bootx64.efi
   |--/Ubuntu
      |--bootx64.efi
   |--/Microsoft
      |--boot.efi

设置一个正确的bootloader-id对多系统引导有帮助。如果需要多个Linux发行版公用一个GRUB执行引导,也可以将bootloader-id配置为GRUB

GRUB安装完成

3、配置GRUB

执行以下命令,GRUB将自动搜索磁盘上安装的操作系统(包括Windows),并自动配置

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

CPU微码配置(建议但谨慎)

这个还是不多说了,不过也只是安装个软件包,再修改一下GRUB配置文件,虚拟机的同学可以跳过,但是物理机的可以考虑配置一下(能修复处理器Meltdown和Spectre漏洞)
https://wiki.archlinux.org/index.php/Microcode#GRUB

自此基本系统就安装完成,如果是只需要命令行界面的Archlinux,那么安装就到此结束了,如果还需要安装桌面环境和其他软件包的,就继续哈

其他配置

添加用户

groupadd username
useradd username -g username -m -s /bin/bash
passwd username

sudo

pacman -S sudo
编辑 /etc/sudoers,添加用户

安装桌面

若选择xorg:安装xorg,并安装驱动:(参见 https://wiki.archlinux.org/index.php/Xorg#Installation

若选择Wayland:略,安装Wayland支持即可

安装KDE:
参见 https://wiki.archlinux.org/index.php/KDE

pacman -S plasma sddm

若安装GNOME:
参见 https://wiki.archlinux.org/index.php/GNOME#Installation

我的安装过程(KDE):

开启multilib;
pacman -S xorg //选择所有组
pacman -S mesa
pacman -S sddm
pacman -S plasma //选择所有组,后端选gstreamer
pacman -S plasma-wayland-session //启用了Wayland支持
pacman -S kde-application
systemctl enable sddm

启用Archlinuxcn源

参见 https://mirror.tuna.tsinghua.edu.cn/help/archlinuxcn/

安装并启用SSH服务

pacman -S openssh
systemctl enable sshd

安装完成

使用exit退出chroot环境

取消卸载文件系统:umount -R /mnt

重启电脑启动就是图形化界面啦:

后续优化

1、登录界面不是很好看,是因为sddm没有配置,导入配置文件:

sddm --example-config > /etc/sddm.conf

然后编辑sddm.conf,修改[Theme]下Current=breeze

2、语言还是英文,到“设置”里修改,并安装中文字体:

pacman -S noto-fonts-cjk noto-fonts-emoji noto-fonts-extra
localegen set-locale LANG=zh_CN.UTF-8

3、没有网络?因为NetworkManager服务未运行:

systemctl start NetworkManager
systemctl enable NetworkManager

如果是笔记本电脑,需要安装wpa_supplicant软件包以连接WiFi网络

4、蓝牙未运行?同样地,启用bluetooth服务即可

5、无法对电源事件做出反应/风扇无法调速?需要安装并启用acpi:

pacman -S acpi acpid
systemctl start acpid
systemctl enable acpid

6、无声音?安装pulseaudio,pulsesudio-alsa

7、tab补全? pacman -S  bash-completion

发表评论