news 2026/9/4 18:02:27

2026 安装archlinux笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2026 安装archlinux笔记

每年必修课,安装archlinux走起。
以前也写过一些类似的文章,有一些不变的内容,我直接从原来的文章中复制了(包括截图)。

  • 《2021年vmware安装archlinux》
    https://blog.csdn.net/lxyoucan/article/details/115226297
  • 《2023安装archlinux笔记》
    https://blog.csdn.net/lxyoucan/article/details/128612331
  • 《2025安装与配置archlinux很详细》
    https://blog.csdn.net/lxyoucan/article/details/147566330

家里有一个老笔记本,一直放家里安装的windows 11。因为之前考虑给家人用,所以没有安装linux。
最近我用这台电脑比较频繁,与是我打算安装个windows 11 + archlinux双系统合适。

下载ISO

下载导航页面如下:
https://archlinux.org/download/
然后制作U盘启动盘。开机从U盘启动。

命令行连wifi

# 查看wifi列表 iwlist scanning | grep ESSID #生成密码配置文件 wpa_passphrase wifiname password > internet.conf #连接wifi wpa_supplicant -c internet.conf -i wlan0 & #自动生成ip dhcpcd &

完成这一部,如果成功了电脑就可以正常上网了。

启用SSH(可选)

通过ssh远程安装,可以直接复制粘贴一些命令,省的纯手打了。

查ip 执行 ip addr 我这里查到的ip 是 192.168.31.177
设置root密码

passwd root

客户端连接ssh 命令如下:

ssh root@192.168.31.177

简单的3步就可以粘贴命令了,复制粘贴要程序员的本能。
而且也方便我后续操作的截图。

禁用 reflector

2020 年新版 archliveiso 加入了 reflector 服务,它会自己更新
mirrorlist。在特定情况下,它会误删某些有用的源信息。这里联网后的第一件事就是将其禁用。也许它是一个好用的工具,但是很明显,它并不适合在安装的时候启用。

systemctl stop reflector.service

更新系统时钟

timedatectl set-ntptrue#将系统时间与网络时间进行同步timedatectl status#检查服务状态

更换国内镜像源加快下载速度

这一步很关键,我第一次安装,根据官方文档一步步安装,后来在安装步骤等待了1个多小时,还没成功,被迫放弃重新来一遍。
后来在https://archlinuxstudio.github.io/ArchLinuxTutorial/#/rookie/basic_install看到设置源的内容。

vim/etc/pacman.d/mirrorlist

Server=https://mirrors.ustc.edu.cn/archlinux/$repo/os/$archServer=https://mirrors.hit.edu.cn/archlinux/$repo/os/$arch

在上面放上国内的源。

分区

这一步一定要小心,分区之前一定要做数据备份。
我做这一卡是直接把我的硬盘先通过PE初始化了,一张完全空白的盘。
ArchLinux官方文档参考:UEFI with GPT

挂在点分区分区类型推荐尺寸
/mnt/boot or /mnt/efi/dev/efi_system_partitionEFI system partition至少260 MiB
[SWAP]/dev/swap_partitionLinux swap超过 512 MiB
/mnt/dev/root_partitionLinux x86-64 root (/)磁盘的剩余空间

因为我这里是要安装windows 11+ archlinux双系统的,所以有一点区别。

  • 我要保留windows 11方便家人使用
  • 可以使用PE 系统,腾出一个分区用来安装archlinux

安装前我的分区情况如下:

root@archiso ~# fdisk -lDisk /dev/nvme0n1:476.94GiB,512110190592bytes,1000215216sectors Disk model: WDC PC SN530 SDBPNPZ-512G-1002 Units: sectors of1*512=512bytes Sector size(logical/physical):512bytes /512bytes I/O size(minimum/optimal):512bytes /512bytes Disklabel type: gpt Disk identifier: EA0BAB66-8F8D-404E-BACC-43F0B129A207 Device Start End Sectors Size Type /dev/nvme0n1p12048616447614400300M EFI System /dev/nvme0n1p2616448878591262144128M Microsoft reserved /dev/nvme0n1p3878592420311039419432448200G Microsoft basic data /dev/nvme0n1p4420311040664670862244359823116.5G Microsoft basic data Disk /dev/sda:116.57GiB,125162225664bytes,244457472sectors Disk model: SanDisk3.2Gen1 Units: sectors of1*512=512bytes Sector size(logical/physical):512bytes /512bytes I/O size(minimum/optimal):512bytes /512bytes Disklabel type: gpt Disk identifier: 5DBA50E9-A80E-4820-9C82-09F3579C3ABD Device Start End Sectors Size Type /dev/sda12048244457407244455360116.6G Microsoft basic data Disk /dev/loop0:1012.57MiB,1061761024bytes,2073752sectors Units: sectors of1*512=512bytes Sector size(logical/physical):512bytes /512bytes I/O size(minimum/optimal):512bytes /512bytes

