硬核Linux发行版:记录一次完整的Archlinux安装过程

参考文档,感谢原作者及Archlinux社区的贡献:

Intro

当我第一次了解到 Archlinux 这独具特色的发行版后,我的大脑是这样想的``(  ̄ー ̄)

这什么玩意,全程安装无图形界面,NT玩家才会去折腾这玩意。。。
滚动更新有什么实际意义?只会导致系统稳定性下降吧。
......

但似乎在很多社交网站或者技术论坛上,总会出现一群 Archlinux 的邪教徒的身影,他们高声大喊着:Archlinux, yes!。行吧,于是我也抱着试试看的心理开始接触Arch。 *两三天后,不出意外的 真香.~~*

ArchWiki 是这样描述的:

Arch Linux is an independently developed, x86-64 general-purpose GNU/Linux distribution 
that strives to provide the latest stable versions of most software by following a 
rolling-release model. The default installation is a minimal base system, configured by 
the user to only add what is purposely required.

Q:Arch 凭什么能在众多 Linux 中展露锋芒?

A:Archlinux 相较于其他发行版最大的特点其一是高度的可定制性,其二是激进的滚动更新(a rolling-release model)。Btw,像 OpenSUSE 和 Arch 的衍生 Manjaro 同样运用了滚动更新的包管理器。

Notice. 此博文将会记录一次完整的Archlinux安装过程,由于手头没有闲置的设备,将在Parallels Desktop虚拟机环境下进行。由于Pd中运行Linux模拟了BIOS传统引导的主板且无法修改,但事实上只要不是太老的机型,几乎所有x86平台都采用了UEFI引导方式,这会导致在安装过程中的部分步骤会与实际情况大相径庭(如使用cfdisk分区时的分区策略不同,分区表格式会有mbr+bios和guid+uefi的区分,使用grub bootloader引导系统时也会有较大差异)。综上,如果你想通过这篇文章来学习如何安装Archlinux的话,建议还是在网络上寻找更多的参考资料。我们应该从安装过程中学习到很多内容,而不是仅仅为了得到一个Linux系统而安装,此文只起抛砖引玉的作用。同步我的博客原文地址

废话不多说,开始吧。<( ̄︶ ̄)↗[GO!]

从官网获取LiveCD

进入 Archlinux 的下载页面,推荐下载 BitTorrent 种子文件至本地,再使用 Thunder 或 Motrix 等第三方磁力下载工具,或者你也可以选择下方国内的镜像源,如清华大学的 Tsinghua tuna,一直为 Linux 开源社区提供着优良的镜像服务。Arch 团队考虑也挺周全,为用户还提供了Docker 镜像,VM 虚拟机,Vagrant(一家主要提供在线Virtualbox虚拟技术服务的国外云平台)镜像等多个版本,这些内容会在 Downloads 页面呈现。

下载好的iso文件可以使用如下命令来校验签名,前提是已安装 GnuPG

