(施工中)Arch Linux个人安装步骤小记

文章目录
  1. 1. 前言
    1. 1.1. 毕竟都用 Arch 了,就要做好折腾的觉悟好吧
    2. 1.2. 官方 Wiki 的安装过程
  2. 2. 开始
    1. 2.1. 安装前的准备
      1. 2.1.1. 下载 iso 格式镜像文件官方下载网站
      2. 2.1.2. 以 U 盘为 Live 环境,使用开源软件Ventory制作U盘启动盘
      3. 2.1.3. 确认主板 bios 模式为传统 bios 或是 UEFI 模式
      4. 2.1.4. 进入 ArchLinux Live 安装环境
    2. 2.2. 配置 Live CD 环境
    3. 2.3. 对磁盘进行分区和挂载操作
    4. 2.4. 安装 Linux 内核以及必须的软件包和元软件包
    5. 2.5. 初步配置已安装系统
    6. 2.6. 安装和配置引导程序
    7. 2.7. 完善已安装的系统
  3. 3. 个人常用软件安装和配置
    1. 3.1. Visual Studio Code
    2. 3.2. Google Chrome
  4. 4. TO BE CONTINUED
    1. 4.0.1. OneDrive

前言

Arch Linux为我目前所使用的 Linux 发行版,我根据自己的实际需求,写出此安装步骤,以系统化学习和方便使用~~面向^C 和^V 的系统安装步骤 XD~~~

Arch Linux 的官方 Wiki 上推荐使用 Live 系统安装 Arch Linux,我也在使用 Arch 的过程中,虽然也了解了那些一键安装脚本,但是。。。

毕竟都用 Arch 了,就要做好折腾的觉悟好吧

那么就让我们开始吧!

官方 Wiki 的安装过程

  • 安装前的准备
  • 安装必须的软件包
  • 配置 Fstab 文件

    fstab 文件可用于定义磁盘分区,各种其他块设备或远程文件系统应如何装入文件系统。

    说人话就是开机的时候自动挂载硬盘分区

  • Chroot(切换 root 用户)到已经安装好的系统
  • 设置时区以及本地化
  • 设置 hostname 和 hosts(主机名和 hosts 文件)
  • 设置 Root 用户密码
  • 安装引导程序
  • 安装完成,重启!

本人设置模块化的引索目录,顺序进行即可正确安装当然你是确定自己需要的步骤自取那就更好了,本来写这篇文章的目的就是这个 hahaha

这里按照我的习惯命名,细分并改变了一下安装顺序,请注意!

开始

安装前的准备

下载 iso 格式镜像文件官方下载网站

以 U 盘为 Live 环境,使用开源软件Ventory制作U盘启动盘

这里使用 Ventory 的原因有:Ventory 支持多 iso 直接启动,也就意味着不像传统的 iso 文件刻录进 U 盘,可以充分利用 U 盘空间,制作双系统以及多系统系统启动盘,安装盘。

当然这里也可以使用另外一款开源 U 盘刻录软件Rufus

确认主板 bios 模式为传统 bios 或是 UEFI 模式

虽是这么说 Linux 能让老电脑焕发第二春,但是对于那种都已经腐烂的电脑,真的还是不推荐安装此系统,毕竟我们安装 Arch Linux 是用来折腾的,(至少对我来说)。对于风烛残年的老电脑来说,还是让他好好休息吧,干活是年轻人的事情。

现在(截止于 2021 年)市面上流通的个人电脑,我们安装系统时推荐使用主板 UEFI 模式+硬盘 GPT 模式。并且 UEFI 模式则需在主板 bios 设置中关闭安全启动这一选项。

BIOS_FASTBOOT

进入 ArchLinux Live 安装环境

这个就比较简单了,选择主板 bios 的启动选项的快捷键还是进如主板 bios 设置修改启动顺序,这些随你的心情,只要选择用 Ventory 制作好的U盘启动盘就行了。

进入 U 盘后,选择相应的 Arch Linux 镜像,等待跑码,跑码结束后就是进入命令行输入模式了。

配置 Live CD 环境

注意,每条命令,我会做出或多或少的相关解释。
而且请注意,我们进入 Live 环境后,是以 root 权限进行操作。
所以做出以下约定:
命令上一行为 # ,需以 root 权限运行
命令上一行为 $ ,以普通用户权限运行

Arch Linux的安装需要网络环境,第一步就是连接互联网

若已连接可联网网线

1
2
# 从 dhcp 服务器获取 ip 地址
dhcpcd

使用 iwd 进行无线连接

1
2
3
# 
iwctl
device list
1
2
3
4

# 校准本地时间
timedatectl set-ntp true

对磁盘进行分区和挂载操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

# 查看磁盘及其分区情况
lsblk

