1797 words
9 minutes
Arch_Linux_Install
2026-01-02

Archlinux Install#

作安装镜像#

WARNING

制作安装盘之前,提前做好备份!!!
制作安装盘会格式化整个盘!!!

  • 下载Archlinux镜像,从这里选择一个离你较近的镜像站点,下载一个.iso结尾的文件。
  • 刻录安装镜像
    • Windows环境下可以使用VentoyRufs进行记录。
    • Linux环境下同样可以使用上面的两个软件,或者直接用dd命令进行刻录.
Terminal window
sudo dd if=Archlinux镜像位置 + 它的名字 of=你的安装盘 status=progress oflag=sync bs=4M

启动安装镜像#

  • 插入你的安装盘,选择从它启动安装镜像
  • 选择从UEFI模式启动
  • 确保关闭了安全启动(Secure Boot)。Arch Linux 安装镜像不支持安全启动。
  • 进入终端后,验证启动模式量否为UEFI模式:
Terminal window
cat /sys/firmware/efi/fw_platform_size
  • 如果返回64,以64位 x64 UEFI启动。
  • 如果返回32,以32位 IA32 UEFI启动。
  • 如果返回No such file or directory,这可能是BIOS或者CSM启动模式,需要更改主板设置。

连接网络#

NOTE

安装Archlinux,需要连接网络。

确保网卡已一正常列出和启用。

Terminal window
ip link #显示当前的网卡及状态

无线网络设置#

NOTE

使用无线网络前,先把要连接的无线网络名称设置为英文。

使用iwctl进行连接

Terminal window
iwctl # 进入交互式命令行
device list # 列出无线网卡设备名,一般是wlan0
station wlan0 connet wifi-name # 按`Enter`确认输入密码
exit #退出

使用有线网络#

一般来说,正确的插入网线就可以连接上网络,可以使用ip address show命令查看

测试网络#

Terminal window
ping qq.com -c 4 # 回车后,看到有数据返回,说明网络连接正常。若没有数据返回,检查前面是哪个步骤没有正确操作。

更新系统时钟#

Terminal window
timedatectl set-ntp true # 将系统时间和网络时间同步
timedatectl status # 检查服务状态

更新软件仓库镜像源#

  • 使用文本编辑器修改/etc/pacman.d/mirrorlist文件换成国内的软件仓库镜像源。
  • 使用reflector修改。
Terminal window
reflector --latest 10 --country China --age 12 --protocol https --sort rate --save /etc/pacman.d/mirrorlist

同步软件源#

Terminal window
pacman -Syu # 同步非本地软件仓库并升级系统的软件包。
TIP

网络连接成功后,可以用另一台设备ssh远程连接要安装Archlinux的电脑。确保是同一局域网内的设备。

Terminal window
pacman -S openssh # 安装openssh
systemctl start sshd # 启动ssh服务
passwd # 设置root用户密码
ssh root@ip address # 在另一台设备上连接,Enter后输入root密码。

分区和格式化#

WARNING

分区操作的部分命令具有危险性!!!
在执行命令之前,做好数据备份!!!

分区#

  1. 使用lsblk命令查看当前磁盘分区的情况。选择你要安装Archlinux的硬盘。
TIP

硬盘是IDE类型,显示为hdax
硬盘是stat类型,显示为sdax
硬盘是nvme类型,显示为nvmexnxpx
根据实际情况来选择

  1. 使用fdisk命令对磁盘进行分区:
Terminal window
fdisk /dev/nvme0n1 # 对安装Archlinux的磁盘分区

fdisk1.png

进入fdisk工具后,会看到如上图所示的界面。可以通过m获取帮助。

  1. 创建分区
  • 输入g创建一个新的GPT分区表 fdisk-g.png
  • 创建EFI分区。
    输入n按下Enter。选择分区数字1Enter。选择起始块,默认即可按Enter。输入分区大小+1g,按Enter
    更改EFI分区类型
    输入tEnter,输入uefiEnter
    fdisk-nu.png
  • 创建Swap分区。
    输入nEnter。选择分区,默认即可,按Enter。选择起始块,默认即可,按Enter。输入分区大小+2g(按实际情况) 1
    更改Swap分区类型。
    输入t,按Enter。输入2,按Enter。输入swap,按Enter
    fdisk-ns.png
  • 创建根分区
    输入n,按Enter。选择分区数字,默认即可按Enter。选择起始块,默认即可按Enter。输入分区大小,可以直接选择剩余所有的空间,按Enter
    分区类型不用更改。
  • 输入p查看分区,是否设置正确,检查无误后输入w,保存并退出。 fdisk-p.png
    fdisk-w.png
WARNING

💥💥!!!再次提醒!!!💥💥
仔细检查命令和操作的正确性!否则将出现不可预料的情况!

格式化分区#

  1. 输入lsblk查看分区情况 lsblk1.png
  2. 格式化EFI分区
Terminal window
mkfs.fat -F 32 /dev/nvme0n1p1 # 根据自己的设备输入对应的设备名
  1. 格式化Swap分区
Terminal window
mkswap /dev/nvme0n1p2
  1. 格式化 Btrfs 分区
