Featured image of post 安装 Arch Linux,但是笔记本物理机

安装 Arch Linux,但是笔记本物理机

放假了,折腾下自己的笔记本咯~

之前在虚拟机上面装的 Arch Linux 根本不过瘾(搞笑,你根本就没更完(❌)),这次就把自己的小轻薄改成 Arch 好了。顺带,也记录一下实体机上安装可能会遇到的坑?

头图出自 R Sound Design 的新曲 《アリス?》,一首很轻快的 V曲~

很可惜 网易云/QQ音乐 都暂时没有这首歌,所以只能劳驾移步B站欣赏了。一旦有更新就会贴在这里的

B站投稿

引子:我好急,怎么耗电这么大

亲爱的笔记本:

插电如面,自从我们相逢已有一年有余。上次见面,仿佛还是上次。传统派的我那时我刚刚给你刷上 Windows 10 系统,因为 Windows 11 的审美实在是在狠狠强碱我的眼睛。我们一路克服了艰难险阻,安装了各种乱七八糟的驱动,最后终于是让你成功跑了起来。虽然你的内存不大,硬盘不多,CPU 一般,显卡集成,但你要相信我,我心里面是有你的。

然而,你身上的 Windows 10 虽然让我倍感熟悉,你的耗电量实在是高得吓人。我接受不了一旦不插电就几乎是和时间赛跑的工作流。我将这一切归咎于可恶的微软,可恶的 Windows 10。这不是你的错,但是我还是想告诉你:你马上就会搭载一个新的系统。她轻便灵巧的同时,又大胆火辣,相信你一定会和她打成一片的。

Love,

A Moment

美丽的五一假期,不折腾点狠活儿实在是说不过去。看着越来越不顺眼的 Windows 10 笔记本,以及我的心逐渐被 Linux(特指 Arch Linux)所俘获,我决定:干掉 Windows 10, 彻底迎接 Arch Linux。想必有了之前安装 Arch Linux 的经验,这次的安装之旅肯定是一马平川了。开始吧。

准备:资料备份以及准备启动盘

首先肯定是先把电脑上已有的资料都备份好。其实说实话没太多文件,主要是两个没打完的 Gal 吧(心虚),因为大部分的文件都其实已经搞到台式机上面了。一开始是想着把这些文件放在一块精心规划的小硬盘上,安装的时候不格式化就行了,但是感觉还是有点点点点危险,所以干脆还是挪到另一台机器上,把这台小本的硬盘全部格式化了得了。不过也许我应该考虑更加智能的备份方案?算了,以后再考虑(挖坑)。

其次就是准备启动盘。本来这次想要换一种安装媒介来着,比如光盘?(没错我有光盘刻录机,为了听 CD 买的 ()),结果还是嫌麻烦,放弃了。给虚拟机安装的时候不是已经有了镜像了吗?为什么不直接用呢?至于为什么没有下载最新的(最新的就是昨天刚出的,5月1日版本),是因为我刚准备下载的时候看到最上面一行小字:

安装好再更新不挺好?(滚挂警告)

So, why not?

镜像依旧是用 rufus 烧录到陪伴了我6+年的小U盘上,什么格式化之类的 rufus 会自动帮我搞好的。中间有个小插曲好像是 rufus 不太支持最新的 syslinux 版本,需要额外下载两个小库。无所谓()我选择相信。

到这里,基本上就已经准备好安装工作了。相信根据这些东西,来个老手估计三下五除二就安装好整个系统了。当然,我是新手,还是一步步来吧。这大概也是这篇(以及上一篇)文章的目的:记录自己安装系统时蠢蠢的样子。

开始:启动安装引导咯~

先进安装引导再说吧

激动的心,颤抖的手,插入U盘后从U盘启动会不会有?

太坏了,secure boot 没关,没有。上网搜索我的笔记本的 BIOS 设置方法,Redmi Book 14 需要开机后按下 F2 进入 BIOS,然后在启动设置里 先设置管理员密码 之后才能设置是否关闭安全启动。有一点点脱裤子放屁的感觉……算了。总之就是进来了,进到安装引导了。这下真是激动的心,颤抖的手了。