# 使用 cgdisk (GUI界面)或 gdisk (命令行界面)对相关磁盘进行分区(请自选对应磁盘)
cgdisk /dev/nvme0n1
gdisk /dev/sda


# 再次查看磁盘及其分区情况
lsblk -f

# 确定好磁盘分区,开始对分区进行格式化
我们对 /dev/nvme0n1p1 格式化为 Fat32 文件系统(/boot 分区)
我们对 /dev/nvme0n1p2 格式化为交换分区(交换分区)
我们对 /dev/nvme0n1p3 格式化为xfs文件系统(根目录/)
我们对 /dev/nvme0n1p4 格式化为xfs文件系统(/home 分区)


mkfs.fat -F 32 /dev/nvme0n1p1
mkswap /dev/nvme0n1p2
mkfs.xfs /dev/nvme0n1p3
mkfs.xfs /dev/nvme0n1p4

# 最后检查磁盘分区,确认分区完毕
lsblk -f

# 挂载磁盘到 Live CD 内存中
mount /dev/mvne0n1p3 /mnt

# 建立boot,home挂载点
mkdir /mnt/boot & mkdir /mnt/home

# 挂载磁盘相关分区到boot,home文件夹中
mount /dev/nvme0n1p1 /mnt/boot & mount /dev/nvme0n1p4 /mnt/home

# 挂载交换分区
swapon /dev/nvme0n1p2

lsblk

安装 Linux 内核以及必须的软件包和元软件包

1
2
3
4
5
# 安装 base 元软件包、base-devel软件包组、 Linux 内核以及常规硬件的固件
和有线/无线网络工具,Btrfs、VFAT、exFAT、ext、NTFS、XFS文件系统管理工具

pacstrap /mnt base base-devel linux linux-firmware dhcpcd iwd btrfs-progs dosfstools exfat-utils e2fsprogs ntfs-3g xfsprogs gdisk

初步配置已安装系统

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62

# 配置fstab文件
genfstab -U /mnt >> /mnt/etc/fstab

# Change root
arch-chroot /mnt

# 安装文本编辑器nano、vim
访问 man 和 info 页面的工具
联网所需要的程序
pacman -S nano vim man-db man-pages dialog wpa_supplicant networkmanager netctl

# 设置时区为上海时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 设置时间标准为 UTC 并调整时间偏移
hwclock --systohc --utc

# 本地化过程1
vim /etc/locale.gen
- - - - - - - - - - - - - - - -
删除对应地区和编码格式前的#号

# 更新所做出的更改
locale-gen

# 本地化过程2
vim /etc/locale.conf
- - - - - - - - - - - - - - - -
在locale.conf中添加如下文本
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=C
LC_TIME=zh_CN.UTF-8
LC_COLLATE=C
LC_MONETARY=zh_CN.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT=zh_CN.UTF-8
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

# 设置主机名(替换myhostname)
vim /etc/hostname
- - - - - - - - - - - - - - - -
在locale.conf中添加如下文本
myhostname

# 设置hosts文件(替换myhostname)
vim /etc/hosts
- - - - - - - - - - - - - - - -
在hosts中添加如下文本
127.0.0.1 localhost
::1 localhost
127.0.1.1 myhostname.localdomain myhostname

# 修改root密码
passwd

安装和配置引导程序

关于 GRUB 的2.06更新的一点改变:

  1. 如果您正在使用 os-prober 生成其他系统的引导项,grub 2.06 不再自动启用 os-prober,您需要添加 GRUB_DISABLE_OS_PROBER=false 至 /etc/default/grub 配置文件中并且重新运行 grub-mkconfig
  2. grub 2.06 现在会自动添加 固件设置菜单( BIOS ) 引导项目,无需手动创建
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 安装CPU微码(根据具体CPU品牌进行选择)
pacman -S amd-ucode
pacman -S intel-ucode

# 安装多系统工具 os-prober 和EFI启动管理工具
pacman -S os-prober efibootmgr

# 安装启动引导程序 gurb2
pacman -S grub

# 禁用 grub 的禁用 os-prober 功能
vim /etc/default/grub
- - - - - - - - - - - - - - - -
添加如下文本
GRUB_DISABLE_OS_PROBER=false

# 配置 grub (此为 grub 在UEFI模式下的配置)
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB --recheck
grub-install --target=x86_64-efi --efi-directory=/boot --recheck

# 更新并储存 grub 配置
grub-mkconfig -o /boot/grub/grub.cfg

# 退出磁盘系统下的 root 用户
exit

# 卸载挂载点
umount -R /mnt

# 重启
reboot

到此位置我们已经完成安装了 Arch Linux 的安装。

那么,接下来,我们要开始对完善我们所安装的系统。

