跳转至

a. 安装过程梳理

a. 安装过程梳理

更新日期:2020-07-12


1. 概述

Arch的安装过程比较麻烦,虽然WiKi上有详细的步骤说明,但是还是经常容易出现失误。 所以我这里整理了一些安装过程,便于以后需要安装的时候和WiKi配合使用。

2. 准备工作

安装Arch必须要具备的条件是:

  • U盘。用来装Live系统。
  • 网络连接。用来装包。

Live系统是必备的。安装过程中出现失误的话可以使用Live系统来修复,不用从头再来。在后面的使用过程中如果出现系统不能启动的问题也能使用Live系统来修复。

一个快速的网络会有更好的安装体验,因为要下载GB单位的数据。

3. 主要步骤

在开始安装之前,要说明的一点是,Linux可以被安装在U盘上或者是移动硬盘上。这样的好处显而易见,我拿着一个很小的移动硬盘到处走,插在不同的电脑上开机使用,可以直接进入平时自己一直在使用的最熟悉的系统。

这样的一个系统不是Live系统,而是一个真正可以日常使用的系统。

如果想安装这样的一个系统。建议先按照正常的流程安装在移动硬盘上。在全部配置完成后进行调整,以使它能在不同的硬件上正常启动。

一个正常的安装流程主要有下面这些步骤。步骤的顺序并不完全和WiKi上的一模一样,其实是没有那么严格的顺序的。

  • 1 制作Live系统。如果已经有了就不用做了。
  • 2 启动到Live系统。
  • 3 配置Live环境。(网络连接、时间同步等)
  • 4 硬盘分区。
  • 5 挂载分区。
  • 6 安装新系统的基本组件。
  • 7 切换到新系统。
  • 8 配置新系统的环境。(时区、字符集、密码等)
  • 9 在新系统中安装必备的基础软件。(如连接WiFi的软件)
  • 10 安装引导程序。
  • 11 启动到新系统。
  • 12 连接网络。
  • 13 配置用户。
  • 14 安装基本组件。(如微码、防火墙等)

这样一个新的系统就安装完毕了。但它默认是没有图形界面环境的。 如果要使用桌面环境,则还需要下面这些步骤。

  • 1 安装Xorg。
  • 2 安装显卡驱动。
  • 3 安装显示管理器。(登录界面)
  • 4 安装桌面环境或者窗口管理器。
  • 5 安装终端程序。
  • 6 安装中文字体。

4. 细节

这里就对上面列出的每个步骤进行详述。

首先是基本安装步骤。

1 制作Live系统。如果已经有了就不用做了。

这一步不用细说了,完全按照WiKi上的方法安装就可以。

2 启动到Live系统。

开启启动时选择从U盘启动。 要注意的是Surface这样的设备比较特殊,要关闭安全启动才行。Surface的问题我们以后再说。

3 配置Live环境。(网络连接、时间同步等)

启动后会进入Live系统的命令行界面。为了后面的工作能顺利进行,这里需要进行一些基本的配置工作。

A. 首先是配置键盘布局。

因为如果键盘布局不对,我们输入各种符号的时候会非常麻烦,甚至有些符号敲不出来,严重影响我们后面的安装过程。

以日语键盘为例。

1
loadkeys jp106

B. 然后说一说网络连接。

由于我们要联网下载一些包。所以网络是必须的。

以网线直连和连接WiFI两种方式分别说明。

网线直连

查看网络接口:

1
ip link

可能的输出如下:

1
2
3
4
5
6
7
[hakureiyoumu@archlinux ~]$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp1s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 98:ee:cb:a5:ac:e6 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
    link/ether c8:b4:22:3b:c2:21 brd ff:ff:ff:ff:ff:ff

让我们假定途中enp1s0就是主板上网卡的接口。如果后面的尖括号<>中有UP的字样,则表示这个接口以及启动了。如果没有则用下面的命令来打开。

1
ip link set enp1s0 up

此时应该以及连接上网络了,但通常我们还需要打开动态IP服务获取动态IP地址后才能真正开始使用。用下面这个命令。

1
dhcpcd

命令执行成功后会自动切到后台去运行。

这时应该已经连接成功了。使用如下命令来验证连接是否成功。

1
ping www.bing.com

连接WiFi

在最新的Arch Live系统中,已经安装好了用来进行WiFi连接的图形界面工具wifi-menu。我们可以用这个来连接,再也不用敲很复杂的命令了。

但是要使用wifi-menu,我们必须要先关闭网络接口,不然会用不了。

查看网络接口:

1
ip link

可能的输出如下:

1
2
3
4
5
6
7
[hakureiyoumu@archlinux ~]$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp1s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 98:ee:cb:a5:ac:e6 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
    link/ether c8:b4:22:3b:c2:21 brd ff:ff:ff:ff:ff:ff