(由于屏幕反光,就不拍屏了,其实和上次的屏幕一模一样咯)

这次就得格外小心了:这可不是虚拟机。虽然说搞砸了也能重来(电脑上没什么别的重要文件了,打算全部格式化),但是一想到是实体机,还是有一些些的紧张。

其实这篇文章是在我进来安装引导之后才开始动笔写的。一开始没打算写来着,不过鉴于好久没有更新博客了,还是水一篇吧()

还是先进行前期验证和网络配置

这次由于有上次安装的记录,所以其实可以直接参考以前写的那个东西。感谢代码高亮,我立马就敲下了 localectl list-keymaps。然而:没什么卵用。Bro,你就用的是美式键盘呀!?还列出来看个der呀……算了,不管了。不过验证启动模式也许还是有必要的?依旧,cat /sys/firmware/efi/fw_platform_size,结果是64。这个应该是说我的启动模式的系统是64位的吧?

随后是验证网络。这步我其实是有点心虚来着,会不会这个安装引导不支持我的电脑网卡?害怕。但还是先试一试吧。

从结果来看,我有一个 lovirtual loopback interface,不管;一个 wlan0,看来是认出我的无线网卡了,好耶。然而它的 stateDOWN,emmm……

(找找办法……)

太愚蠢了,DOWN不就是说我没连上网嘛…… 不过根据 ArchWiki,还是先用 rfkill 命令检查我的无线网卡是不是被 block 了(屏蔽?也许?),好消息是没有;接着就使用 iwctl 工具进行联网。这个步骤我感觉有一点点繁琐,先要在交互界面使用 device list 列出设备,很幸运我这里是直接 wlan0 powered on 状态,这里的 wlan0 就是我的设备名了;接着就用 station wlan0 scan 扫描可用网络,然后用 station wlan0 get-networks 列出可用网络。这里有个很神奇的点:能连上我的校园网吗?用 station wlan0 connect CSU-WIFI 试试。这里 CSU-WIFI 就是我们的校园网了。好消息是成功了,不知道怎么做到的。本身链接我们学校校园网是需要使用一个网页进行验证的,不过也许是因为我在 Windows 系统上刚刚连过一次网络,所以成功重连上了?不清楚,不过也算可喜可贺。最后在用 exit 退出 iwctl 的交互界面后再 ip link 一下检查是否连上:没问题。绿色的 UP 真好看,诶嘿。

动态IP应该是自动配置的(ArchWiki讲是 out of box),所以不管。也许后面我会想搞个静态的?唉,不懂网络真头痛呀。不管不管。直接 ping archlinux.org 试试。

烂了,没有数据返回。烂完了。

(找找办法x2……)

顺从。又不是没有别的 WIFI 能用。直接连上办公室 WIFI好了。当然,这里也贴一下我参考了的连接校园网的方法的博文:链接1 以及 链接2

最后网络这里还有要设置一下系统时间。用 timedatectl 就可以。 感谢 zsh 和这些工具带上的自动补全,timedatectl --help 一下,跟着感觉走,最后就得到了 timedatectl set-timezone Asia/Shanghai 了。相当简单。

再见,我的(旧)文件们

又到了每次装系统最喜欢也最提心吊胆的磁盘分区了。总有一种破后而立的感觉,感觉在磁盘格式化之后,这台电脑就变成全新的了诶。还是一样,fdisk -l 列一下可用分区。一下出来了一堆呀,删了删了,全部删了。

又看到一次我的硬盘大小,只有 476.94 GiB,Sad。不过,轻薄本,出差顺带干活用的,无所谓了吧?后面再考虑加容量之类的吧,也许还可以考虑直接换台新本(好奢侈())。

开始分区吧,直接 fdisk /dev/nvme0n1 进入交互模式 (这里我的硬盘只有一个,就是在 fdisk -l 里列出的 /dev/nvme0n1,所以就把它传入参数就好)。由于硬盘太小,我也对文件管理没有什么特别多的想法,干脆就是一个 SWAP 一个 / 好了。至于分区表,依旧选用 GPT 分区表。貌似 GPT 的功能更加强大?已经完全超越了老旧的 MBR?其实按理来说我应该先多了解一下这些东西再下判断来着,不过这里就还是先相信互联网吧()

