通过安装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
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