ArchWiki 中 archlinux 的安装

ArchWiki
参考博客

一些知识点

Arch Linux 现在只支持 x86_64(即 amd64) 架构.

Arch Linux 的发布版本只是安装和修复环境,包含 base 元软件包和一些辅助软件,一般每月上旬发布一次。

使用 pacman -Syu 命令升级系统。

新功能通过 pacman -Syu 即可拥有。

pacman -Qs 可用于查找包.

提高系统稳定性

Arch Linux 安装镜像不支持安全启动 (Secure Boot).

虚拟控制台默认的 Shell 是 Zsh.

如果要清除原来的分区信息, 通过创建一个新的分区表, 利用 fdisk.

BIOS with MBR.

UEFI with GPT.

如果要启动的磁盘已经有一个 EFI 系统分区,不要新建 EFI 分区。

如果要创建一个 EFI 系统分区,使用 mkfs.fat)8 将其格式化为 Fat32.

1
# mkfs.fat -F 32 /dev/efi_system_partition

挂载分区一定要遵循顺序,先挂载 (root) 分区到 (/mnt), 再挂载引导 (boot) 分区到 (/mnt/boot 或 /mnt/efi), 最后再挂载其他分区。

如果创建了交换空间卷,使用 swapon 启动它:

1
# swapon /dev/swap_partition

文件 /etc/pacman.d/mirrorlist 定义了软件包会从哪个镜像下载.
安装必需得软件包:

1
# pacstrap /mnt base linux linux-firmware

在虚拟机或容器中安装时,可以不安装固件软件包 (即 linux-firmware).

这里安装 base-devel 可能更好。

要生成文件系统表,用于在系统启动时自动挂载分区。

注意b站那个教程装 kde 桌面时,软件包是 kde-applications-meta.

自己安装的全过程 (综合多个安装教程, 并在虚拟机上实验)

修改命令行字体

修改命令行的字体,其字体文件存放在 /usr/share/kbd/consolefonts 下:

1
# setfont /usr/share/kbd/consolefonts/LatGrkCyr-12x22.psfu.gz

这个字体较大.

修改键盘布局

使用 loadkeys 命令,如:

1
# loadkeys colemak

修改键位

查看所有的 keycode, 使用 dumpkeys 命令:

1
dumpkeys -l

文件名任意,如 keys.conf,其目的是写一个键盘的配置文件:

1
2
3
# keys.conf
keycode 1 = Caps_Lock # 1 原本是 Escape 键的 keycode
keycode 58 = Escape

然后用 loadkeys 加载一下配置文件.

1
# loadkeys keys.conf

查看启动方式

如果不是 UEFI 启动方式则装不了 arch.

1
ls /sys/firmware/efi/efivars

连接网络设备

先通过 ip link 查看网络设备, 然后用 ip link set <name> up 连接

这里可能会有 RTNETLINK answers: Operation not possible due to RF-kill , 原因是网卡被警用,解决方法:

使用 rfkill 命令, 先查看当前状态:

1
rfkill list 

unblock 硬件:

1
rfkill unblock 设备号或名

使用 wpa_supplicant

扫描当前 wifi

1
# iwlist wlan0 scan

这里的 wlan0 是设备.

1
# iwlist wlan0 scan | grep ESSID 

可以列出 wifi 名列表. 这里 ESSID 的含义就是 wifi 名.

连接 wifi

使用 wpa_passphrase.

格式:

1
# wpa_passphrase <name> <passwd> > <filename>

如:

1
# wpa_passphrase CW_WIFI 12345678 > internet.conf

wpa_supplicant 利用配置文件连接网络:

1
# wpa_supplicant -c internet.conf -i wlan0 &

-c 选项指定配置文件,-i 选项指定设备. 这里的 & 是放在后台运行.

连接之后需动态获取一个 IP 地址。

使用 iwctl

1
2
3
4
5
6
iwctl 
[iwd] device list
[iwd] station <device> scan
[iwd] station <device> get-networks
[iwd] station <device> connect <wifi name>
[iwd] quit

动态获取 IP 地址

使用 dhcpcd:

1
# dhcpcd &

还是放在后台运行.

若无法连接网络

具体情况为 wlan0 这个设备消失了,听 LUG 群里面说是没有安装网卡驱动。

