本文章会不定时更新到兼容最新版本的Archlinux。
Archlinux版本是2022.03
,此安装方法兼容目前最新版本:2023.06.01
,本次使用VMware虚拟机安装,物理机安装除了虚拟机配置
部分其他地方基本都一样。
过程会尽量做到简单操作,除了联网、创建硬盘分区、挂载分区外,其他步骤都可以直接复制代码执行。
虚拟机配置
VMware创建虚拟机的时候选择 其他 Linux 5.x 或更高版本内核
,其他地方默认就可以,配置尽量给高点。

等待加载完成就会进入安装界面。

验证引导模式
执行以下命令:
ls /sys/firmware/efi/efivars
如果提示:ls: cannot access '/sys/firmware/efi/efivars': No such file or directory
表示以BIOS方式引导,反之能看到显示了目录并且没有报错则是以UEFI模式引导。(引导模式不同安装方法略有区别,下面会说到。)

连接网络
使用虚拟机安装的可以跳过联网这一步
Arch需要联网安装,所以要先连接网络。
有线连接
如果有线网并且路由支持DHCP的话,系统会自动获取ip。使用以下命令查看ip:
ip addr
如果没有自动获取ip的话,执行dhcpcd
命令获取ip。
无线连接
1、使用iwctl
连接WiFi
我用iwctl获取不到无线网卡,这里不做说明

2、使用wpa_cli
连接WiFi
查看无线网卡名称(两个命令任意一个都可以):
iwconfig
ip link
我的网卡名称是wlan0

先建立一个最小的配置文件:
echo 'ctrl_interface=/run/wpa_supplicant'>/etc/wpa_supplicant.conf
启动 wpa_supplicant(wlan0
是无线网卡名称):
wpa_supplicant -B -Dwext -iwlan0 -c/etc/wpa_supplicant.conf

1、用 iwlist
扫描无线信号
iwlist wlan0 scan | grep ESSID
2、用 wpa_cli
扫描无线信号
执行:wpa_cli
进入交互界面
扫描无线信号:
scan
查看扫描结果:
scan_result

连接WiFi,我的热点是:NETGEAR_2.4G,假设密码是123456789
执行
add_network
上面命令会返回一个id,后面配置需要用到,我返回的是 0
set_network 0 ssid "NETGEAR_2.4G" set_network 0 psk "123456789" enable_network 0 quit

连接完成后执行:
ip addr
查看网络连接情况。
验证网络是否正常,执行:
ping www.baidu.com
如果能获取到ip说明网络连接正常。

安装系统
整个安装过程都需要敲命令完成,使用虚拟机安装或者有条件的建议通过ssh连接安装(方便复制命令)
先执行以下命令设置root密码passwd
设置好密码后就可以连接ssh了。
更新系统时间
timedatectl set-ntp true
以上命令不一定有内容输出。
查看服务状态:
timedatectl status

创建硬盘分区并格式化、挂载分区
这篇文章使用的是ext4文件系统
如果想要用btrfs文件系统并且使用子卷的话,可以参照下面的文章。
查看硬盘列表:
fdisk -l

结果中以 rom、loop、airoot结尾的设备可以忽略。
我虚拟机分配了 /dev/sda
跟 /dev/sdb
两块硬盘,系统安装在sda上面(以下命令都用sda,自己安装的时候根据实际情况修改)
建立分区
根据官方维基的示例,UEFI引导模式需要建立一个类型为 EFI 的分区,如果要启动的磁盘已有一个EFI系统分区就不需要再建立另一个EFI分区,使用现有的就行,前提得排除该分区不是启动u盘上的分区。
官方分区示例:
UEFI引导
挂载点 | 分区 | 分区类型 | 建议大小 |
---|---|---|---|
/mnt/boot | /dev/efi_system_partition | EFI 系统分区 | 至少 300 MiB |
[SWAP] | /dev/swap_partition | Linux swap (交换空间) | 大于 512 MiB |
/mnt | /dev/root_partition | Linux x86-64 根目录 (/) | 剩余空间 |
BIOS引导
挂载点 | 分区 | 分区类型 | 建议大小 |
---|---|---|---|
[SWAP] | /dev/swap_partition | Linux swap (交换空间) | 大于 512 MiB |
/mnt | /dev/root_partition | Linux x86-64 根目录 (/) | 剩余空间 |
执行以下命令进行分区
fdisk /dev/sda
输入 n
建立新分区,程序会让你选择分区类型、分区号、起始扇区,一般直接回车默认就好,最后设置分区空间大小,我建立了3个分区,一个swap
分区,一个60G的分区挂载到 /home
,剩下的空间建立一个分区挂载到 根目录/
。
建立完分区输入 p
查看建立的分区是否正确,如果不对可以重建建立。正确的话输入 w
保存。
下面是我的分区过程,仅供参考。