gpg --keyserver-options auto-key-retrieve --verify archlinux-version-x86_64.iso.sig`

如果已经有一台配置好的 Arch,也可以用 pacman-key(其中version字段名请自行替换)

pacman-key -v archlinux-version-x86_64.iso.sig

至目前,最新版本是 archlinux-2021.02.01-x86_64.iso。镜像文件已经准备就绪,我们需要一个USB接口的U盘作为安装介质,可以采用 rufus,belenaEtcher 等工具将iso镜像文件烧录至U盘,开机引导U盘启动。具体步骤不做赘述。

安装系统

连接网络和时间同步

如果是BIOS引导,会看到这样的界面,

图01

选中第一项 Arch Linux install medium (x86_64, BIOS),回车进入 LiveCD 系统,实际上就是你U盘里面封装好的 Archlinux,系统已经包含了安装所需要的编辑器,网络组建等。经过短暂的跑码系统会将你自动登入 root 根用户。

图02

注意第四段的文字:

For Wi-Fi, authenticate to the wireless network using the iwctl utility.
Ethernet and Wi-Fi connections using DHCP should work automatically.

这段文字的意思是,如果使用 Wi-Fi 链接英特网请使用 iwctl 命令;有线连接即DHCP客户端动态分配IP 可以不做任何配置。如果是特殊网络环境,如PPPoe拨号或是校园网,建议使用手机共享USB网络,系统会作为 DHCP 网络来处理。

检查一下网络联通性:

图03

可选同步系统时间,采用常用的 NTP 协议(同不同步无所谓),:

timedatectl set-ntp true

使用 timedatectl status 检查。

磁盘分区

BIOS with MBR

Mount point Partition Partition type Suggested size
[SWAP] /dev/swap_partition Linux swap More than 512 MiB
/mnt /dev/root_partition Linux Remainder of the device

UEFI with GPT

Mount point Partition Partition type Suggested size
/mnt/boot or /mnt/efi /dev/efi_system_partition EFI system partition At least 260 MiB
[SWAP] /dev/swap_partition Linux swap More than 512 MiB
/mnt /dev/root_partition Linux x86-64 root (/) Remainder of the device

以上两个分区参考表格摘自Arch Wiki,这里使用第一个方案,但有些注意事项值得一提。

  • swap 交换分区的作用:当系统物理 RAM 内存不够用时,系统会将 RAM 里的低访问频率的内存对象放置到 swap 分区中。故 swap 分区访问速度要远慢于物理内存。
  • UEFI 引导的机型在磁盘中已经存在了 ESP 分区,Windows boot manager 引导文件会存放在该分区的 EFI 目录下。如果这样,就没必要新建 EFI 分区,直接将原有的直接挂载到 /mnt/boot 即可。

使用 lsblk 命令查看磁盘情况,可以看到 loop0 和 sr0 是当前 LiveCD 的虚拟磁盘,我们要做的是在 12GB 的 sda IDE磁盘上安装 Arch:

图04

磁盘工具可以选择 fdisk 或 cfdisk,这里以 cfdisk 作为演示。输入 cfdisk /dev/sda 他会提示选择分区表格式,mbr 即 dos。回车进入配置界面,按照表一做好 Linux 分区(ext4)和 swap 。如图:

图05

mke2fs 工具可以用于格式化 Linux ext 格式分区(这里是/dev/sda2),但 Linux 不仅仅限于 ext4 格式,传统的有 ext234 系列,比较新的有 zfs 诸类,zfs 计划在之后唠一唠,这里选择 ext4,毕竟几乎所有发行版都会采用 ext4;同时 mkswap 格式化 swap 分区,完成后可以看见如下信息:

图06

主磁盘分区已准备就绪,命令

mount /dev/sdax /mnt
swapon /dev/sdax

分别挂载磁盘和应用交换分区。接下来进入安装阶段。

系统安装

Arch 完全通过链接互联网来安装基本系统组件,譬如 linux linux-devel base base-devel dhcpcd 等包。由于大陆网络环境的特殊情况,如果使用 arch 的官方仓库可能会耗费大把时间,因此切换国内镜像源是完全有必要的。

LiveCD 早已集成了 vim 编辑器,使用

vim /etc/pacman.d/mirrorlist

编辑镜像源文件,如图:

图07

熟悉 vim 的同学一定会用快捷键 : + /target,快速指定到 target 字段的位置。Archlinux 在用户使用 pacman 命令时会按从上到下的顺序索引该 mirrorlist 配置文件,我们要将 China 的 Server 地址移至最顶端。使用 n + d + d 可剪切 n 行的内容,用 p 粘贴。这里使用网易的源:

图08

完成后 wq! 退出。pacstrap 工具可为指定分区安装必备的 base,linux,linux-firmware 包,其他根据需求自选,如base-devel(包含了基本的 gcc 编译器等),dhcpcd 网络工具,命令菜单man texinfo,文本编辑器 vi vim nano等。。。

pacstrap /mnt base base-devel linux linux-firmware dhcpcd vim nano

英文好的同学可以看一下官方的说明:

The base package does not include all tools from the live installation, 
so installing other packages may be necessary for a fully functional base system. 
In particular, consider installing:

·userspace utilities for the management of file systems that will be used on the system,
·utilities for accessing RAID or LVM partitions,
·specific firmware for other devices not included in linux-firmware,
·software necessary for networking,
·a text editor,
·packages for accessing documentation in man and info pages: man-db, man-pages and texinfo.

安装完成后的提示如图

图09
图10

为系统磁盘分区生成 UUID 卷标,UUID 值可使用 lsblkid 查看:

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

进入系统并配置基本信息

到目前为止,我们仍然使用的是 U 盘 中的 LiveCD 系统,arch-chroot 进入 Archlinux!!!

图11

首先要更新时区,ln -sf 创建动态链接至 /etc/localtime,大陆用户请使用 Shanghai 标准时间。

图12

更新时间,前提是在前面已设置 ntp 协议:

hwclock --systohc

编辑语言文件 /etc/locale.gen 并且解注释 en_US 和 zh_CN,具体操作不赘述。保存完成后更新语言:

locale-gen
图13

新建文件 /etc/locale.conf,同时添加以下内容(请不要使用中文作为默认语言)

LANG=en_US.UTF-8

接下来配置本地网络,arch 的 hosts 文件存在于 /etc/hosts,vim 编辑以下内容:

127.0.0.1   localhost
::1     localhost
127.0.1.1   myhostname.localdomain  myhostname

myhostname 为网络主机名,请新建文件 /etc/hostname 并添加 myhostname 字段名,请自行替换主机名。
如:

图14

⚠️如果你拥有固定的公网 ip,用它来替换 127.0.0.1(我相信大部分私人电脑都搞不到固定公网ip✧(≖ ◡ ≖✿) )

mkinitcpio -P 生成 initramfs img 镜像,其实这个过程在 pacstrap 时已经跑了一遍。

图15

普通用户组的添加

首先 passwd 设置 root 密码,密码不会显示明文,输入后回车即可。

图16

wheel 组中添加新用户,编辑 /etc/sudoers 文件解注释 %wheel,这样 username 用户就可以使用 sudo 来获得 root 权限了。同样的,passwd设置密码。

useradd -m -G wheel username
passwd username
图22

grub 系统引导

Linux 的系统引导程序数不胜数,eg. grub sysLinux rEFInd Clover。一般情况首选 grub,如果是 BIOS 传统启动需要 Grub-Legacy(官方开源仓库已经移除,需通过 AUR 安装) 或 Grub 和 os-prober,UEFI 请用 grub 和 efibootmgr。这里以 BIOS 为例。

图17

grub-install 进行安装,不出意外能看到成功信息:

图18

exit 退出返回 LiveCD,卸载分区,reboot 重启,系统基本组件就安装完成了!!!

图19

图形界面安装

kde,gnome,xfce,dde 属于 DE(Desktop Environment);i3,dwm 属于窗口管理器。Archlinux 的高度可自定义性使我们可任意选择自己喜欢的图形界面。

本篇博客以基于 qt5 精美的 KDE 作为桌面环境 (Gnome 党不要打我ヽ(゚∀゚*)ノ━━━ゥ♪ )

补充:犹且记得第一次实体机安装 Arch 时,现实并没有想象中的美好。首次 grub 引导进入系统后网络问题可能是最大的判脚石,没有通用的解决方案,请自行上网搜索吧行不行就看你是欧皇还是非酋了,设想会另写一篇说一下网络问题和双显卡驱动。

确保网络是通畅的,我演示时只需 systemed 开机启动 dhcpcd 服务即可:

图20

emm.现在回到正题。

安装 Xorg 服务和 KDE-plasma 还有启动管理器 sddm,不建议安装 kde 的全家桶 kde-applications(非常臃肿!!),这里只装了 dolphin 和 konsole 终端。

如图(截图时已提前安装了 Xorg):

图24

systemctl 让 sddm 开机自启

systemctl enable sddm

最后一步了,配置系统字体,安装中文文泉驿 microhei 和英文 dejavu:

图25

重启!你就能看到久违的图形化桌面了。真可谓“山重水复疑无路,柳暗花明又一村”~

后续优化

有两点内容需要知道:
1.yay 2.archlinuxcn 源

yay 是继神器 yaourt 后又一个 AUR 仓库包管理器,拥有 pacman 的几乎所有功能并且能够抓取 AUR 仓库软件。输入 pacman -S yay 即可安装。

archlinuxcn 顾名思义,是中国 Arch 用户自行维护的仓库。由于所有 Linux 发行版仓库中都只有开源软件,像 Google Chrome 商业软件时不可能包含在内的。archlinuxcn 源早已编译好了很多常用的软件:Chrome,WPS Office,Neteasecloudmusic,搜狗输入法等等,确实能带来不少便利。请参考清华大学的文档安装:https://mirrors.tuna.tsinghua.edu.cn/help/archlinuxcn/

高中生活时间很紧,一个星期只有一天能赶一点文字。这篇博客真的写了很长时间,满打满算1个半月,贴点图片纪念一下吧:

图27
图28
图29
图30
图31
图32

Outro

按照 Archlinux 官方的介绍,他们团队维护着Arch一直秉持着五个理念:

Simplicity, Modernity, Pragmatism, User Centrality, Versatility

简而言之:Keep It Simple, Stupid.

保持简约,一目了然再好不过了。

或许从中也能得到启发:生活固然不简单,即使这样也要简单的生活。

Billy Shao,

2/24/2021记.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,874评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,102评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,676评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,911评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,937评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,935评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,860评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,660评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,113评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,363评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,506评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,238评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,861评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,486评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,674评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,513评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,426评论 2 352

推荐阅读更多精彩内容