最近想尝试一下arch这个知名的linux发行版,于是参考ArchWiki和各方安装教程总结出适合自己的安装方法。
安装前的准备
获取安装镜像
打开下载页面,并根据需要的引导方式,获取 ISO 文件或 netboot 映像
准备安装介质
Arch Linux 的ISO文件可以被制作成多种类型安装介质,如 U 盘、光盘和带有 PXE 的网络安装映像。请按照合适的文章与教程,使用ISO文件为自己准备安装介质。
下载archiso文件时请考虑使用镜像站,比如中国境内的镜像站。可以考虑使用 Ventoy 制作安装介质。
我这里选择使用U盘安装Ventoy引导启动
启动到live环境
插上U盘 ,在启动引导界面选择U盘启动,进入Ventoy界面选择Arch Linux镜像进入live环境
配置控制台键盘布局和字体
系统启动后,控制台键盘布局默认为 us(美式键盘)。默认就好
控制台字体位于 /usr/share/kbd/consolefonts/ 目录中,可以使用setfont命令更换,如:
1 | # setfont ter-v32n |
连接到互联网
设置完成后,首先需要的是连接到网络
有线网络会自动连接
下面介绍无线网络的连接方式
连接无线网络需要使用iwd提供的命令行工具
依次运行以下命令
1 | # iwctl |
命令解析:
iwctl:进入iwd工具
device list:列出设备
station wlan0 scan:使用wlan0扫描网络
station wlan0 get-networks:获取扫描到的可用网络
station wlan0 connect <WIFI名称>:连接至网络,有密码会弹出输入密码。
exit:退出
使用ping命令测试是否接通网络
1 | # ping ping.archlinux.org |
更新系统时间
连接网络后,系统会自动激活NTP将系统时间同步至UTC世界时间
可以使用timedatectl确认NTP是否处于激活状态
1 | # timedatectl |
如果没有自动激活,运行以下命令开启
1 | # timedatectl set-ntp true |
创建硬盘分区
接下来开始对硬盘进行分区
使用lsblk 工具,列出当前分区情况
1 | lsblk -pf |
命令详解:
-p:列出完整设备名称
-f:显示更多信息
找到自己想要安装的硬盘 后,使用分区工具修改分区表
我这里使用cfdisk
1 | # cfdisk /dev/要被分区的磁盘 |
如果需要选择分区模式选gpt即可
我这里使用两个分区
分别是EFI分区(ESP)和根分区
分区完成后退出cfdisk
注:这里没有使用swap分区是打算使用zram将内存的一部分作为交换空间
格式化分区
创建分区后,必须使用合适的文件系统对每个新创建的分区进行格式化
ESP使用FAT32
1 | # mkfs.fat -F 32 /dev/efi_system_partition(ESP) |
根分区使用btrfs
1 | # mkfs.btrfs /dev/root_partition(根分区) |
设置子卷
设置子卷可以帮我们划定快照的范围,防止在想要恢复系统数据时,系统数据和用户数据一同回档
1 | # mount -t btrfs /dev/root_partition(根分区) /mnt |
现在,需要装系统的根在live环境的/mnt目录下,我们需要将root子卷挂载到live环境的/mnt目录下
首先输入以下命令取消挂载
1 | # umount /mnt |
然后使用以下命令将root子卷挂载到/mnt
1 | # mount -t btrfs -o_subvol=/@,compress=zstd /dev/root_partition(根分区) /mnt |
把home子卷挂载到/mnt/home
1 | # mount --mkdir -t btrfs -o_subvol=/@home,compress=zstd /dev/root_partition(根分区) /mnt/home |
挂载ESP
1 | # mount --mkdir /dev/efi_system_partition(ESP) /mnt/efi |
到这里所有的前置准备完毕,可以正式开始安装系统了
安装系统
选择镜像站
使用reflector 工具设置镜像源
1 | # reflector -a 12 -c cn -f 10 --sort score --v --save /etc/pacman.d/mirrorlist |
然后更新数据库安装密钥
1 | # pacman -Sy archlinux-keyring |
安装必需的软件包
安装base以及内核等
1 | # pacstrap -K /mnt base base-devel linux-zen linux-firmware btrfs-progs |
安装其他工具
1 | # pacstrap /mnt networkmanager vim sudo intel-ucode |
amd的cpu使用amd-ucode
配置系统
生成 fstab 文件
生成 fstab 文件以使需要的文件系统(如启动目录 /boot)在启动时被自动挂载,用 -U 或 -L 选项分别设置 UUID 或卷标:
1 | # genfstab -U /mnt > /mnt/etc/fstab |
chroot 到新安装的系统
接下来的步骤需要像启动到新安装的系统一样直接与其环境、工具和配置进行交互,请 chroot 到新安装的系统:
1 | # arch-chroot /mnt |
设置时间和时区
1 | # ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime |
还可以使用timedatectl
1 | # timedatectl set-timezone Asia/Shanghai |
然后运行 hwclock 以生成 /etc/adjtime
这是系统用以调整时间误差的文件
1 | # hwclock --systohc |
区域和本地化设置
程序和库如果需要本地化文本,都依赖区域设置,后者明确规定了地域、货币、时区日期的格式、字符排列方式和其他本地化标准。
需要设置这两个文件:locale.gen 与 locale.conf。
编辑 /etc/locale.gen,然后取消掉 en_US.UTF-8 UTF-8 和其他需要的 UTF-8 区域设置前的注释(#)。
我们这里是en_US.UTF-8 UTF-8和zh_CN.UTF-8 UTF-8
接着执行 locale-gen 以生成 locale 信息
1 | # locale-gen |
然后创建 locale.conf文件,并编辑设定 LANG 变量
1 | # vim /etc/locale.conf |
在里面写入
1 | LANG=en_US.UTF-8 |
网络配置
为您的系统设置一个固定且易于辨识的名称(在联网环境中尤其有用),请创建 hostname 文件,在里面输入一个自己喜欢的主机名(其必须包含 1-63 个字符,仅使用小写的 a-z、0-9 以及 -,但不得以 - 开头。)
1 | # vim /etc/hostname |
设置 root 密码
使用以下命令为 root 用户设置一个安全的密码以便进行管理操作
1 | # passwd |
安装引导程序
需要安装 Linux 引导加载程序,才能在安装后启动系统,可以使用的的引导程序已在引导加载程序中列出,请选择一个安装并参阅其 wiki 页面以配置它,GRUB 是一个比较常见且通用的选择。
1 | # pacman -S grub efibootmgr |
使用GRUB安装命令安装引导
1 | # grub-install --target=x86_64-efi --efi-directory=/efi --boot-directory=/efi --bootloader-id=arch |
创建连接指向/efi/grub
1 | # ln -s /efi/grub /boot/grub |
生成grub配置文件
1 | # grub-mkconfig -o /boot/grub/grub.cfg |
配置双系统
安装软件包
你也可以不使用os-prober而是通过挂载Windows的EFI分区来找到Windows
1 | # pacman -S os-prober exfat-utils |
编辑grub配置文件
1 | # vim /etc/default/grub |
更改以下位置
1 | GRUB_DEFAULT=saved |
更改完设置后记得重新生成配置文件
1 | # grub-mkconfig -o /boot/grub/grub.cfg |
配置Zram
安装软件包
1 | # pacman -S zram-generator |
编辑配置文件
1 | # vim /etc/systemd/zram-generator.conf |
写入以下内容
1 | [zram0] |
然后编辑grub文件
1 | # vim /etc/default/grub |
更改以下内容
1 | GRUB_CMDLINE_LINUX_DEFAULT="loglevel=5 zswap.enabled=0" |
重新生成配置文件
1 | # grub-mkconfig -o /boot/grub/grub.cfg |
完成所有操作后,即可重启进入系统了
后续可能会更新安装配置KDE的教程