假定wlan0就是我们的无线网卡接口。使用如下命令来关闭:

1
ip link set wlan0 down

然后启动wifi-menu:

1
wifi-menu

按照图形界面上的提示来完成连接相信并不难。

最后仍然需要启动动态IP服务来获得动态IP地址。

1
dhcpcd

命令执行成功后会自动切到后台去运行。

这时应该已经连接成功了。使用如下命令来验证连接是否成功。

1
ping www.bing.com

C. 同步系统时间

使用如下命令即可:

1
timedatectl set-ntp true

4 硬盘分区。

相信在决定安装新的操作系统的时候,你一定已经规划好了如果使用硬盘。

首先是验证启动模式

这个步骤是为了验证你的主板是否支持UEFI启动。

1
ls /sys/firmware/efi/efivars

如果结果里有内容说明是支持的。

分区

查看磁盘信息:

1
lsblk

找到要使用的那个磁盘,后面用的时候千万别输错了。

进入分区模式:(假设那个磁盘是sdx)

1
fdisk /dev/sdx

这个工具带有帮助手册,按照提示进行操作即可。常用的操作有:

  • g 创建GPT类型的分区表
  • n 创建新的分区

注意如果是采用UEFI方式,则至少要创建如下所示的两个分区。

1
2
/dev/sdx1   512M        EFI FileSystem
/dev/sdx2   238G        Linux FileSystem

格式化分区

对于EFI分区,要格式化成FAT32文件系统。

1
mkfs.fat -F32 /dev/sdx1

其它的分区,统一使用Ext4文件系统即可。

1
mkfs.ext4 /dev/sdx2

如果这个分区是在SSD磁盘上,则最好使用不带日志系统的文件系统。

1
mkfs.ext4 -O "^has_journal" /dev/sdx2

5 挂载分区。

以UEFI为例。我们要挂载主分区和EFI分区。

挂载主分区:

1
mount /dev/sdx2 /mnt

创建EFI分区的挂载点:

1
mkdir -p /mnt/esp

名字可以不叫esp,随便起,后面用的时候别忘记了。

挂载EFI分区:

1
mount /dev/sdx1 /mnt/esp

6 安装新系统的基本组件。

先选择镜像源。不同的源速度可能差异会比较大。选择较快的源自然会有更好的安装体验。

修改下面这个文件即可,通常挑选地理位置比较近的就可以。

1
/etc/pacman.d/mirrorlist

然后可以安装基本组件了。

pacstrap /mnt base linux linux-firmware

base是linux的基础包,里面有各种基本小组件。linux为内核。linux-firmware为驱动。

然后要生成fstab文件:

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

生成完了之后,别忘了看一下生成的fstab文件的内容是否正确。

fstab文件示例:

1
2
3
4
5
6
7
8
9
# Static information about the filesystems.
# See fstab(5) for details.

# <file system> <dir> <type> <options> <dump> <pass>
# /dev/sdb2
UUID=374a6b7d-07e9-4a61-9cb3-e69ca0207061       /               ext4            rw,relatime     0 1

# /dev/sdb1
UUID=3263-E4C1          /esp            vfat            rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro       0 2

看看自己的分区是不是都在里面了。

7 切换到新系统。

使用如下命令切换到新系统:

1
arch-chroot /mnt

切换之后,你所做的一切操作都相当于是在新的系统中操作的。

8 配置新系统的环境。(时区、字符集、密码等)

A. 配置时区

例如上海就是:

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

东京就是:

1
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

不知道城市的名字怎么拼的时候,可以从下面这个目录一步一步找:

1
/usr/share/zoneinfo

然后我们使用下面这个命令来根据时区同步时钟:

1
hwclock --systohc

B. 本地化

编辑下面这个文件,放开常用字符集的注释:

1
/etc/locale.gen

执行 locale-gen 以重新生成 locale 信息:

1
locale-gen

创建下面这个文件,并制定字符集。

1
2
3
/etc/locale.conf

LANG=en_US.UTF-8

编辑如下文件来使键盘布局永久生效。同样以日文键盘布局为例:

1
2
3
/etc/vconsole.conf

KEYMAP=jp106

C. 配置host文件

编辑host文件,往里面添加本机信息。

1
2
3
4
/etc/hosts

127.0.0.1   localhost
::1     localhost

D. 设置root用户密码

执行下面的命令进行设置:

1
passwd

9 在新系统中安装必备的基础软件。(如连接WiFi的软件)

为了避免我们启动到新系统之后没有软件可用,可以在这里安装一些实用的小工具。

  • 文本编辑器:vim
  • 网络连接:netctl dhcpcd dialog wpa_supplicant
  • 磁盘分区格式化工具:dosfstools
  • 下载工具:wget
  • 解压缩:unzip
  • 基础包组:base-devel

只要安装了网络连接包,这些都可以启动到新系统后再安装。