暂时解决方法为,使用启动盘,然后 arch-chroot 上去后操作.

另一个方法就是插网线.

在已经安装好的系统中,iwlist 这个命令用不了,因为没有安装,因此需要:

1
pancman -S wireless_tools

查看网卡型号

利用 lspci:

1
lspci | grep -i ethernet

比如我的输出为:

1
07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)

这里 Realtek Semiconductor 是公司名. RTL8111/8168/8411 就是网卡型号.

看无线网卡应该为 Network controller. intel

查看网卡驱动以及版本号

要使 NIC 硬件正常运行,必须给电脑的 NCI 硬件设备安装对应的网卡驱动程序.

使用 dmesg 和 modinfo

使用 dmesg (display message) 命令查看, 这个命令用于显示开机信息,开机的信息也保存在 /var/log 中. 内核在引导期间会加载必要的硬件驱动程序,因此 dmesg 命令的输出中会存在是否安装了以太网卡驱动程序的信息.

1
dmesg |grep NIC 

使用 modinfo 命令查看版本号, 格式为:

1
modinfo <driver name>
使用 ethtool 查看

可能需要先安装,在 Ubuntu 中:

1
sudo apt-get install ethtool

使用 ethtool (ethernet tool) 来查看网卡名对应的网卡驱动名以及网卡驱动版本号, 格式为:

1
ethtool -i <NIC name>
使用 lshw 命令查看

lshw (list hardware) 可以查询到网卡对应的网卡驱动信息以及网卡驱动版本号:

1
sudo lshw -class network  

查看网卡生产商

先下载一些网络诊断工具:

1
pacman -S net-tools

先查看网卡信息:

1
ifconfig

里面一串格式类似为: 00-00-00-AA-BB-CC 的就是 MAC 地址.

得到一个网卡的 MAC 地址后,打开一个查询工具 (工具) 输入 MAC 地址就可以查到网卡生产商的信息.

这里提一下 MAC 地址的结构,如 A1-B2-C3-D4-E5-F6, 前三个为厂商唯一,后三个为厂商分配的.

更新系统时间

1
2
timedatectl set-ntp true 
timedatettl status

配置 pacman

pacman -SS 的含义是 “Synchronism”
配置文件为 /etc/pacman.conf, 其中,去除 #Color 前面的 # 注释符,Color 的意思是在安装软件包时,会给出彩色的提示,而不是黑白.

1
$ pacman -S archlinux-keyring

文件中:

1
2
3
4
5
6
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
[community]
Include = /etc/pacman.d/mirrorlist

这些都代表 arch 的软件源. 这个 mirrorlist 里面记录的是 arch 软件源服务器的地址.

进入文件后把 China 的放在最顶上,因为 pacman 是从上往下读取.

利用 vim 的宏录制可以干很多重复的工作.

在 vim 中寻找空行为 /^\n

archlinuxcn 中的源很多不是官方编译。

换源

先备份:

1
cp -a /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak 

添加华为的源和阿里云的源:

1
2
Server = https://repo.huaweicloud.com/archlinux/$repo/os/$arch
Server = https://mirrors.aliyun.com/archlinux/$repo/os/$arch

更新:

1
pacman -Syy

使用 ssh 连接

使用 ssh 连接后安装比较方便, 因此先:

1
# pacman -Syy openssh

启动 sshd:

1
2
3
systemctl enable sshd
systemctl start sshd
systemctl status sshd

先修改一下 root 密码,方便连接:

1
passwd root 

然后回到自己的终端进行 ssh 连接:

1
$ ssh root@ip

这个 ip 后面没有端口号.

磁盘分区及格式化

先用 fdisk -l 命令查看磁盘位置, 然后用 fdisk 命令直接分区。如 fdisk /dev/vda

之后格式化磁盘, boot 分区格式化为 fat32,如 mkfs.fat -F 32 /dev/vda2

/ 根目录分区格式化为 ext4, 如 mkfs.ext4 /dev/vda1

将分区挂载,先挂载 / 根分区到 /mnt 目录:

1
# mount /dev/vda2 /mnt

然后将 boot 分区挂载到 /mnt/boot, 先得创建一个目录:

1
2
# mkdir /mnt/boot
# mount /dev/vda1 /mnt/boot

安装系统

安装几个工具:

1
# pacstrap /mnt base base-devel linux linux-firmware dhcpcd e2fsprogs iwd

base 包包含 20 来个基础的软件.

linux 是 linux 内核。

linux-firmware 是 linux 的框架.

base-devel 中也同样有重要的 packages, 比如 GCC 和 make.

这里 dhcpcd 是用来动态获取 ip 的。

e2fsprogs 是一个 Ext2 (及 Ext3/4) 文件系统工具,它包含了诸如创建、修复、配置、调试 ext2 文件系统等的标准工具.

iwd 是 iNet Wireless Daemon 项目,旨在基于 Linux 设备提供全面的 Wi-Fi 连接解决方案。
pacstrap 是一个脚本,它会往一个文件夹里面安装你想要的软件,当前未将根目录挂载到 /mnt 时,其所在环境为启动盘所在的位置而不是系统盘. 因此需要把根目录挂载.

生成文件系统表

用于自动挂载分区,不然系统无法正常启动.

1
2
# genfstab -U /mnt >> /mnt/etc/fstab
# cat /mnt/etc/fstab

执行以下命令进入到我们安装的系统,对系统进行配置:

1
# arch-chroot /mnt

设置时区

1
2
3
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 同步硬件时钟
hwclock --systohc

本地化

Local 明确规定了地域、货币、时区日期的格式、字符排列方式和其他本地化标准.

生成 Local 信息

1
2
3
sed -i 's/^#en_US.UTF-8/en_US.UTF-8/' /etc/locale.gen
sed -i 's/^#zh_CN.UTF-8/zh_CN.UTF-8/' /etc/locale.gen
locale-gen

创建 locale.conf 文件,并编辑设定 LANG 变量:

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

主机名配置:

1
echo "ArchLinux" >> /etc/hostname

生成对应 hosts, 将 hostname 换成自己设置的:

1
echo -e "127.0.0.1 localhost\n::1 localhost\n127.0.1.1 hostname.localdomain hostname" >> /etc/hosts

设置 root 密码:

1
passwd root

安装引导程序

安装 Linux 引导加载程序,才能在安装后启动系统.

安装徽码

1
2
3
4
# amd 电脑安装
pacman -S amd-ucode
# intel 电脑安装
pacman -S intel-ucode

其中 intel-ucode 是厂家或程序提供商来为你的电脑 cpu 更新一些驱动.

配置 grub

Arch 使用 grub2 管理引导,安装相关程序:

1
pacman -S grub efibootmgr efivar os-prober

安装引导

在安装 grub 之前,需要先确认系统架构是什么.

1
# uname -m
1
2
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Arch --recheck
# --bootloader-id=name 中的name可改

grub2 默认禁用了 os-prober, 如果是选择双系统或多系统安装,需手动开启该选项。

os-prober 可以检查其他硬盘上的其他系统引导, 如果不开启,可能无法识别其他系统.

1
echo "GRUB_DISABLE_OS_PROBER=false" >> /etc/default/grub 

生成引导配置文件

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

配置开机启动项

开机后自动连接网络, 需下载联网程序并设置开机自启动:

1
2
3
4
5
# 下载 wifi 管理
pacman -S dhcpcd iwd
# 设置启动项
systemctl enable dhcpcd
systemctl enable iwd

ARU 添加 ArchlinuxCN

1
2
3
# /etc/pacman.conf
[archlinux]
Server = http://mirror.lzu.edu.cn/archlinuxcn/$arch

去掉 # Color 前的注释符.

然后更新一下:

1
sudo pacman -Syy 

若报错则需获取 gpg 密钥:

1
2
3
4
rm -rf /etc/pacman.d/gnupg/
pacman-key --init
pacman-key --populate archlinux archlinuxcn
pacman -Syy

结束

1
2
3
4
5
6
# 退出 arch root 安装环境
exit
# 取消挂载
umount -R /mnt
# 重启
reboot

若 win 和 Ubuntu 的引导记录在 grub 中消失

实际上的引导记录还是存在的,可以通过 /etc/efi 目录下查看.

要找到启动 Ubuntu 和 Win 的方法,可以在 BIOS 中进行顺序的切换.