有时候,因为 Windows Boot Manager (Windows系统启动管理器)的强势性,即使在正确配置好了启动引导程序后,可能也不会自动引导进 GRUB 中。所以有时候我们还需在主板 BIOS 设置中,在 启动 选项中选择磁盘中已经安装并配置好的 grub 的引导程序并保存。

完善已安装的系统

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
> 设置 sudo 并添加新用户
# 替换 vi 编辑器 为 vim
ln -s /usr/bin/vim /usr/bin/vi

# visudo
- - - - - - - - - - - - - - - -
找到该行,去掉 %wheel 前的注释符号 # (百分号保留)
## Uncomment to allow members of group wheel to execute any command
# %wheel ALL=(ALL) ALL

# 添加新用户并加进wheel用户组 (替换 user 为你喜欢的用户名)
useradd -m -G wheel user

# 为 user 设置密码
passwd user



> 配置桌面环境
# 安装软件包组 xorg
pacman -S xorg

# 安装 wayland 和 wayland 的 xorg 兼容
pacman -S wayland xorg-xwayland
# 安装各个图形库的 wayland 支持(qt5,qt6,glfw,glew)
pacman -S qt5-wayland qt6-wayland glfw-wayland glew-wayland

# 安装显示管理器 SDDM
pacman -S sddm
# SDDM 若要强制启动小键盘
vim /etc/sddm.conf.d/
- - - - - - - - - - - - - - - -
修改 Numlock 为 on(选项有 on off none)
[General]
Numlock=on

// SDDM 不会显示 root 用户的登录界面,所以要在使用 SDDM 之前创建一个非 root 用户

# 安装 Plasma 桌面、 KDE 应用和 Wayland 的KDE支持
pacman -S plasma kde-applications plasma-wayland-session


# 设置相关服务开机自启
禁用系统自带的网络服务
systemctl disable netctl
启用显示管理器 SDDM
systemctl enable sddm
启动桌面环境用的网络管理
systemctl enable NetworkManager

> 配置 Nvidia 显卡驱动(如果你有N卡的话,而且在显卡型号不会太老的情况)
# pacman -S nvidia nvidia-utils nvidia-settings

cat /sys/module/nvidia_drm/parameters/modeset
vim /etc/mkinitcpio.conf
- MODULES=()
+ MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)

# 要在 wayland 下使用 Nvidia 显卡,需要给 Linux 内核传递 Nvidia 的 Direct Rendering Manager Kernel Mode 参数(不然就黑屏了)
sudo vim /etc/default/grub
- - - - - - - - - - - - - - - -
在该行的参数内添加 nvidia-drm.modeset=1 如下
- GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
+ GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia-drm.modeset=1"

# 重新生成 grub.cfg 文件
grub-mkconfig -o /boot/grub/grub.cfg

# 完成配置,重启
reboot


> 配置蓝牙并自启动蓝牙服务
# pacman -S bluez bluez-utils
# systemctl enable bluetooth.service
# vim /etc/bluetooth/main.conf
- - - - - - - - - - - - - - - -
若要蓝牙开机后自动启动,false 修改为 true,如下
[Policy]
- # AutoEnable=false
+ AutoEnable=true

> 安装版本控制工具 Git 和第三方软件包管理器 yay
$ sudo pacman -S git
$ mkdir ~/builds & cd ~/builds
$ git clone https://aur.archlinux.org/yay.git
$ cd yay
$ makepkg -si

> 本地化过程3
$ 安装中文字体(注意这里已经使用普通用户了)
Google Noto Fonts 系列
yay -S noto-fonts noto-fonts-cjk noto-fonts-emoji
思源黑体
yay -S adobe-source-han-sans-otc-fonts
文泉驿正黑和微米黑
yay -S wqy-zenhei wqy-microhei
更纱黑体
yay -S ttf-sarasa-gothic

> 安装并使用 Z shell(zsh) 和第三方zsh框架 oh my zsh
$ yay -S zsh

$ 初始配置 zsh 获取配置文件
zsh

$ 列出已安装的 shell 路径
chsh -l

$ 若要改变默认 shell ,改变以下 shell 路径即可
chsh -s /bin/zsh

$ 执行官方安装 oh my zsh 脚本(oh my zsh 会自动更新,无需担心后续的版本更新问题)
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

$ 在桌面环境下使用我个人比较喜欢的 Agnoster 主题 (终端环境我推荐使用 ys 主题)
vim ~/.zshrc
- - - - - - - - - - - - - - - -
修改配置为
ZSH_THEME="agnoster"

$ 立即更新配置
source ~/.zshrc

> 安装和配置中文输入法 fcitx5
$ 安装软件包 fcitx5
yay -S fcitx5

$ 安装输入法引擎 rime
yay -S fcitx5-rime