格式化分区
我的分区顺序是
/dev/sda1:交换空间分区(SWAP)
/dev/sda2:挂载到 /home
/dev/sda3:挂载到 /
mkswap /dev/sda1 mkfs.ext4 /dev/sda2 mkfs.ext4 /dev/sda3

如果使用UEFI引导模式,并且是新建立的efi系统分区,不是磁盘上原本已有的,还需要格式化efi分区
sdax替换成之前建立的efi分
mkfs.fat -F32 /dev/sdax

挂载分区
使用mount命令挂载,挂载分区一定要按照顺序先挂载根目录 /
再挂载其他目录。
mount /dev/sda3 /mnt mkdir /mnt/home mount /dev/sda2 /mnt/home

如果使用UEFI引导模式的话还需要挂载efi分区
sdax替换成之前建立或者原本已有的efi分区。
mkdir /mnt/boot mount /dev/sdax /mnt/boot
选择镜像源
Archlinux安装过程需要联网,默认的源可能偏慢,建议先修改成国内的源再安装。
可以从官网下载中国的镜像源列表
先备份当前镜像源列表,然后再使用curl
命令下载。
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak curl -o /etc/pacman.d/mirrorlist 'https://archlinux.org/mirrorlist/?country=CN&protocol=https'
注意URL里面的CN
要大写。
下载完成后执行以下命令查看下载是否完成:
cat /etc/pacman.d/mirrorlist
如果下载成功的话,执行以上命令就可以看到镜像列表已经变成China的了,不过都是被注释掉的,需要把前面的#删掉才可以

使用sed命令批量替换掉注释符:
sed -i 's/#Server/Server/g' /etc/pacman.d/mirrorlist
安装软件包
pacstrap /mnt base base-devel linux linux-firmware dhcpcd
下载安装软件包时间可能比较久,可以先喝杯茶休息下。



配置系统
fstab
使用genfstab
生成自动挂载分区的fstab文件
genfstab -L /mnt >> /mnt/etc/fstab
查看挂载是否正确
cat /mnt/etc/fstab

Chroot
Change root 到新安装的系统:
arch-chroot /mnt
设置时区
这里以设置为上海时区为例
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
生成/etc/adjtime
文件
hwclock --systohc
安装常用软件工具
pacman -S vim net-tools netctl dialog wpa_supplicant

设置语言
编辑/etc/locale.gen
文件
把 en_US.UTF-8 UTF-8
、zh_CN.UTF-8 UTF-8
这两行前面的#
删掉。
sed -i 's/#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen sed -i 's/#zh_CN.UTF-8 UTF-8/zh_CN.UTF-8 UTF-8/' /etc/locale.gen

生成locale信息:
locale-gen
创建 /etc/locale.conf
文件
echo 'LANG=en_US.UTF-8'>/etc/locale.conf
设置主机名&创建hosts文件
echo 'notevm-PC'>/etc/hostname echo ' 127.0.0.1 localhost ::1 localhost 127.0.0.1 notevm.localdomain notevm '>>/etc/hosts
设置 Root 密码
passwd

按提示输入密码即可(输入的密码是看不到的)
安装Intel(amd)-ucode
虚拟机安装的可以跳过这一步
Intel处理器
pacman -S intel-ucode
AMD处理器
pacman -S amd-ucode
安装引导程序
安装grub还有os-prober和ntfs-3g这两个包,它可以配合Grub检测已经存在的系统,自动设置启动选项。
pacman -S grub os-prober ntfs-3g
BIOS引导模式
grub-install --target=i386-pc /dev/sda
这里sda是硬盘,不是分区(sdax)
生成配置文件
grub-mkconfig -o /boot/grub/grub.cfg

UEFI引导模式
UEFI模式需要安装多个efibootmgr
pacman -S efibootmgr
安装完成后执行:
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
生成配置文件:
grub-mkconfig -o /boot/grub/grub.cfg

重启
到这里系统安装就已经完成了,接下来卸载挂载并重启系统
执行 exit
退出chroot环境。
建议先卸载分区挂载再重启
UEFI模式要卸载 /mnt/boot
umount /mnt/boot
umount /mnt/home umount /mnt reboot
重新启动后能看到此界面就是已经安装成功了


重启后如果没有网络连接的话查看这篇文章:Archlinux安装完系统重启后没有网络解决方法
PS:过程参考了网上资料还有官方维基的文档,如果有哪里写的不对或者可以优化的地方欢迎指出!
原创文章,作者:小哆啦,如若转载,请注明出处:https://www.notevm.com/a/5512.html