新建用户

1
useradd -m -G wheel -s /bin/bash <username>

设置用户密码:

1
passwd <username>

赋予用户 sudo 权限, 修改 /etc/sudoers 文件, 去掉 %wheel 行之前的注释. 需要先修改文件权限。

安装 dwm 窗口管理器

参考博客
参考b站
先说一个误会,自己在参考一个视频后拉取了别人的 pwm 仓库,然后安装后不知道如何使用,重新安装原始包即可.

桌面环境与窗口管理器概述

桌面环境会提供很多工具。大多数桌面环境包括一整套整合应用程序和使用工.

窗口管理器仅仅用于管理窗口,安装了窗口管理器之后就可以不用安装桌面环境.

准备工作

有些可能在前面以经安装好了:

1
pacman -S acpi usbutils pciutils
  • acpi 是用来查看电池电量的工具。

  • usbutils 是用来查看系统 USB 设备.

  • pciutils 用来查看系统 PCI 设备。

安装驱动:

1
pacman -S xf86-vedio-intel mesa xf86-input-libinput

这三个好像本就安装好了的,因为我在下载的时候显示的是 reinstall.

  • xf86-vedio-intel 是显核的驱动.

  • mesa 是用来配合显卡的另一种上层驱动.

  • xf86-input-libinput 是笔记本触摸板的驱动.

安装X窗口系统的相关服务:

1
pacman -S xorg xorg-xinit xorg-server xwallpaper picom
  • xorg 是 X 服务,用来显示图形界面
  • xorg-xinit 是 X 服务的启动程序
  • xwallpaper 用于更换壁纸
  • picom 窗口渲染,后面做半透明渲染

安装窗口管理器

安装 suckless 全家桶:

1
2
3
git clone https://git.suckless.org/dwm --depth=1 
git clone https://git.suckless.org/st --depth=1
git clone https://git.suckless.org/dmenu --depth=1

分别进入这几个下载下来的目录,并执行 sudo make clean install.

在家目录下创建 .xinitrc 文件并添加 exec dwm.

安装亮度控制和 Night Mode

1
sudo pacman -S brightnessctl redshift

.xinitrc 文件中添加 brightnessctl set 20% &redshift -P -O 4800 &

同样在 .xinitrc 中添加 picom &

安装 lightdm 服务

lightdm 是一个 display manager,也就是提供一个登录界面.

1
sudo pacman -S lightdm lightdm-webkit2-greeter lightdm-webkit-theme-litarvan

其配置文件位置为 /etc/lightdm/lightdm.conf 修改该配置文件,修改 greeter-session 的为 greeter-session=lightdm-webkit2-greeter.

接着修改 /etc/lightdm/lightdm-webkit2-greeter.confdetect_theme_errors 的值改为 false. webkit_theme 的值改为 litarvan.

安装 kde 桌面环境

先安装依赖的 xorg 包.

1
sudo pacman -S xorg xorg-server xorg-xinit

最小安装 kde 和 plasma 桌面:

1
sudo pacman -S plasma-meta sddm

之前装的 kde-applications-meta 里面是应用,不是桌面环境. 详情见ArchWiki

sddm 是 kde 使用的登录管理器.

设置 sddm 的开机启动:

1
sudo systemctl enable sddm

下载一些应用:

1
2
3
4
5
6
  sudo pacman -S konsole alacritty dolphin ark gwenview lolcat sl neofetch
# konsole 和 alacritty 都是终端
# dolphin 是文件管理器
# ark 是归档管理器,就是解压缩的
# gwenview 是看图片的
# lolcat neofetch 和 sl 是防止你打开终端没事干

国内开发的桌面环境有 deepin

1
pscman -S deepin deepin-extra

这是一个已经配置好的皮肤,附带很多软件.

/etc/lightdm/k=lightdm.confgreeter-session 改为:

1
greeter-session=lightdm-deepin-greeter

TLP

用于管理电池.

字体

进入一个 b 站 up 的 github 页面– 主页

网易云

1
yay -S netease-cloud-music

百度网盘


ArchWiki 中 archlinux 的安装
http://example.com/2022/08/30/Archlinux 的安装/
作者
Jie
发布于
2022年8月30日
许可协议