Terminal window
mkfs.btrfs -L myarch /dev/nvme0n1p3 # -L 指定一个Lable
  1. 格式化Btrfs子卷
  • Btrfs分区挂载到/mnt下:
Terminal window
mount -t btrfs -o compress=zstd /dev/nvme0n1p3 /mnt
  • 创建Btrfs子卷
Terminal window
btrfs subvolume create /mnt/@ # 创建 / 目录子卷
btrfs subvolume create /mnt/@home # 创建 /home 目录子卷
  • 查看子卷情况
Terminal window
btrfs subvolume list -p /mnt

挂载#

  1. 挂载时,从根目录开始挂载。
Terminal window
mount -t btrfs -o subvol=/@,compress=zstd /dev/nvme0n1p3 /mnt # 挂载/目录
mkdir -p /mnt/{home,boot} # 创建/home目录和/boot目录
mount -t btrfs -o subvol=/@home,compress=zstd /dev/nvme0n1p3 /mnt/home # 挂载/home目录
mount /dev/nvme0n1p1 /mnt/boot # 挂载/boot目录
swapon /dev/nvme0n1p2 # 开启swap分区
  1. 使用lsblkdf -h查看挂载情况
    gzcg1.png

配置系统#

  1. 通过pacstrap安装:
Terminal window
pacstrap -K /mnt base base-devel linux linux-firmware btrfs-progs bash-completion vim # 可以把vim替换成你喜欢的文本编辑器

经过一系列的刷屏后…
cgaz1.png
2. 生成fstab文件

Terminal window
genfstab -U /mnt > /mnt/etc/fstab
  1. Chroot
Terminal window
arch-chroot /mnt
  1. /etc/hostname下设置主机名:
Terminal window
echo "myarch1" > /etc/hostname
  1. 编辑/etc/hosts文件
Terminal window
vim /etc/hosts

添加以下内容:

127.0.0.1 localhost
::1 localhost
127.0.1.1 myarch1.localdomain myarch1
  1. 设置Locale
  • 编辑/etc/locale.gen文件,去掉en_US>UTF-8,zh_CN.UTF-8前面的注释符号。
Terminal window
vim /etc/locale.gen
  • 使用locale-gen生成locale。
Terminal window
locale-gen
  • /etc/locale.conf写入。
Terminal window
echo 'LANG_=en_US.UTF-8' > /etc/locale.conf
  1. 设置时区
Terminal window
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  1. 设置硬件时间
Terminal window
hwclock --systohc
  1. 设置root用户密码
Terminal window
passwd # Enter后,输入密码

设置引导#

使用grub#

  1. 安装相应的包
Terminal window
pacman -S grub efibootmgr
  1. 安装grub到EFI分区
Terminal window
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Arch
  1. 生成grub的配置文件
Terminal window
grub-mkconfig -o /boot/grub/grub.cfg

使用Systemd-boot#

📝

要使用systemd-boot,首先要确保启动方式是UEFI模式!

  1. 安装UEFI启动管理器
Terminal window
bootctl install # 将systemd-boot安装到ESP
提示

esp指你的启动分区,/boot/efi或者/efi
取决于自己的设置

  1. 配置systemd-boot
  • 编辑/esp/loader/loader.conf文件:
default arch.conf # 默认启动项
timeout 3
console-mode auto
editor no
  • 创建启动项
vim /esp/loader/entries/arch.conf

title Arch Linux # 启动时的名称
linux /vmlinuz-linux #
initrd /initramfs-linux.img #
initrd /intel-ucode.img # 或者amd-ucode.img # 有装微码包可以写上
options root=UUID=<根分区的UUID> rw rootflags=subvol=@ #用Btrfs需要指定@子卷
#UUID可以用blkid查看 blkid /dev/nvme0n1p3

  1. 更新
Terminal window
bootctl --noo-variables --graceful update

或者:

Terminal window
systemctl enable systemd-boot-update.service

使用 rEFInd#

  1. 安装refind包
Terminal window
pacman -S refind
  1. 安装到esp分区
Terminal window
refind-install
  1. 配置rEFInd
  • 修改refind_linux.conf文件
📝

将root=UUID=<根分区的UUID> # btrfs需要加上 rootflags=subvol=@ refind2.png

  • 修改refind.conf(可选)
Terminal window
vim /esp/EFI/refind/refind.conf #路径可能所有不同
#找到 `memuentry "Arch Linux" 这一项,修改options参数
将root=UUID=<根分区的UUID> # btrfs加上 rootflags=subvol=@

refind1

网络设置#

使用NetworkManager#

Terminal window
pacman -S networkmanager # 下载networkmanager
systemctl enable NetworkManager #启动networkmanager

使用systemd-networkd + iwd#

Terminal window
pacman -S iwd
systemctl enable iwd
systemctl enable systemd-networkd

Reboot#

  1. 回到 live 环境
Terminal window
exit # 退出安装环境
umount -R /mnt #卸载分区
reboot # 重启

Footnotes#

  1. 内存容量大分区设置为与内存容量相等或一半。
    内存容量小分区设置为与内存容量的2倍。

Arch_Linux_Install
https://infini.cv/posts/arch_linux_install/
Author
infini
Published at
2026-01-02
License
CC BY-SA 4.0

Some information may be outdated