Arch Linux 的基本安装
2026年04月18日 星期六好久没写博客,最近AI浪潮,忙疯了,反而做事的效率上来了。于是开了一堆坑,比如继续写博客。
为什么是Arch?
我一直是Debian/Ubuntu的用户,以前还作为Desktop来用。这几年它们主要作为Server的OS,很好用,也不打算换。
而Arch,我主要是看中它的高度可折腾性。我希望借由Arch能够回到将Linux作为Desktop方面的生产主力的状态。
应该有好处。
这个安装笔记只是一个基本安装的记录,不仅没做到Desktop的程度,连用户都没设置。不着急,慢慢来。后面有进展我还会更新本篇。
学习资料
-
https://github.com/nakanomikuorg/arch-guide 我主要是照这套来安装的,这篇笔记甚至可以可以说照搬了这套资料。
-
https://github.com/ArchLinuxStudio/ArchLinuxTutorial 👆上面那套提及的资料,偏严肃一点。
机器环境
我使用了VirtualBox来作为安装机器,给了2核2G,64G硬盘。
后面我再找实体机器来安装,比如一台2012年的MBA。
好了,接下来把iso文件塞进vbox,开始安装~
确认UEFI模式
ls /sys/firmware/efi/efivars
确认网络
ping bilibili.com
设置时钟
timedetectl set-ntp true
timedatectl set-timezon Asia/Shanghai
timedatectl status
设置镜像
编辑镜像列表文件
vim /etc/pacman.d/mirrorlist
通过正则替换注释掉所有镜像
:v/^\(#\|\s*$\)/ s/^/#/
然后把中科大的镜像放在最前面
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
## Arch Linux ...
##
## ...
分区与格式化
分区
检查当前分区状况
lsblk
然后进行分区操作,一般SATA盘是sda、sdb之类,NVME盘是nvme0n1、nvme1n2之类,后面根据我的实际情况来
cfdisk /dev/sda
可以Delete原本的分区,然后在Free space上New新的分区,可以通过Type设置分区类型
- 第一个分区建256M,如果已经存在就别删除继续用,新建记得类型用EFI System
- 第二个分区用满几乎全部磁盘,留两倍内存容量给交换分区就行,类型就是默认的Linux filesystem
- 第三个分区给虚拟内存交换,用尽剩余的空间即可,类型选Linux swap
然后Write写入,要敲yes确认,然后Quit退出cfdisk,然后查看一下分区情况
lsblk
格式化
sda1是EFI分区,如果分区时就存在,那么不要删除也不要格式化,如果是之前新建的则要格式化
mkfs.fat -F32 /dev/sda1
格式化sda2,用Btrfs
mkfs.btrfs -L Arch /dev/sda2
格式化sda3
mkswap /dev/sda3
创建子卷,先挂载sda2到/mnt
mount -t btrfs -o compress=zstd /dev/sdxn /mnt
可以看一下挂载情况
df -h
创建两个子卷
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
然后看一下子卷情况
btrfs subvolume list -p /mnt
卸载/mnt
umount /mnt
挂载分区目录,要按顺序来
mount -t btrfs -o subvol=/@,compress=zstd /dev/sda2 /mnt
mkdir /mnt/home
mount -t btrfs -o subvol=/@home,compress=zstd /dev/sda2 /mnt/home
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
swapon /dev/sda3
完了可以用检查下
df -h
free -h
安装系统
安装基础包
pacstrap /mnt base base-devel linux linux-firmware btrfs-progs
处理虚拟控制台相关报错
如果上面的安装过程中有ERROR: file not found: '/etc/vconsole.conf'的错误,就需要自己创建一个/etc/vconsole.conf
echo 'KEYMAP=us' > /mnt/etc/vconsole.conf
然后重新生成initramfs 镜像,这样系统才知道我们加了这个文件
arch-chroot /mnt mkinitcpio -P
如果还提示内核模块不存在,就运行
arch-chroot /mnt pacman -Syu linux
重新按照内核,再次执行
arch-chroot /mnt mkinitcpio -P
安装必要功能软件
pacstrap /mnt networkmanager vim sudo zsh zsh-completions
生成fstab
genfstab -U /mnt > /mnt/etc/fstab
cat /mnt/etc/fstab
切换到新系统
arch-chroot /mnt
设置主机名和HOSTS
编辑主机名设置文件
vim /etc/hostname
我设置成 funcman-arch
注意主机名只能包含字母、数字、连字符(-)、点(.)和下划线(_)
设置hosts
vim /etc/hosts
我的设置
127.0.0.1 localhost.localdomain localhost
::1 localhost.localdomain localhost
127.0.1.1 funcman-arch.localdomain funcman-arch
加上的127.0.1.1虽然不是必须的,设置了可以避免一些问题
设置时区和地域
链接上时区文件即可
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
再把时间同步到硬件
hwclock --systohc
设置Locale
打开设置文件
vim /etc/locale.gen
找到en_US.UTF-8 UTF-8和zh_CN.UTF-8 UTF-8,将#注释去掉
然后执行
locale-gen
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
为 root 用户设置密码
passwd root
输入两遍相同的密码
安装微码
根据你用的CPU制造商安装对应的微码
pacman -S intel-ucode #Intel
pacman -S amd-ucode #AMD
虚拟机就不用装了
安装引导程序
pacman -S grub efibootmgr os-prober
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCHBOOT
编辑GRUB配置,定制一下
vim /etc/default/grub
找到GRUB_CMDLINE_LINUX_DEFAULT,做以下修改:
- 去掉
quiet - 把
loglevel从3改成5 - 加入
nowatchdog参数,这可以显著提高开关机速度
生成配置
grub-mkconfig -o /boot/grub/grub.cfg
结束安装
执行
exit #退回安装环境
umount -R /mnt #卸载新分区
reboot #重启
重启时记得移除安装介质。
暂时完事~