$ 安装对 Qt 和 GTK 程序的支持输入法模块
yay -S fcitx5-qt fcitx5-gtk

# 配置环境变量

vim /etc/environment
- - - - - - - - - - - - - - - -
添加如下文本后并重新登录(注销用户)
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
GLFW_IM_MODULE=fcitx
SDL_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx

//使用 ~/.pam_environment 配置的环境变量,现已不再推荐使用


$ 安装适用于 Rime 的中文维基词库
yay -S fcitx5-pinyin-zhwiki-rime

$ 安装炫酷的 material 主题
yay -S fcitx5-material-color
- - - - - - - - - - - - - - - -
从 KDE 桌面程序启动器进入 fcitx5 的配置菜单:
主题选择
Fcitx5 - 附加组件 - 经典用户界面
另外在 Fcitx5 - 中州韻 中可以配置输入法的外观,可以根据自己选择勾选
[]同时在程序中显示预编辑文本编辑

进行到这里,系统可以说是能够正常使用的状态了。接下来是一些常用软件的安装和注意事项。

个人常用软件安装和配置

Visual Studio Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
$ 安装微软构建版本 Visual Studio Code 和一个 KDE 的补丁
yay -S visual-studio-code-bin
yay -S libdbusmenu-glib

//因为 KDE 和 VScode 在密码管理方面的不兼容(截至2021-09-05),现在无法使用 GitHub 登录 VScode 。需要使用其他平台的密码管理器,现有两种方法解决此问题或是等待 VScode 或 KWallet 解决此问题。

一.安装 gnome 的密码管理器,即可解决
1.安装 gnome 密码管理器和其图形前端
yay -S gnome-keyring seahorse
2.添加默认密钥环时,密码与 linux 用户密码相同,这样只需在用户登录 linux 系统时输入一次密码

二.使用 KeePassXC 作为 Secrets Service
1.安装 libsecret 和 KeePassXC
yay -S libsecret keepassxc
2.从 KDE 桌面程序启动器启动 KeePassXC
3.新建一个数据库,名称随意,密码自行设置
4.群组-新建群组,名称推荐为 Secret-Service-Integration ,配置默认
5.工具-设置-(应用程序设置)保密服务集成。勾选 在 KeepassXC 中启用 Freedesktop.org 保密服务集成
6.工具-设置-(应用程序设置)保密服务集成-常规-已公开的数据库群组。点击刚刚创建的数据库文件右边 管理 栏目下的铅笔图标
7.保密服务集成-公开条目。勾选 公开此群组下的条目
8.完成设置,现在 VScode 可正常登录 GitHub
9.注意,使用 KeePassXC 时应保持密码数据库处于解锁状态(截至2021-09-05 本人暂无发现无其他更好的方案能与方法一一样无需额外输入密码)

目前在 Wayland 环境下 VScode 仍然默认使用 XWayland ,若要原生使用 Waylang VScode 则使用命令行传递参数启动 code 即可
code --enable-features=UseOzonePlatform --ozone-platform=wayland

Arch Wiki 下的方法传递参数好像并不能启动原生 Wayland 但是仍然在这里贴出

$ vim ~/.config/electron-flags.conf
- - - - - - - - - - - - - - - -
添加如下文本
--enable-features=UseOzonePlatform
--ozone-platform=wayland

Google Chrome

1
2
3
4
5

$ vim ~/.config/chrome-flags.conf
- - - - - - - - - - - - - - - -
--enable-features=UseOzonePlatform
--ozone-platform=wayland

TO BE CONTINUED

1
2
3
4
5
mount -a //按照 fstab 的数据将所有未挂载的磁盘挂载
yay -S mlocate
sudo updatedb
yay -S google-chrome onedrive-abraunegg
reboot
1

1
2
3
vim /etc/pacman.conf
yay -S android-sdk-platform-tools android-udev
reboot
1
yay -S nodejs npm
1
yay -S

放弃 xrdp 的远程桌面方案,也许试一试 kde桌面的?
或者 VNC 的

OneDrive

onedrive -logout

Xorg X11
以 Surface Laptop Go 为例
屏幕对角线长度:12.4 inch(英寸)
屏幕分辨率:1536 * 1024

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

$ echo 'scale=5;sqrt(1536^2+1024^2)' | bc
1846.04225

$ echo 'scale=5;(12.4/1846)*1536*25.4' | bc
261.78662

$ echo 'scale=5;(12.4/1846)*1024*25.4' | bc
174.52441

# sudo vim /etc/X11/xorg.conf.d/90-monitor.conf
------------------------------
Section "Monitor"
Identifier "<default monitor>"
DisplaySize 261 174 # In millimeters
EndSection


没时间别研究 refind ,会变得不幸

1
2
3
#查看分区表 
parted /dev/nvme0n1 print