简单理解

目前电脑的主要硬盘 /dev/nvme0n1 可以理解成:

512GB SSD

[ EFI ][ Windows保留 ][ Windows约200GB ][ Windows约116GB ][ 空闲约160GB ]

末尾空闲的160GB,是我打算用来安装archlinux的。 而/dev/sda 是我的U盘启动盘,不用管。

开始分区了如果你磁盘里有数据请注意备份! 选择正确的磁盘,不要搞错了。

fdisk/dev/nvme0n1

创建分区

这里要说明一下,磁盘要使用GUID Partition Table (GPT)
分区表,因为我的磁盘本来就是这个格式的所以就不转换了,如果不是则要转换一下。

目标:
[ 1EFI ][ 2Windows保留 ][ 3Windows约200GB ][ 4Windows约116GB ][5 swap约10GB ][ 6ext4约150GB ]

使用n命令创建一个新分区。您输入分区类型,分区号,起始扇区和终止扇区。
出现提示时,请指定分区类型,然后键入p以创建主分区或e创建扩展分区。最多可以有四个主分区。

创建swap空间操作如下:

# n 创建swap空间Command(mforhelp): n# 直接回车默认Partition number(5-128, default5):# 直接回车默认First sector(664670863-1000215182, default664672256):# +10G设置为10GLast sector, +/-sectors or +/-size{K,M,G,T,P}(664672256-1000215182, default1000214527): +10G

创建/分区

# n 创建/分区Command(mforhelp): n# 直接回车默认Partition number(6-128, default6):# 直接回车默认First sector(685643776-1000215182, default685643776):# 剩余空间全部给/所以直接回车默认

这里说明一下,因为我的剩余空间非常小了,所以就不单独分/home分区了。直接用/就行了。

上面是我设置的分区大小,仅供参考,可以根据你的需要自行调整。

使用说明:
列出分区类型按下l以列出可用的分区类型。 查询完需要返回就按q
更改分区类型每个分区都与Type关联。按t更改分区的类型。默认值,Linux filesystem对于大多数使用来说应该没问题。
使分区可启动。您可以通过键入使分区可启动a

将更改写入磁盘将表写入磁盘,然后通过w命令退出。

将第5个10GB的分区的分区类型设置为Linux Swap

Command(mforhelp): t Partition number(1-6, default6):5Partitiontypeoralias(type L to list all): swap Changedtypeof partition'Linux filesystem'to'Linux swap'.

将更改写入磁盘 将表写入磁盘,然后通过w命令退出。

Command(mforhelp): w The partition table has been altered. Calling ioctl()to re-read partition table. Syncing disks.

以下是我的所有操作与返回值仅供参考:

root@archiso ~# fdisk /dev/nvme0n1Welcome tofdisk(util-linux2.42.2). Changes will remaininmemory only,untilyou decide towritethem. Be careful before using thewritecommand. Command(mforhelp): n Partition number(5-128, default5): First sector(664670863-1000215182, default664672256): Last sector, +/-sectors or +/-size{K,M,G,T,P}(664672256-1000215182, default1000214527): +10G Created a new partition5oftype'Linux filesystem'and of size10GiB. Command(mforhelp): n Partition number(6-128, default6): First sector(685643776-1000215182, default685643776): Last sector, +/-sectors or +/-size{K,M,G,T,P}(685643776-1000215182, default1000214527): Created a new partition6oftype'Linux filesystem'and of size150GiB. Command(mforhelp): t Partition number(1-6, default6):5Partitiontypeoralias(type L to list all): swap Changedtypeof partition'Linux filesystem'to'Linux swap'.Command(mforhelp): w The partition table has been altered. Calling ioctl()to re-read partition table. Syncing disks.

这时已经分区成功了,现在来fdisk -l查一下分区结构:
为了方便查看,我把信息转成表格:

DeviceStartEndSectorsSizeType
/dev/nvme0n1p12048616447614400300MEFI System
/dev/nvme0n1p2616448878591262144128MMicrosoft reserved
/dev/nvme0n1p3878592420311039419432448200GMicrosoft basic data
/dev/nvme0n1p4420311040664670862244359823116.5GMicrosoft basic data
/dev/nvme0n1p56646722566856437752097152010GLinux swap
/dev/nvme0n1p66856437761000214527314570752150GLinux filesystem

这里我们就分区成功了,这种命令行下分区,可能没有图形化界面直观。但是当你成功分区以后,就会发现这种方式也挺纯粹的。
在熟练的情况下,我觉得命令行的方式,可以比图形化界面的更高效。

格式化分区

创建分区后,必须使用适当的文件系统格式化每个新创建的分区。例如,要在创建一个Ext4文件系统。
用于/的分区格式化成ext4类型。

mkfs.ext4 /dev/nvme0n1p6

如果您创建了交换分区,请使用mkswap(8)对其进行初始化:

mkswap-f/dev/nvme0n1p5

挂载

# 挂载swapswapon/dev/nvme0n1p5mount/dev/nvme0n1p6 /mntmkdir/mnt/bootmkdir/mnt/boot/EFImount/dev/nvme0n1p1 /mnt/boot/EFI

分区总结:fdisk分区虽然没有图形化的直观,用过一次感觉很爽,甚至比图形化的更爽!

安装

  • 基础包
pacstrap /mnt base base-devel linux linux-firmware#base-devel在AUR包的安装是必须的

如果你这一步特别久,请检查一下是不是国内镜像源设置的有问题。我一开始没设置特别慢,等待了1个多小时,实在等不下去,又重新安装的。

  • 功能性软件
pacstrap /mnt dhcpcd iwdvimsudozsh#一个有线所需 一个无线所需 一个编辑器 一个提权工具 iwd也需要dhcpcd
  • wifi相关
    虚拟机种一般不用,物理机可能需要安装。
pacstrap /mnt dhcpcd wireless_tools wpa_supplicant

配置系统

Fstab

生成一个fstab文件(分别使用-U或-L定义UUID或标签):

genfstab-U/mnt>>/mnt/etc/fstab

检查生成的/mnt/etc/fstab文件,并在出现错误的情况下对其进行编辑。

Chroot

将root更改为新系统:

arch-chroot /mnt

设置时区

ln-sf/usr/share/zoneinfo/Asia/Shanghai /etc/localtime

将系统时间同步到硬件时间

hwclock--systohc

设置 Locale

vim/etc/locale.gen

