---
title: Archlinux Installation Guide
tags:
  - Linux
id: "1543"
categories:
  - - Coding
    - Operating System
date: 2017-10-18 20:00:54
---

## 准备工作

### 镜像下载 && 启动盘制作

镜像文件可以直接从[官方网站](https://www.archlinux.org/download/)上下载。

下载完成后，Windows 用户可以用 Ultraiso 制作启动盘，Linux 用户可以用 dd 制作启动盘，具体如下：

```
# dd if=*.iso of=/dev/sd*
```

其中`if`表示输入文件，`of`表示输出文件，`/dev/sd*`表示 U 盘。具体参数要根据实际情况确定。

### 开始安装 && 分区操作

使用 U 盘启动系统，进入命令行界面后，用以下命令查看硬盘状态：

```
# parted -l
```

从硬盘列表中找到希望安装到的硬盘，假设为`/dev/sda`，那么可以用以下命令进行分区操作：

```
# parted /dev/sda
```

一般来说，Linux 只需要分出`/`主分区和 swap 分区，当然也可以根据个人需要分出`/home`、`/boot`等分区。对于内存在 2GiB 以下的电脑，建议将 swap 分区的大小设为实际内存大小的 2 倍，其他电脑只需设为实际内存大小。关于 parted 的使用，这里不再赘述。

分区后需进行格式化。假设将`/dev/sda1`设为`/`主分区，`/dev/sda2`设为`/home`分区，`/dev/sda3`设为 swap 分区，执行以下命令来格式化：

```
# mkfs.ext4 /dev/sda1
# mkfs.ext4 /dev/sda2
# mkswap /dev/sda3
# swapon /dev/sda3
```

将分区挂载到 Linux 根目录下：

```
# mount /dev/sda1 /mnt
# mkdir /mnt/home
# mount /dev/sda2 /mnt/home
```

如果 BIOS 是 UEFI 的，还需要用 parted 创建 EFI 分区（假设为`/dev/sda4`），并进行以下操作：

```
# mkfs.vfat -F32 /dev/sda4
# mkdir -p /mnt/boot/efi
# mount /dev/sda4 /mnt/boot/efi
```

准备工作完成。

## 安装系统

安装过程中需要网络，可以使用以下命令连接 WiFi：

```
# wifi-menu
```

有线网的连接方法将在后面提及。

使用以下命令编辑`/etc/pacman.conf`（vim 使用方法不再赘述）：

```
# vim /etc/pacman.conf
```

在文件最后添加一段：

```
[archlinuxcn]
SigLevel = Optional TrustAll
Server   = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
```

接着，需要将`/etc/pacman.d/mirrorlist`中非 China 的源删去（因为外国源访问速度较慢）。

使用以下命令更新源：

```
# pacman -Syy
```

安装基本系统：

```
# pacstrap /mnt base base-devel
```

此过程持续时间较长，需要耐心等待。

生成 fstab：

```
# genfstab -U -p /mnt >> /mnt/etc/fstab
```

切换主目录：

```
# arch-chroot /mnt /bin/bash
```

这时命令提示符会发生变化。首先安装 vim：

```
pacman -S vim
```

接下来设置语言环境，创建`/etc/locale.conf`，添加一行`LANG=en_US.UTF-8`，修改`/etc/locale.gen`，把`en_US.UTF-8 UTF-8`、`zh_CN.GBK GBK`、`zh_CN.UTF-8 UTF-8`和`zh_CN GB2312`前面的注释去掉。使用以下命令更新语言环境：

```
# locale-gen
```

设置时间：

```
# rm /etc/localtime
# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# hwclock --systohc --utc
```

设置主机名以及 root 密码：

```
# vim /etc/hostname
# passwd
```

安装 net 工具：

```
# pacman -S net-tools dnsutils inetutils iproute2 dialog
```

安装 GRUB：

For BIOS:

```
# pacman -S grub os-prober
# grub-install --recheck /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg
```

For UEFI:

```
# pacman -S dosfstools grub efibootmgr
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck
# grub-mkconfig -o /boot/grub/grub.cfg
```

卸载分区：

```
# exit
# umount /mnt/home
# umount /mnt
# reboot
```

安装系统完成。重启后，输入 root 和密码即可进入系统。

## 基本配置

配置有线网络：

使用 ifconfig 查看网卡信息，假设有线网卡名为`eth0`。创建`/etc/systemd/network/eth0.network`，添加以下内容：

```
[Match]
Name=eth0
[Network]
Address=192.168.1.100/24
Gateway=192.168.1.1
```

创建`/etc/systemd/resolved.conf`，添加以下内容：

```
[Resolve]
DNS=114.114.114.114
```

执行以下命令：

```
# rm -f /etc/resolv.conf
# ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
# systemctl disable netctl.service
# systemctl enable systemd-networkd.service
# systemctl enable systemd-resolved.service
# reboot
```

即可正常使用有线网。

添加用户：

```
# useradd -m -k /etc/skel -G users,wheel YourName
# passwd YourName
```

安装 Xorg 以及字体：

```
# pacman -S xorg xorg-server xorg-xinit xorg-twm xtrem ttf-dejavu wqy-zenhei wqy-microhei
```

安装触摸板驱动：

```
# pacman -S xf86-input-libinput xorg-xinput
# libinput list-devices
```

安装显卡驱动：

For Intel:

```
# pacman -S xf86-video-intel
```

For NVIDIA:

```
# pacman -S xf86-video-nouveau
```

For ATi:

```
# pacman -S xf86-video-ati
```

安装压缩软件：

```
# pacman -S p7zip zip unzip rar unrar
```

安装 NTFS 支持：

```
# pacman -S ntfs-3g
```

同步网络时间：

```
# pacman -S ntp
# systemctl enable ntpd
```

安装桌面环境：

For GNOME:

```
# pacman -S gnome gnome-extra gdm
# systemctl enable gdm
```

For KDE:

```
# pacman -S plasma sddm
# systemctl enable sddm
```

For Deepin:

```
# pacman -S deepin deepin-extra lightdm
```

For i3wm:

```
# pacman -S i3-gaps i3status i3blocks i3lock
```

配置 startx：

编辑`/etc/X11/xinit/xinitrc`，注释掉以下内容：

```
twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login
```

添加以下内容：

For GNOME:

```
exec gnome-session
```

For KDE:

```
exec startkde
```

For i3wm:

```
exec i3
```

保存后就可以用`startx`进入桌面了。

## 后续优化

### yaourt

在`/etc/pacman.conf`最后添加一段：

```
[archlinuxcn]
SigLevel = Optional TrustAll
Server   = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
```

更新源，然后执行：

```
# pacman -S yaourt
```

### fcitx

使用以下命令安装 fcitx：

```
# pacman -S fcitx fcitx-im fcitx-libpinyin
```

创建`~/.xprofile`，添加一段：

```
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
```

然后使用 fcitx 设置进行配置即可。

### chromium

使用以下命令安装 chromium 以及 flash 插件：

```
# pacman -S chromium pepper-flash
```

## 总结

Archlinux 的核心理念就是 KISS 原则（Keep It Simple, Stupid）。这个原则就是让系统保持简单。而这里的简单却不是所谓的开箱即用（out-of-the-box），而是让默认的软件与配置“能少就少”。Arch 还拥有非常强大的包管理器 pacman 以及社区用户软件仓库 AUR，软件几乎应有尽有。Arch 的 wiki 也是所有发行版中做的最好最全面的。它还支持滚动升级，一次安装可以永久使用。当然，更重要的是用户可以从中学到很多：用户几乎是从零开始安装整个系统，包括硬盘分区、设置语言及时区、安装软件包等等。只有亲手操作一遍后，才会了解 Linux 发行版的安装方式。另外，因为所有软件都是用户自己安装的，如果某个软件出了问题，可以自己尝试调试，或者卸载重装，这并不会影响操作系统本身。