这里搞了个大乌龙:我不小心把启动盘 /dev/sda 给分区了。有一说一,挺愚蠢的……目前先这么搞吧,安装引导也没断,后面不碰它应该就没问题,吧?下次还是要注意:根据 ArchWiki 上的指导,实际上应该先将分区表进行备份才对,命令是 sfdisk -d /dev/sda > sda.dump(这里 /dev/sda 是要备份分区表的硬盘)。下次一定注意,唉。

接下来就是使用 mkfs 等进行文件系统格式化了。这里很多人推荐 Btrfs,所谓的 B Tree File System(我一开始以为是 Better File System 来着),因为它貌似是支持自动压缩和别的一些高级功能,还有快照之类,很方便个人用户使用。这次就不用传统的 ext4 了,尝尝鲜。使用命令 mkfs.btrfs /dev/nvme0n1p1 就可以把第一个分区格式化为 Btrfs 格式了。我还留了一个分区作为 Swap 使用,大小设置为了8G。要创建 Swap 分区只需要 mkswap /dev/nvme0n1p2 即可。

分好了区,就需要挂载文件系统了。用 mount /dev/nvme0n1p1 /mnt 就可以。Swap 则使用 swapon /dev/nvme0n1p2 就行了。这样一来,我们就在硬盘上做好了准备,马上就要把 Arch Linux 安装在这个临时挂载于 /mnt 的主硬盘了。

安装:冲刺!冲刺!冲刺!

Arch Linux 的灵魂之一也许就是 pacman 包管理器了。安装 Arch Linux 实际上也是使用 Pacman 进行的。因此首先就是对 Pacman 进行必要的配置。

首先还是要选择镜像,可选的镜像站放在了 /etc/pacman.d/mirrorlist 里。这里直接借鉴上次安装的经验好了,使用 reflector --latest 10 --sort rate 来排出最快的10个服务器。结果出来之后可以考虑在这条命令的后面加上 --save /etc/pacman.d/mirrorlist 来保存下来。当然,在这之前(吸取刚刚的教训)我把原文件复制了一份作为备份。

下来就是安装必要的包,命令为 pacstrap -K /mnt base linux linux-firmware。这里的 -K 是指在目标处生成一空的 密钥环。(至于密钥环是什么,对不起,我不知道。后面会学的())

经过漫长的等待,我的安装它:报错了。先是安装的特别慢,可能是因为源的问题吧,我还是尝试了 reflector --country China --age 12 --sort rate 这个命令获取了国内的镜像源;后面是变快了,但是突然又报 error: GPGME error: No data,不管我怎么操作 pacman,都没有用。我估计是密钥环之类的东西坏掉了吧,看来是前面对U盘瞎JB分区导致的。这下只能关机拔掉U盘,重新烧录,格式化电脑硬盘然后重新安装。好在这次安装地很快,这个插曲也算是过去了吧。

现在安装的应该是一些最最基础的软件包。为了安装好后有一些别的功能能用(比如联网),还是需要再安装一些别的软件包。这里我计划是安装 vimdhcpcd 以及 networkmanager。不过这些就等到之后 chroot 后再搞吧。

(安装中……)


我们就当这个傻孩子搞了一通之后算是安装好了吧,其实中间应该还有一些插曲,然而他安装好之后真的一路冲刺,就安装完了抱回宿舍继续折腾了。等他再想起来写这个博客的时候已经过了10天了。原谅他吧,好多细节他也记不清了。


这下好了,安装成功咧,下面怎么装修好呢?

装修:还是先试试 KDE吧,顺带处理一下输入法、字体、网络的坑

后面的内容都是这个傻孩子回忆出来的,很多都不对劲了(也许),请谨慎参考

不知道,先看看 KDE Plasma