,去掉 en_US.UTF-8 行以及 zh_CN.UTF-8 的注释符号(#)。
配置完成以后运行:

locale-gen

生成 locale。
向 /etc/locale.conf 输入内容

根据自己需要选择环境,二选一。我更喜欢中文的。
英文环境:

echo'LANG=en_US.UTF-8'>/etc/locale.conf

中文环境:

echo'LANG=zh_CN.UTF-8'>/etc/locale.conf

安装微码

pacman-Sintel-ucode#Intelpacman-Samd-ucode#AMD

我这里是第1个

安装引导程序

pacman-Sgrub efibootmgr#grub是启动引导器,efibootmgr被 grub 脚本用来将启动项写入 NVRAM。grub-install--target=x86_64-efi --efi-directory=/boot/EFI --bootloader-id=GRUB#取名为GRUB 并将grubx64.efi安装到之前的指定位置


最后生成 GRUB 所需的配置文件

grub-mkconfig-o/boot/grub/grub.cfg

完成安装

设置root的密码!!! 不能忘记这一步,否则重启无法登录啦。

passwdroot
exit# 退回安装环境#umount-R/mnt# 卸载新分区reboot# 重启

重启以后就可以正常启动了,安装完成。

网络开机自动连接

重启开机以后,还可以像安装时方式连接wifi

《archlinux wifi 开机自动连接》
https://blog.csdn.net/lxyoucan/article/details/124531129

创建用户

# 创建用户useradd-m-gusers-Gwheel-s/bin/bash itkey# 修改密码passwditkey

让刚创建的用户拥有sudo 权限。

EDITOR=vim visudo


把约82行的 %wheel ALL=(ALL) ALL 前面的#去掉

安装ssh

现在ssh是无法连接的,安装一下ssh服务。方便我远程安装系统。

pacman-Sopenssh# 查看状态systemctl status sshd.service# 启动服务systemctl start sshd#开机启动systemctlenablesshd.service

默认不支持root登录,如果需要root登录。

vim/etc/ssh/sshd_config

增加如下配置(如果已经有则在此基础上修改):

PermitRootLoginyes

安装图形界面相关的软件

Xfce桌面

Xfce桌面小巧且核心功能都有。适用性更广一些。本文之中我实际使用的是awesome的窗口管理器。
《archlinux配置Xfce+fcitx5中文输入法》
https://blog.csdn.net/lxyoucan/article/details/116897679

awesome平铺窗口管理器

#一个平铺窗口管理器pacman-Sawesome# 没有安装X服务的,桌面环境都依赖它,需要安装一下sudopacman-Sxorg-server--noconfirm# 安装中文字体,解决乱码的问题sudopacman-Sadobe-source-han-serif-cn-fonts wqy-zenhei--noconfirm# 安装xinitsudopacman-Sxorg-xinit--noconfirm#ly显示管理器sudopacman-Sly

开机自动启动
当然有喜欢图形界面的朋友,喜欢很次开机都自动进界面而不是图形界面,可以如下设置:

#开机启动显示管理器sudosystemctlenablely@tty2.service#立即开启lxdmsudosystemctl start ly@tty2.service

这样登录界面就可以出来了。

为什么用ly 做为显示管理器,主要因为它轻量。我以前主用的是gdm,但是它的依赖太多了,我的磁盘空间小,所以选的ly

刚才折腾了一下图形化界面。
从这里往下开始,我已经在新安装的操作系统中写这个blog了。

Fcitx5输入法

具体操作详见:
《archlinux fcitx5-rime五笔输入法》
https://blog.csdn.net/lxyoucan/article/details/127573760

yay软件

工作与生活中还是很难离开QQ和微信这两款软件的,那么想把archlinux作为主力系统的用户,应该如果安装QQ和微信呢?

开启 32 位支持库与 ArchLinuxCN 支持库

vim/etc/pacman.conf

去掉[multilib]一节中两行的注释,来开启 32 位库支持。
在文档结尾处加入下面的文字,来开启 ArchLinuxCN 源。

[archlinuxcn]Server=https://mirrors.ustc.edu.cn/archlinuxcn/$arch

修改后的文件末尾如下:

[multilib]Include=/etc/pacman.d/mirrorlist[archlinuxcn]SigLevel=Optional TrustAll Server=https://mirrors.ustc.edu.cn/archlinuxcn/$arch

最后:wq保存退出,刷新 pacman 数据库。

pacman-Syyu

安装yay

sudopacman-Syay

wechat

上来先安装wechat,没办法办公需要。查了一下wiki,好像有网方版本的了。我之前玩的时候好像是没有的。安装体验一下。

微信发布了官方的 Linux 新版本,支持小程序、朋友圈、VoIP 等。它由`wechat-bin`AUR 提供。

先安装一下试试。

yay-Swechat-bin

这里yay的安装详见:
《ArchLinux常用软件》
https://blog.csdn.net/lxyoucan/article/details/124559199

评价:

  1. 扫码登录需要输入身份证并进行人脸识别,还要同意什么协议。所以让我感觉有点不安,怀疑是不是真的官方版本。
  2. 用起来的感觉跟windows,macOS的官方版本差不多。
  3. 默认情况下fcitx5输入法无法打字,后续我在研究一下解决办法。

解决fcitx5输入法无法 使用的问题

解决办法参考:https://zhuanlan.zhihu.com/p/15007602945
命令行启动的方式:

envGTK_IM_MODULE=fcitxQT_IM_MODULE=fcitxQT_IM_MODULE=fcitxXMODIFIERS=@im=fcitx /opt/wechat/wechat

命令行打开,确实是可以的,就是有点麻烦。还是图标直接点开会比较好一些。

sudovim/usr/share/applications/wechat.desktop

把Exec=修改成

Exec=envGTK_IM_MODULE=fcitxQT_IM_MODULE=fcitxQT_IM_MODULE=fcitxXMODIFIERS=@im=fcitx /opt/wechat/wechat %U

edge浏览器

edge浏览器基本有chrome浏览器的大部分核心功能了,并且还自己增加了一些实用功能。主要是翻译功能在国内访问更稳定,chrome的翻译在国内的网络环境默认情况无法使用。

yay-Smicrosoft-edge-stable-bin

linux Windows双系统时间不一致的解决办法

一般有两种方法,要么修改windows的计算时间的方式,要么修改linux的。
我个人更喜欢windows这种直接显示本地时间的。因为这个时间根我在bios中看到的时间是一致的,省的计算了。

sudotimedatectl set-timezone Asia/Shanghaisudotimedatectl set-local-rtc1--adjust-system-clocksudotimedatectl set-ntptrue

验证设置

timedatectl

你会看到类似下面的信息:

RTCinlocalTZ:yes

表示 BIOS 时钟已被设为本地时间。

Emoji 表情

sudopacman-Snoto-fonts-emoji

安装完成后刷新字体缓存:

fc-cache-fv

启动菜单支持windows

如果你是想问:Arch Linux 安装好以后,如何让启动菜单里同时出现 Windows,如果你使用的是GRUB,可以这样做。

先安装os-prober

sudopacman-Sos-prober

编辑 GRUB 配置:

sudonvim /etc/default/grub

找到或添加:

GRUB_DISABLE_OS_PROBER=false

然后测试是否能发现 Windows:

sudoos-prober

正常应该看到类似:

/dev/nvme0n1p1:Windows Boot Manager:Windows:efi

最后重新生成 GRUB 配置:

sudogrub-mkconfig-o/boot/grub/grub.cfg

你应该会看到类似:

Found Windows Boot Manager on /dev/nvme0n1p1

重启:

reboot

之后 GRUB 菜单里就应该同时有:

Arch Linux Advanced options for Arch Linux Windows Boot Manager

修改主机名称

sudohostnamectl set-hostname 新名称

修改windows默认启动

sudovim/etc/default/grub

其中GRUB_DEFAULT=0修改成GRUB_DEFAULT=2
因为我的windows默认是第3个位置。
然后重新生成一下菜单

sudogrub-mkconfig-o/boot/grub/grub.cfg

音频管理

sudopacman-Spavucontrol
sudopacman-Ssof-firmwaresudopacman-Salsa-ucm-conf

以前我记得执行以下操作就可以了,2026-09-02不行了,问AI以后,给我的解决办法:

sudopacman-Spipewire pipewire-audio pipewire-pulse wireplumber systemctl--userrestart pipewire pipewire-pulse wireplumber

启用回收站

Thunar如何显示回收站?
Thunar 的“回收站”功能依赖 GVfs/GIO。如果 Arch Linux 是自己搭的 Awesome WM 这类精简环境,很常见的情况就是只装了 thunar,没有装 gvfs,于是侧边栏里看不到回收站。

sudopacman-Sgvfs

安装 nvm

nvm 是node版本管理器,几乎是我必装的软件之一。

# 安装最新lts版本nvminstall--lts# 使用最新的lts版本nvm use--lts

安装codex

不知不觉codex已经成为我的装机必备啦。

curl-fsSLhttps://chatgpt.com/codex/install.sh|sh
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 18:01:56

DeepSeek专家 LeetCode 49. 字母异位词分组 Java实现

以下是 LeetCode 49. 字母异位词分组 的 Java 实现,采用 哈希表 排序 的方法。思路 字母异位词排序后得到的字符串相同,因此可以将排序后的字符串作为哈希表的键,原始字符串作为值存入对应的列表。遍历所有字符串,最终哈希表中每…

作者头像 李华
网站建设 2026/9/4 18:01:32

【每日计划与反思】2026.9.2

一. 计划:1. L1课程完成(1*)原理解读2. 视频看完(1*)3. 整理上线东西4. jvm知识学习,二. 计划反思:1. 完成,原理解读70%2. 60%3. 完成4. 完成三. 感悟:1. 同一时间段要专…

作者头像 李华
网站建设 2026/9/4 18:00:50

【单片机毕业设计】基于 STM32/51 单片机的声光报警型植物智能养护系统设计 基于单片机与手机 APP 的农田土壤环境智能调控设备开发(020606)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

作者头像 李华
网站建设 2026/9/4 18:00:44

多相BUCK电源PCB设计:从单相复制到四相的布线要点

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/4 17:58:18

用 git bisect 二分定位 Bug:告别盲翻提交历史

如果说有一个命令让我在第一次用完之后,脑子里冒出来的第一句话是“这招也太好用了吧”,那一定是git bisect。这不是什么新插件,也不需要额外安装,Git 本身就自带,只是绝大多数人日常只把它当作提交代码的工具&#xf…

作者头像 李华