10 安装引导程序。

以最常见的grub为例吧。

先安装下面的两个软件包:

  • grub
  • efibootmgr

创建存放引导程序的目录:

1
mkdir /esp

挂载EFI分区:

1
mount /dev/sdx1 /esp

安装grub引导程序:

1
grub-install --target=x86_64-efi --efi-directory=/esp --bootloader-id=GRUB

生成配置文件:

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

大功告成。

11 启动到新系统。

现在可以重启电脑了。记得拔下Live系统的U盘。

启动后进入控制台界面,和Live系统是一样的。只不过需要输入用户名和密码才能登录。此时只有root用户可用,输入root和上面自己设定的密码进行登录。

12 连接网络。

按照和Live系统中同样的方法连接网络。

13 配置用户。

创建新的用户:

1
useradd -m youruser 

修改新用户的密码:

1
passwd youruser

加入sudo组,这样这个用户就可以通过执行sudo命令来提升权限了:

1
2
groupadd sudo
usermod -a -G sudo youruser

但是要先设定sudo组的权限才行。使用visudo命令编辑对应的配置文件,去掉sudo前面的注释。

1
2
3
4
sudo EDITOR=vim visudo

## Uncomment to allow members of group sudo to execute any command
%sudo   ALL=(ALL) ALL

14 安装基本组件。(如微码、防火墙等)

先说微码,依次安装下面这些软件即可:

  • amd-ucode
  • intel-ucode

安装完后更新grub的配置:

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

防火墙和SSH则需要安装如下软件包:

  • firewalld
  • sshd

安装完后设置为开机启动:

1
2
systemctl enable firewalld
systemctl enable sshd

至此,如果不需要图形界面环境的话就已经安装完毕了。

5. 安装桌面环境

下面介绍安装桌面环境的额外步骤:

1 安装Xorg。

安装如下软件包即可:

  • xorg

2 安装显卡驱动。

根据显卡或者CPU的厂商来选择安装:

  • xf86-video-intel // Intel核显
  • xf86-video-ati // AMD核显或者独立显卡
  • xf86-video-nouveau // 英伟达独立显卡

3 安装显示管理器。(登录界面)

随便从WiKi上选一个,这里我用的是sddm:

  • sddm

设置为开机启动:

1
systemctl enable sddm

现在千万不要着急重启,由于没有安装桌面环境。重启后会直接进入登录画面,但是又登录不进去,只能切换到另一个tty在控制台界面中进行修复了。

4 安装桌面环境或者窗口管理器。

这里选择安装KDE桌面。窗口管理器比较轻量级,但需要花费你大量的精力去配置。

可以安装如下两个包来安装KDE全家桶:

  • plasma
  • kde-applications

一旦安装了桌面包之后,显示管理器如sddm就可以检测到它们,并不需要特别做什么配置。

不过要注意kde-applications这个全家桶里面的东西比较多,很多东西都没有用。如果我们想要一个比较干净的系统,最好是不要安装这个全家桶,而只安装我们觉得有用的包。

5 安装终端程序。

如果是安装了KDE这样的全家桶,则自带终端konsole和yakuake。则这里就不用再安装了。

如果是安装的窗口管理器,则最好安装一个终端,并配置为窗口管理器的默认终端。 这样可以避免重启进入窗口管理器之后由于配置失误需要在终端中修改配置时却没有终端程序的尴尬。

推荐的终端程序是这个:

  • tilda

可以设置下拉效果和半透明效果。

6 安装中文字体。

推荐安装思源系列字体:

  • adobe-source-han-sans-otc-fonts
  • adobe-source-han-serif-otc-fonts

这套字体包含黑体和宋体,并支持中日韩三国语言。现在你可以将系统语言设置为中文了。

6. 使系统可以在其他硬件上启动

我们把Arch安装到移动硬盘或U盘之后,它只能在你安装的这台硬件上启动。当然我们是有办法让它在任何一个电脑上启动的。

我们只要做下面这几件事情就可以了。

安装尽可能多的硬件驱动

比如显卡的驱动。把AMD、Intel和英伟达的都给装了。

设置硬件自动检测

编辑下面的文件,将 block 和 keyboard 钩子移动到 autodetect 前面。这样系统才可以检测到不同的硬件配置。

1
2
3
4
5
/etc/mkinitcpio.conf

##   NOTE: If you have /usr on a separate partition, you MUST include the
#    usr, fsck and shutdown hooks.
HOOKS=(base udev block keyboard  autodetect modconf filesystems fsck)

然后我们更新系统:

1
sudo pacman -Syu

安装grub为可移动模式

1
grub-install --target=x86_64-efi --efi-directory=/esp  --removable --recheck

检验成果

现在关机然后把移动硬盘插到另外一台电脑上。你会发现可能正常识别到系统了,启动后会是自最自己配置好的熟悉的界面。