直接照搬上次安装的 KDE Plasma 的流程了。安装的东西,设置的玩意儿,几乎一模一样。可能区别是 loacle 的设置和上次相比更复杂一些?记不太清楚了。主要要处理的问题就是,每次使用 man 的时候,都会报 locale 的设置错误问题。解决方法也很简单:照着 ArchWiki 的 Installation Guide 的地区设置那里,再重新搞一次。剩下的什么设置 Taskbar 呀设置 Terminal 什么的,基本都没什么变化。

KDE Plasma 很不错的一点就是,它几乎就是开箱即用的,除了两个很重要但是没有强制安装的东西:文件管理器和终端模拟器。理论上讲,应该是用同属 KDE 的 DolphinKonsole 的,这样能获得最好的体验(也许),然而在体验过 Konsole 略显(真的只是略显)老旧的 UI 之后,我还是选择了使用 kitty。它能原生支持查看图片,算是一个杀手锏级别的功能了吧,其次就是它自带多标签的功能,分栏也很方便,用着挺顺手的。至于文件管理器,目前还没有什么想法,先用着 Dolphin 好了。

输入法:还是使用小企鹅(fcitx5)以及中州韵(Rime)

其实应该直接说“同上”或者什么的,因为实际上最后的效果和之前在虚拟机上安装的过程是一样的,除了最后我没有导入在 Winodws 上已经配置好的配置文件,仅此而已。然而这个过程还是感觉有一点坑呀,特别是不停地纠结输入法设置到底在哪里之类的问题的时候。实际上,根据 fcitx5 的文档,在使用 Wayland 的时候,直接按照教程设置变量之后重启电脑,就可以在输入法那里看到效果了。(也许不需要重启,只需要登出后重新登录就可以?)

实际上默认的中州韵已经挺好用了。然而问题是,它的默认输入是中文,然而在 Linux 的命令行里几乎很少用到中文。每次的误输入都能让人燃气无名怒火,解决方案也很简单:把英文输入法放在首选。这里不是说让中州韵的英文成为首选,而是再装一个默认的英文输入法,并且把它放在首位。实际上我在 Winodws 上也是这么设置的。日用挺舒服。

网络:科学上网不容易呀

在孜孜不倦的努力以及不厌其烦的打扰 AI 下,我成功找到了在我的小破本上科学上网的方法。这里不多讲,但是核心只有一个:使用 TUN 模式。启用 TUN 之后,一切都对了,全对!感谢 AI,感谢 DeepSeek,感谢 ChatGPT!伟大,无需多言。

字体:照着教程开抄

之前在虚拟机上进行安装的时候实际上没太注意字体的问题。这次因为是日常自用,还是留意了一下,毕竟每天看着奇形怪状的汉字真的很别扭。字体的设置基本就是参考 这篇博文,谢谢你,大佬。不过也要注意,读的时候(或者,抄的时候)还是要仔细一些,有一些设置实际上不是最好的设置,可以用出现在底下的更好的配置替代。也算是挡住了一些些伸手党?也许?

指纹:呜呜呜呜呜怎么硬件还能不开源呀

我的笔记本最让我自豪的一点就是她有非常好用的指纹识别。这个本来应该没什么要紧的,但是想到之后就很像折腾一下。特别是回回输入密码,真的有点累。虽然这个本是我自己用,里面也没啥东西,但是还是不太想无密码裸奔。而如果有了指纹,一切都变得熟悉了。啊,那该是多么美妙呀。

直到我花了两个小时多把指纹识别都配置的差不多了的时候,我才发现,愚蠢的小米旗下的 Redmi Book 14 使用的指纹识别模块是闭源的,也没有相关的逆向工程尝试,现在没有任何驱动能启用它。

泪就这样拉了出来。特别是愚蠢的 Firefox 还始终坚持认为我的笔记本是带了可用的指纹识别的,想生成个 Github 的 token 都不行,非得要我按指纹。我按个大头鬼。

唉。

收尾:又是一篇流水账,但是还是做一些总结

感觉这篇没写什么正经东西,又是纯粹地做了一些记录,然后就是磨磨叽叽自说自话了。鉴于此,我决定总结一下一路遇到的主要的坑在哪里,以及安装的大致流程,做一个 quick reference。

Quick Reference: Installation

以下是从最初的准备工作到得到可用系统的过程:

  1. 准备启动盘,备份,barabara
  2. 加载系统,从启动盘启动,进入 shell,执行基本检查(系统架构,键盘设置,网络验证,时区设置……)
  3. 磁盘分区(重要)并进行格式化,挂载文件系统
  4. 检测 pacman 镜像速度并选择,安装必要包(base, linux, linux-firmware)
  5. chroot 进挂载的文件系统,安装必要工具(网络管理,文本编辑器,pager,man-page)
  6. 设置 bootloader(重要且坑),需要仔细阅读文档
  7. 尝试重启并用 bootloader 启动,进入 tty1

Quick Reference: Customization

以下是得到我目前使用的环境的部分配置过程:

  1. 安装好,保证能正确启动 Arch Linux
  2. nmcli con up 启动网络(后面发现可以用 nmtui),保证网络畅通
  3. 添加 archlinuxcn
  4. 执行更新,安装软件包。我安装了 vi, sudo, git, eza, zsh, nvim, kitty, firefox 等基础工具
  5. 安装 oh-my-zshoh-my-posh,导入已有配置,添加常用别名如 l, la, l., ls.
  6. 安装窗口管理器,这里一开始使用 KDE plasma 作为 “起码能用” 的桌面环境,以及套件 dolphin 作文文件管理器
  7. 安装中文输入法 fcitx5-im 以及 fcitx5-rime,进行必要配置(XDG 配置等)
  8. 更改 localectl 以便正常使用 man
  9. 安装 yay 以及尝试科学上网

遇到的坑:

下面是花费时间比较多的部分,这里列举一下:

  1. 分盘搞错盘了,本来内存是 nvme 结果分到 sda 了;
  2. 分盘的时候没想清楚到底该怎么分,瞎分最后还得重来
  3. 没有检查镜像速度导致龟速下载(唉,Arch Linux,必须依赖网络,可惜)
  4. umount 的时候没有 umount 干净导致烂掉
  5. mount 的时候没有检查是否正确 mount 到挂载点
  6. 忘记安装网络管理器,编辑器等等
  7. 没有正确设置 bootloader (一定要读完 bootloaderArchWiki 词条!)
  8. 没有搞好 localectllocal
  9. 安装 fcitx5 之后不重启(记得感觉配好之后就重启试试)

希望这些总结的东西会帮到你吧,让这篇文章不是那么水。

后记:我一定是对 Linux 有什么奇怪的幻想

亲爱的 Arch Linux 笔记本:

终于,BTW, I USE ARCH!!! 谢谢你和我走过的一路。自从安装了 Arch Linux,你真的跑的飞快。我还没有回过神来,你就已经启动了。KISS 的原则,pacman 与 AUR 达成的简洁与丰富的平衡,滚动发行带来的刺激,这一切都太令人兴奋了。先进的 Arch Linux 已经完全地超越了老旧的 Windows!

然而,也许我还是对你有太多的误会。装上 Arch Linux 的你没有变得更加省电,反而似乎更加费电了?我希望这是我没有搞好电池方案配置的锅,但是为什么你不能帮我搞好呢?我懂,我们 Linux 是讲究过生日先从办养鸡场和农场开始的,但是为什么呢?还有,为什么搞不定闭源驱动呢?不能上兼容层吗?说起来就气,怎么你的配置文件还是能变得和 Windows 一样杂乱不堪?怎么软件包随处大小便的时候你还是不管管?道理我都懂,但是系统管理员也不能每天都被埋在这些东西里面吧?还有呀……

-- 此处省略牢骚 2000 字 --

但是,你懂的,你可是 Linux,对吧?你已经是一个成熟的操作系统了,应该学会自己面对这些问题了,对吧?

Yours,

A Moment

谢谢你能看到这里。看完这一大堆废话,说实话也挺累的。如果这些整活儿的内容让你能开心一下,那就太好了。最后,一如既往,就祝您身心健康吧。

Licensed under CC BY-NC-SA 4.0
最后更新于 Jun 16, 2025 16:05 UTC
By AMoment
使用 Hugo 构建
主题 StackJimmy 设计