# Beginners' guide (简体中文)

相关文章

- Category:Accessibility
- 安装指南
- Network Installation Guide
- Install from SSH
- 通用建议
- General troubleshooting

翻译状态： 本文是英文页面 Beginners'_Guide 的翻译，最后翻译时间：2015-03-10，点击这里可以查看翻译后英文页面的改动。

欢迎，本向导写给 Arch 新用户，但是会尽量做到成为所有用户的参考和信息库。 本文档指导您使用Arch安装脚本来安装Arch Linux：一个简单、轻量级、适合计算机水平较高用户使用的发行版。建议在安装前先浏览一下FAQ。 社区维护的 ArchWiki应该有办法解决遇到的疑难。若在其它地方找不到解决办法，IRC 频道(irc://irc.freenode.net/#archlinux-cn) 和论坛都是求助的好地方。为了贯彻Arch之道，如遇陌生的命令，可输入`man command`以查询相关`man`手册页。

### 系统需求

理论上，Arch Linux能在任何内存空间不小于 256MB 的i686兼容机上运行。最基本的base组中包含的包将占用约 800MB 存储空间。若您存储空间极度有限，可手动挑选base组中的包进行安装，前提是你必须知道你在做什么。

## 准备最新的安装媒介

小贴士: Archboot ISO 镜像可在交互式界面下安装Arch，详见 Archboot (简体中文)。

最新的官方Arch Linux安装媒介可自 Download 页获取。ISO 镜像文件仅有一个，但同时支持32位与64位构架。强烈建议始终使用最新的 ISO 镜像。

- 安装镜像有数字签名，强烈建议安装前校验签名。从 Download 页（或者镜像列表中的一项）下载 .sig 文件，把它放到和 .iso 相同的文件夹下。在Arch Linux上，以root权限运行`pacman-key -v iso-file.sig`命令；在其他环境上，以root权限运行`gpg2 --verify iso-file.sig`。安装镜像也提供了md5与sha1校验值。
- 如果没有找到公钥，gpg2校验会失败，可以通过 `gpg --recv-keys` 进行导入.

### 写入安装介质

不同安装方式请参考不同文档：

- 光驱 - 光盘烧录方法。
- U盘 - U盘安装媒介.
- 网络安装 - PXE
- 在现成 Linux 系统上安装 - 自现有发行版安装Arch,尤其是打算通过VNC或SSH来远程安装Arch时。参阅 自SSH安装
- 无网络安装 - offline installation of packages

### 在虚拟机中安装

使用虚拟机安装是熟悉Arch Linux的好办法，这种方法不会影响您当前正在运行的操作系统，甚至也不用在硬盘上重新分区。若仅想尝试一下，在虚拟机里安装一个独立的Arch Linux操作系统大有裨益。

常见的虚拟机软件可以查看 Category:Hypervisors。

各种虚拟机软件的使用步骤大同小异，一般有如下：

1. 创建虚拟硬盘镜像，用来装载操作系统
2. 适当地配置虚拟机参数
3. 将下载的 ISO 镜像作为 CD 设备启动

以下文章也许用得上：

- VirtualBox 中安装 Arch Linux
- VirtualBox#Install a native Arch Linux system from VirtualBox
- Virtualbox#Run a native Arch Linux installation inside VirtualBox
- Installing Arch Linux in VMware
- Moving an existing install into (or out of) a virtual machine

## 引导安装媒介

大多现代操作系统允许您在POST时手动设置引导设备，在开机屏幕中一般会显示需要的按键。进入BIOS设置界面后，修改设备引导顺序。把包含 Arch ISO 的设备设为系统引导首选。再选 "Save & Exit" （或您 BIOS 相应的选项），您的计算机接着应该会开始常规的引导流程了。

当Arch菜单出现时，选 "Boot Arch Linux" 并按 `Enter`进入 Live 环境以进行实质的安装（如果是UEFI引导，选项可能会是 "Arch Linux archiso x86_64 UEFI" 之类的）。

### 检查是否启动到 UEFI 模式

如果您使用 UEFI 主板，且 UEFI 启动模式（优于 BIOS/Legacy 模式）已启用，CD/USB 会自动通过 Gummiboot 启动 Arch Linux。之后会出现以下菜单：

    Arch Linux archiso x86_64 UEFI USB
    UEFI Shell x86_64 v1
    UEFI Shell x86_64 v2
    EFI Default Loader

默认选中第一项。

要确认是否已进入UEFI模式，可运行：

    # efivar -l

如果 `efivar` 列出的UEFI变量无误，说明您已进入UEFI模式。如果并不正确，请检查 UEFI 中列出的要求是否满足。

早期的设备对 UEFI 的支持并不规范，请通过主板，机型等关键字在网络和 Wiki 中进行搜索，看看有没有需要注意的事项。

### 启动问题疑难解答

- 如果 Intel 显卡黑屏，或许与KMS有关，详情参阅Intel 黑屏 和 禁用KMS。
- 若没有发生黑屏，而是在启动过程中，加载内核时死机。可在菜单上对某行按 `Tab` 编辑，在行尾加入`acpi=off`并回车。

### 键盘布局

您会看到一个zsh命令提示， grml config提供了额外的配置。

建议用`nano`编辑文本文件，如果您不太会用，参考Nano#nano_usage.

如果您想实现与 Windows 共存的双启动，详见Windows and Arch Dual Boot.

提示: 此步骤只对该安装过程生效。

键盘布局默认为`us`（美式键盘映射）。如果您正在使用非美式键盘布局，通过以下的命令选择相应的键盘映射表：

    # loadkeys layout

将 layout 转换为您的键盘布局，如`fr`，`uk`，`dvorak`或`be-latin1`。这里有国家的二位字母编码表。使用命令`localectl list-keymaps`列出所有可用的键盘布局。

要修改终端字体，请阅读 Fonts (简体中文).

## 建立网络连接

警告: 自 v197 开始，udev 不再按照 wlanX, ethX的命名格式以分配网络接口的名字。所以如果您从其他发行版转来，又或是首次接触 Arch Linux, 请勿理所当然地认为有线接口名字就是 eth0, 无线接口是 wlan0. 您可以用 `ip link` 命令查询接口的名字。

安装程序会自动运行 `dhcpcd` 守护进程以尝试有线连接。可以用 `ping` 来检查是否连通。

    # ping -c 1 t.cn

    PING t.cn (180.149.135.224) 56(84) bytes of data.
    64 bytes from 180.149.135.224: icmp_seq=1 ttl=128 time=6.31 ms

    --- t.cn ping statistics ---
    1 packets transmitted, 1 received, 0% packet loss, time 0ms
    rtt min/avg/max/mdev = 6.315/6.315/6.315/0.000 ms

如果发生 `ping: unknown host` 错误，表示网络不通。请先检查网线是否接触良好，无线信号强度是否足够好，若确定没问题，恐怕得按以下步骤手动配置网络。

若连通成功，请跳至#准备存储设备。

### 有线连接

如果您要通过静态 IP 地址连接有线网络，请遵循该章节。

首先，确定有线连接的接口名：

    # ip link

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: enp2s0f0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
        link/ether 00:11:25:31:69:20 brd ff:ff:ff:ff:ff:ff
    3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT qlen 1000
        link/ether 01:02:03:04:05:06 brd ff:ff:ff:ff:ff:ff

此例中，有线连接的接口名为 `enp2s0f0`. 如果您不太确定，那有线连接接口名一般以 "e" 开头，而不会是以 "lo" 或 "w" 开头。

需要的设置请阅读 Network_configuration#Static_IP_address。在 `/etc/dhcpcd.conf` 中设置静态dhcpcd：

    interface enp2s0f0
    static ip_address=192.168.0.10/24
    static routers=192.168.0.1
    static domain_name_servers=192.168.0.1 8.8.8.8

重启 `dhcpcd.service`:

    # systemctl restart dhcpcd.service

您现在应该成功连接有线网络。若无，详见 网络配置。

### 无线网络

警告: 网卡需要的无线接口固件包在 Live 环境中，已被预先安装到了 `/lib/firmware` 下，但是必须特别安装到实际的系统，才能在重启后启动无线网络功能！本向导的后面会介绍该固件软件包的选择和安装。请确保在重启前都已装好您的无线网卡驱动模块和固件！如果您不太明白为您特定无线网卡芯片安装固件的要求，详见 无线网络配置。

使用 netctl 的 wifi-menu 连接到无线网络:

    # wifi-menu

您现在应该成功连接无线网络。

如果有多个无线设备可以使用，需要通过下面命令确定设备名，然后作为参数传给 wifi-menu.

首先确定无线网络接口名：

    # iw dev

    phy#0
            Interface wlp3s0
                    ifindex 3
                    wdev 0x1
                    addr 00:11:22:33:44:55
                    type managed

在该示例中，使用 `wlp3s0` 接口。如果您不太确定，那无线连接接口名一般以 "w" 开头，而不会是以 "lo" 或 "e" 开头。

现在用 netctl 的 `wifi-menu` 来连接网络, 加入接口名：

    # wifi-menu wlp3s0

WPA2 Enterprise#netctl 页面提供了配置文件示例。

如果网络还不可用，可以尝试 #不用 wifi-menu 或查看 Wireless network configuration (简体中文).

#### 不用 wifi-menu

激活无线网络接口：

    # ip link set wlp3s0 up

为了检验接口是否激活成功，您可以查看以下命令的输出：

    # ip link show wlp3s0

    3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000
        link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff

`<BROADCAST,MULTICAST,UP,LOWER_UP>` 中的 `UP` 表明该接口激活成功，后面的 `state DOWN` 无关紧要。

除了驱动，大多无线网卡还需要固件。内核一般会自动探测并加载两者，如果您得到类似 `SIOCSIFFLAGS: No such file or directory` 的输出，意味着您得手动加载固件。若不确定，用 `dmesg` 查询内核日志，看看有没有来自无线网卡的固件请求。比如您有 Intel 芯片组，输出大概是这样：

    # dmesg | grep firmware

    firmware: requesting iwlwifi-5000-1.ucode

若无输出，表明系统的无线芯片不需要固件。

接下来，用 `iw dev wlp3s0 scan | grep SSID` 扫描可用的网络，并通过以下命令连接特定网络：

    # wpa_supplicant -B -i wlp3s0 -c <(wpa_passphrase "ssid" "psk")

将 ssid 替换为实际的网络名称，psk 替换为无线密码，请保留引号。

最后，用 `dhcp` 获得 IP 分配：

    # dhcpcd wlp3s0

若行不通，试试：

    # echo 'ctrl_interface=DIR=/run/wpa_supplicant' > /etc/wpa_supplicant.conf
    # wpa_passphrase ssid psk >> /etc/wpa_supplicant.conf
    # ip link set interface up
    # wpa_supplicant -B -D nl80211,wext -c /etc/wpa_supplicant.conf -i interface
    # dhcpcd -A interface

理论上第三步并非必须，但多多益善。

### xDSL(PPPoE), 模拟调制解调器或 ISDN

详见 Direct Modem Connection。

### 使用代理服务器

若通过代理服务器连接网络，您需要 export `http_proxy` 与 `ftp_proxy` 变量，详见 Proxy settings.

## 准备存储设备

警告: 分区可能会毁掉原数据。强烈建议先备份重要的数据。

此部分为新系统准备存储空间，更相信介绍请阅读Partitioning (简体中文)。

- 如果您打算安装在 USB 上，请阅读 Installing Arch Linux on a USB key.
- 如果您打算为 LVM、磁盘加密 或 RAID 创建堆栈式块设备，请在此部分加入需要的步骤。

### 识别设备

首先要确定系统安装的目标设备，下面命令会显示所有连接到系统的设备和分区状况：

    # lsblk

结果中会包含 Arch 安装设备(例如 USB 安装盘)，不是所有设备都适合安装。磁盘设备名一般以 sda, sdb 的形式出现，如果设备上有分区，会以 sda1,sda2 的名称出现。例如在下例中，只有一个设备(`sda`)，设备上只有一个分区(`sda1`):

    NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda               8:0    0    80G  0 disk
    └─sda1            8:1    0    80G  0 part

文章后面会用 `sdxY` 表示磁盘和分区，请按照您系统的实际状况修改命令。不要直接复制和执行。如果不需要重新分区，可以跳到 #创建文件系统，否则继续。

### 选择分区表类型

注意: 如果要和 Windows 通磁盘双系统启动，Arch 应该和 Windows 保持一致的启动模式和分区组合。否则 Windows 将无法启动。详见Windows and Arch Dual Boot#Important information

如果是在已有系统的机器上安装，系统已经进行了分区。如果是干净安装，根据系统是 BIOS 还是 UEFI 进行选择：

- 主引导记录（MBR）: 用于 BIOS 系统 ("msdos")
- GUID 分区表(GPT): 用于 UEFI 系统

通过下面命令可以判断出一个磁盘的分区表类型：

    # parted /dev/sdx print

### 分区工具

硬盘首先要分区，接着将分区格式化为需要的文件系统。

Arch 安装盘中包含了多种分区工具，可以根据分区表的类型进行选择：

- parted: 支持 MBR 和 GPT
- fdisk, cfdisk, sfdisk: MBR 和 GPT
- gdisk, cgdisk, sgdisk: GPT

下面例子里面使用 parted，它同时支持 BIOS/MBR 和 UEFI/GPT. 以交互模式启动，可以用`(parted) help` 查看帮助，用 `(parted) quit` 退出。

警告: 如果使用不兼容分区表格式的工具，会造成分区表损坏和所有数据丢失。
Tip: 可以在启动 Arch 安装之前先用 Live 分区系统进行分区，GParted 就很不错，它就有现成的 Live CD. 同时支持 MBR 和 GPT 分区表。

### 创建新分区表

如果设备没有分区，或者要改变分区表类型，需要新建分区表。

警告: 如果和 Windows UEFI/GPT 系统双启动，不要擦除分区表，否则所有数据都会丢失，包括 UEIF 启动分区中的 Windows .efi 启动文件。

打开需要新建分区表的设备：

    # parted /dev/sdx

为 BIOS 系统创建 MBR/msdos 分区表：

    (parted) mklabel msdos

为 UEFI 系统创建 GPT 分区表：

    (parted) mklabel gpt

### 分区方案

您可以决定磁盘应该分为多少个区，每个分区又挂载在系统的哪个目录。将分区如何映射至目录（一般称此为挂载点），取决于您的分区方案。至少需要创建一个 `/` (root) 目录，有些分区类型和 启动加载器组合有额外的分区要求：

- BIOS/GPT + GRUB: 需要按照 BIOS 启动分区设置 的方式创建一个 1M 或 2M 的 `EF02` 类型分区.
- UEFI/GPT: 一个 EFI 系统分区.
- UEFI/MBR: 一个 EFI 系统分区.
- 如果您需要加密磁盘，则必须加以调整分区方案。系统安装后，也可以再配置加密文件夹，容器或 home 目录。

系统需要需要 `/boot`、`/home` 等目录， Arch 文件系统架构 有各目录的详细介绍。如果没有创建单独的`/boot` 或 `/home` 分区，这些目录直接放到了根分区下面。后面会介绍如何创建 交换分区。

### 用 parted 进行分区

用下面命令打开 parted 交互模式：

    # parted /dev/sdx

用下面命令创建分区：

    (parted) mkpart part-type fs-type start end

- `part-type` 是分区类型，可以选择 `primary`, `extended` 或 `logical`，仅用于 MBR 分区表.
- `fs-type` 是文件系统类型，所有支持的类型列表 这里. 参阅#创建文件系统 部分.
- `start` 是分区的起始位置，可以带单位, 例如 `1M` 指 1MiB.
- `end` 是设备的结束位置(不是 与 `start` 值的差)，同样可以带单位，也可以用百分比，例如 `100%` 表示到设备的末尾。
- 为了不留空隙，分区的开始和结束应该首尾相连。

如果看到下面警告：

    Warning: The resulting partition is not properly aligned for best performance.
    Ignore/Cancel?

表示分区没 对齐，请按照 GNU Parted#Alignment 进行修正。

下面命令设置 `/boot` 为启动目录：

    (parted) set partition boot on

- `partition` 是分区的编号，从 `print` 命令获取。

#### UEFI/GPT 示例

首先需要一个 EFI 系统分区.如果是和 Windows 双系统启动，此分区已经存在，不要重新创建。

用下面命令创建分区 (建议大小是 512MiB)。

    (parted) mkpart ESP fat32 1M 513M
    (parted) set 1 boot on

剩下的空间可以按需要创建，root 占用全部 100% 剩余空间：

    (parted) mkpart primary ext3 513M 100%

`/` (20GiB)，剩下的给 `/home`：

    (parted) mkpart primary ext3 513M 20.5G
    (parted) mkpart primary ext3 20.5G 100%

创建 `/` (20GiB), swap (4Gib), 剩下给 `/home`：

    (parted) mkpart primary ext3 513M 20.5G
    (parted) mkpart primary linux-swap 20.5G 24.5G
    (parted) mkpart primary ext3 24.5G 100%

#### BIOS/MBR 示例

单根目录分区：

    (parted) mkpart primary ext3 1M 100%
    (parted) set 1 boot on

20Gib `/` 分区，剩下的给 `/home`：

    (parted) mkpart primary ext3 1M 20G
    (parted) set 1 boot on
    (parted) mkpart primary ext3 20G 100%

`/boot` (100MiB), `/` (20Gib), swap (4GiB) 剩下的给 `/home`:

    (parted) mkpart primary ext3 1M 100M
    (parted) set 1 boot on
    (parted) mkpart primary ext3 100M 20G
    (parted) mkpart primary linux-swap 20G 24G
    (parted) mkpart primary ext3 24G 100%

### 创建文件系统

仅仅分区是不够的，还需要 `mkfs` 将分区格式化为指定的文件系统。

先查看所有分区：

    # lsblk /dev/sdx

如果新创建了 UEFI 系统分区，需要格式化成 `fat32` 或 `vfat32` 文件系统，否则无法启动。Windows 双启动系统不要格式化。

    # mkfs.vfat -F32 /dev/sdxY

建议用 `ext4` 文件系统格式化其它分区：

    # mkfs.ext4 /dev/sdxY

若您分了一个 swap 区，也不要忘了格式化并启用它：

    # mkswap /dev/sdaX
    # swapon /dev/sdaX

### 挂载分区

注意: 不要在这里挂载 swap

必须先挂载 `/` (root) 分区，其它目录都要在 / 分区中创建然后再挂载。在安装环境中用 `/mnt` 目录挂载 root：

    # mount /dev/sdxR /mnt

然后挂载其余单独分区，比如 `/boot`，`/var`。先创建目录，然后挂载分区：

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

建议将 EFI 系统分区挂载到 `/boot`，其它方式参阅EFISTUB。

    # mkdir -p /mnt/boot
    # mount /dev/sdXY /mnt/boot

挂载好设备，就可以安装 Arch 了.

## 选择安装镜像

安装前需要编辑 `/etc/pacman.d/mirrorlist`, 将偏好的镜像放到最前面。mirrorlist 文件也会被 `pacstrap` 复制到新系统，所以最好现在就设置，以中科大源为例：

    # nano /etc/pacman.d/mirrorlist

    ##
    ## Arch Linux repository mirrorlist
    ## Sorted by mirror score from mirror status page
    ## Generated on 2012-MM-DD
    ##

    Server = http://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
    ...

如果您愿意，您可以只使用一个镜像并全删光其他行，但为保险，还是留其他几个离您较近的镜像作备用好。 更改镜像列表后请务必使用 `pacman -Syy` 强制刷新，详见 Mirrors_(简体中文).

提示:

- 使用镜像列表生成器可自动根据更新状况生成离您比较近的镜像列表。由于 keepalive, HTTP 镜像要比 FTP 快得多。若使用 FTP 镜像，pacman 在下载每一个包的时候都会发送一个信号，导致短暂的停顿。至于更多生成镜像列表的方法，详见 镜像排序 和 Reflector_(简体中文)。
- Arch Linux 镜像状态报告了各镜像的状态，包括网络状态、数据收集状态和最新同步时间等。

## 安装基本系统

使用 pacstrap 来安装基本系统。如果您不想手动选择安装哪个包，忽略 `-i` 即可。如果您想通过 AUR (简体中文) 或者 ABS (简体中文) 编译安装软件包,需要装上 base-devel：

    # pacstrap -i /mnt base base-devel

注意:

- 若运行 `pacstrap` 时卡住并出现 `failed retrieving file 'core.db' from mirror... : Connection time-out` 字样，又确认镜像的设置没问题，请尝试手动更换 DNS；
- 如果安装的时候请求 PGP key，允许其下载 Key，如果您使用的 Arch ISO 过期就可能会出现该问题。如果安装 PGP key 出错，请尝试更新软件包 archlinux-keyring: `pacman -S archlinux-keyring`

此章节会给您安装好最基本的 Arch 系统，其它软件以后会用 pacman (简体中文) 安装得到。

## 生成 fstab

用以下命令生成 fstab. 之所以用 UUID 是因为它们能唯一且独立地标识，详见 fstab#Identifying filesystems. 如果您想用卷标，用 `-L` 代替 `-U` 即可。

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

警告: 强烈建议在生成 fstab 后检查一下是否正确。若在运行 genfstab 或是之后发生错误，请勿再次运行 genfstab, 而是直接手动编辑 `fstab` 文件。
小贴士: fstab, file systems table 的缩写，是系统配置的一部分。该文件列出所有可用的磁盘和分区，并指明它们初始化或整合至全局文件系统的方式。`/etc/fstab` 文件一般被 `mount` 命令读取，`mount` 以设备上的文件系统为参数，将其添加到主目录结构。在启动过程执行到四分之三左右的时候，会调用 `mount -a`, `mount -a` 读取 `/etc/fstab` 以确定挂载时使用的选项。如果 `noauto` 位于 `/etc/fstab` 中的文件系统挂载参数之后，`mount -a` 不会在启动时挂载它。仅根分区需要在最后使用 `1`, 其它可以使用 `2` 或 `0`, 详见 fstab 字段定义。

- 最后一列决定分区在启动时进行磁盘检查的顺序。只有非 btrfs 格式的根分区 `/` 需要将最后一列设为 `1`, 其它应该为 `2`, 以表明在启动时检查，或是 `0`, 以表明不检查。详见 fstab 字段定义)。
- Btrfs 和 swap 分区的最后一列须设置成 `0`.

## Chroot 并开始配置新系统

下面要 chroot 到新系统：

    # arch-chroot /mnt /bin/bash

从现在开始，我们会通过编辑文件以配置系统。所以若文件不存在，手动创建，或者您也可以加以编辑已存在的文件，以修改默认参数。

充分理解并老实按一步一步来，是保证系统配置成功的关键。

### Locale

本地化的程序与库若要本地化文本，都依赖 locales, 后者明确规定地域、货币、时区日期的格式、字符排列方式和其他本地化标准等等。在下面两个文件设置：`locale.gen` 与 `locale.conf`.

`/etc/locale.gen`是一个仅包含注释文档的文本文件。指定您需要的本地化类型，只需移除对应行前面的注释符号（`＃`）即可，建议选择帶`UTF-8`的項：

    # nano /etc/locale.gen

    en_US.UTF-8 UTF-8
    zh_CN.UTF-8 UTF-8
    zh_TW.UTF-8 UTF-8

接着执行`locale-gen`以生成locale讯息：

    # locale-gen

`/etc/locale.gen` 生成指定的本地化文件，每次 glibc 更新之后也会运行 `locale-gen`。

创建 `locale.conf` 并提交您的本地化选项：

Tip: 将系统 locale 设置为`en_US.UTF-8`，系统的 Log 就会用英文显示，这样更容易问题的判断和处理。用户可以设置自己的 locale，详情参阅Locale#Per user.

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

警告: 不推荐在此设置任何中文locale，或导致tty乱码。
提示:

- 每次更新 glibc 时也会自动执行这个命令
- 所提交的 `LANG` 变量，要事先已在 `/etc/locale.gen` 反注释好
- `locale.conf` 默认不存在。一般来说只设置 `LANG` 一般足够矣，因为它会覆盖掉其它所有变量。若要特别指定某个变量，先运行 `locale` 查看可用选项，详见 Locale_(简体中文).

### 终端字体和键盘映射

提示: 对于大多中文用户，可忽略此章节。

如果您在#修改语言 时就已修改键盘布局和字体过，您就得再相应地编辑 `/etc/vconsole.conf` 以使该变动对新系统生效，比如：

    # nano /etc/vconsole.conf

    KEYMAP=de-latin1
    FONT=lat9w-16

警告: 如果您设置的 `KEYMAP` 与 loadkeys' 变量并不一样，那当您 #Set the root password 并重启后，可能没法再正常登录新系统了，因为一些键在两种布局的映射下并不一致。

此章节只对您的虚拟终端生效，即对 Xorg 无效，详见 Console fonts.

### 时区

可用的时区全集中在 `/usr/share/Zone/SubZone` 目录里了，

所以要查看可用时区，直接浏览 `/usr/share/zhoninfo` 即可：

    # ls /usr/share/zoneinfo/

同理，您也可以查看子目录下的可用时区：

    # ls /usr/share/zoneinfo/Europe

将 `/etc/localtime` 软链接到 `/usr/share/zoneinfo/Zone/SubZone`：

    # ln -s /usr/share/zoneinfo/Zone/SubZone /etc/localtime

以上海为例：

    # ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

注意: 如果提示 `ln: failed to create symbolic link '/etc/localtime': File exists`，用 `ls -l /etc/localtime` 检查存在的文件并向 ln 添加 `-f` 选项来覆盖它。

### 硬件时间

计算机的所有操作系统都会根据硬件时钟确定当前时间，要么按照 UTC 时间解读，要么按照本地时间解读。所以要统一机器上所有系统的硬件时间模式，否则可能会发生冲突。

建议所有操作系统都把硬件时间设置成 UTC 时间，如果设置成本地时间，多个操作系统可能会同时进行夏令时调节，造成重复修正。在不同时区旅行时也可能造成本地时间错误。

可以用下面命令自动生成 `/etc/adjtime`, 将硬件时间设置为 UTC

    # hwclock --systohc --utc

  提示: 硬件时钟使用 UTC，并不代表软件显示的时间也是 UTC. 只是 BIOS 设置界面里面的显示才会变化。

      # hwclock --systohc --utc

警告: Windows 系统默认使用 localtime，把 Arch linux 设置成 localtime 会导致一些无法修正的问题。所以强烈建议将 Windows 设置成 UTC 时间，并停止自动时间调整。参阅Time#UTC in Windows.

### 内核模块

一般情况下 udev 会自动加载所有必需模块，所以您几乎不需要再做什么了，当且只当您确认缺乏特定模块时就动手添加。详情参阅Kernel modules。

### Hostname

设置个您喜欢的主机名，例如：

    # echo myhostname > /etc/hostname

并在 `/etc/hosts` 添加同样的主机名：

    #<ip-address>	<hostname.domain.org>	<hostname>
    127.0.0.1	localhost.localdomain	localhost	myhostname
    ::1		localhost.localdomain	localhost	myhostname

### 配置网络

您又得再次配置网络，但这次是为您所安装的新系统而配置。 该过程与#建立网络连接基本一致，只不过该配置在新系统每次开机时都会自动生效。

还是老路子，用 `ip link` 确认下您的网络接口名。

注意: 了解更多网络配置相关信息，请访问 Network_Configuration_(简体中文) 及 Wireless network configuration (简体中文).

#### 有线网络

##### 动态 IP

使用 dhcpcd

如果您只用单一且固定的有线网络连接，也不要网络管理服务的话，一劳永逸地启动 `dhcpcd` 服务就好了，`interface_name` 是您的网络接口名：

    # systemctl enable dhcpcd@interface_name.service

使用 netctl

从 `/etc/netctl/examples` 复制个配置样本到 `/etc/netctl`:

    # cd /etc/netctl
    # cp examples/ethernet-dhcp my_network

再按需编辑配置文件，也别忘了修改 Interface 为实际的接口名。

    # nano my_network

启用 `my_network` 配置：

    # netctl enable my_network

注意: 您也许会收到 "Running in chroot, ignoring request", 直接忽略即可

使用 netctl-ifplugd

警告: 不要将这种方式同时与 `netctl enable profile` 使用。

您还可以用 `netctl-ifplugd`, 它能很好地处理对新网络的动态连接。

安装 ifplugd, `netctl-ifplugd` 要用到它：

    # pacman -S ifplugd

接着在相应接口上激活：

    # systemctl enable netctl-ifplugd@interface_name.service

提示: Netctl 亦提供了 `netctl-auto`, 可以与 `netctl-ifplugd` 一起管理无线网络配置。

##### 静态 IP

使用 netctl

从 `/etc/netctl/examples` 复制个配置样本到 `/etc/netctl`:

    # cd /etc/netctl
    # cp examples/ethernet-static my_network

按需配置配置文件，即修改 `Interface`, `Address`, `Gateway` 和 `DNS`) 参数：

    # nano my_network

`Address`中的 `/24` 为掩码 `255.255.255.0` 的 CIDR 标记方式。

启用 `my_network` 配置：

    # netctl enable my_network

使用 systemd-networkd

详见 systemd-networkd.

#### 无线网络

注意: 如果您的无线网卡需要固件，如同#无线网络 和 Wireless network configuration#Device driver 一样，安装包含您所需固件的软件包。linux-firmware 一般应该会提供了您所需要的固件。至于其他网卡，它们的固件可能独立于其它包中，比如：

    # pacman -S zd1211-firmware

详见 Wireless_network_configuration#Installing_driver.2Ffirmware.

安装 iw 和 wpa_supplicant, 您要靠它们连网：

    # pacman -S iw wpa_supplicant

##### 添加无线网络

使用 wifi-menu

安装 dialog, `wifi-menu` 要用到它：

    # pacman -S dialog

完成以下并重启之后，您可以使用 `wifi-menu interface_name` 来连网，`interface_name` 是您的无线网络接口名。或者直接执行：

    # wifi-menu

警告: 你一定要确保该命令是在电脑重新启动以后执行的。否则这个命令会和您在 chroot 之前执行的命令冲突。此外，您还可以使用以下模版来配置一份网络设置文件，这样您就不用担心 `wifi-menu` 命令的问题了。

使用人工 netctl 配置文件

从 `/etc/netctl/examples` 复制个配置样本到 `/etc/netctl`:

    # cd /etc/netctl
    # cp examples/wireless-wpa my_network

按照需要修改模版，即参数 (`Interface`、`ESSID` 与 `Key`):

    # nano my_network

自动启动：

    # netctl enable my_network

##### 自动连接到已知网络

警告: 不要同时使用该方案和已启用的无线连接配置文件 profile, 比如 `netctl enable profile`.

安装 wpa_actiond, `netctl-auto` 要用到它：

    # pacman -S wpa_actiond

激活 `netctl-auto` 服务，它会自动连接到已知网络，并且出色地处理重新连接于漫游：

    # systemctl enable netctl-auto@interface_name.service

提示: Netctl 亦提供 `netctl-ifplugd`, 它可以和 `netctl-auto` 同时使用，以处理自动有线连接。

#### 调制解调器，ISDN 或 xDSL(PPPoE)

详见 Direct Modem Connection。

### 创建初始 ramdisk 环境

注意: 大多用户可跳过该章节。该出自 `/boot` 目录的 initramfs 镜像在您用 pacstrap 安装 {linux 时就自动生成了。

如果您的根分区位于 USB, RAID, LVM, 多设备 btrfs 根池，或者 `/usr` 是一个单独的分区时，您需要正确地配置 hooks。

按需编辑 `/etc/mkinitcpio.conf` 并使用以下命令重新产生 initramfs 镜像：

    # mkinitcpio -p linux

### 设置 Root 密码

用 `passwd` 设置一个 root 密码：

    # passwd

### 安装并配置 bootloader

#### 对于 BIOS 主板

BIOS 用户有多种 bootloader 可选，完整列表在 Boot loaders#Both_BIOS_and_UEFI_boot_loaders. 选一个用起来顺手的，这里只列出两种最常用的 bootloader 以作示范：

- Syslinux (简体中文) 目前只能加载它所安装的硬盘上的文件。它的配置文件相对来说比较好理解。模版参见 syslinux 条目。
- GRUB (简体中文) 功能丰富且支持更复杂的情境。它的配置文件更像是一种脚本语言，对新手来说可能用起来困难一些。我们推荐您使用其自动产生的配置文件。

下面介绍在 MBR 系统上使用 Grub。安装 grub 包，并执行 `grub-install`:

    # pacman -S grub
    # grub-install --target=i386-pc --recheck /dev/sda

注意:

- 须根据实际分区自行调整 `/dev/sda`, 切勿在块设备后附加数字，比如 `/dev/sda1` 就不对。
- 一个样例文件会作为 grub 包的一部分安装到 `/boot/grub/grub.cfg`, `grub-*` 系列命令或许不会覆盖之。请确认您改动的是 `grub.cfg` 文件而非 `grub.cfg.new` 这样的文件。

下面命令会自动生成配置文件，若想自动检测硬盘上安装的其它操作系统，请在执行下面命令前先安装 os-prober, 即 `pacman -S os-prober`.

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

#### 对于 UEFI 主板

对于 UEFI 引导器，这里有多个选择。完整的列表参见 Boot loaders. 请先选择一个用起来可能顺手的，在此列出几个常用的选择：

- gummiboot 是一个小型 UEFI 引导管理器，提供一个基本的 EFISTUB 内核与其他 UEFI 应用的菜单。我们推荐新手使用这种 UEFI 引导方式，尤其是对于要和 Win8 双启动的系统。
- GRUB#UEFI_systems 是一个更加完整的引导器，可作为 gummiboot 不能正确引导的备用解决方案。

不论您选哪一种 bootloader, 请安装 dosfstools 以便在安装之后继续维护 EFI 系统分区。安装efibootmgr 创建可启动的 `.efi` 文件(bootmanager 安装脚本会使用)

    # pacman -S dosfstools efibootmgr

注意: 对于 UEFI 引导模式，磁盘需要有 GPT 分区表和 Unified Extensible Firmware Interface#EFI 系统分区，FAT32 格式，512 MiB 或更大，gdisk type 为 `EF00`). 在以下示范中，假设 ESP 被挂载至 `/boot`.

##### Gummiboot

Note: 强烈建议讲 EFI 系统分区挂载到 `/boot`，这样可以自动更新 Gummiboot.

安装 gummiboot, 执行 `gummiboot install` 以安装 bootloader 至 EFI 系统。把`$esp` 替换为 EFI 系统分区挂载点，通常是 `/boot`:

    # pacman -S gummiboot
    # gummiboot --path=$esp install

Gummiboot 会自动检测 `bootx64.efi` 需要的文件并放入 `$esp/EFI/boot`, 如果检查到其它操作系统的 `.efi` 也会同样处理。但是仍然需要手动创建 Gummiboot 配置文件.

创建 `$esp/loader/entries/arch.conf` 并添加以下内容，别忘了把 `/dev/sdaX` 改为您的实际根分区，例如`/dev/sda1`:

    # nano $esp/loader/entries/arch.conf

    title          Arch Linux
    linux          /vmlinuz-linux
    initrd         /initramfs-linux.img
    options        root=/dev/sdaX rw

然后创建 `$esp/loader/loader.conf`，并写入下面配置:

    # nano $esp/loader/loader.conf

    default  arch
    timeout  5

详见 gummiboot.

##### GRUB

安装 grub, 再执行 `grub-install` 来安装 bootloader. 把`$esp` 替换为 EFI 系统分区挂载点，通常是 `/boot`:

    # pacman -S grub efibootmgr
    # grub-install --target=x86_64-efi --efi-directory=$esp --bootloader-id=arch_grub --recheck

下一步，尽管手动生成`grub.cfg` 完全可行，不过对于新手来说我们还是推荐自动化生成：

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

如果安装后仍然无法启动,请参阅 GRUB (简体中文)。

### 卸载分区并重启系统

离开 chroot 环境：

    # exit

Note: While partitions are unmounted automatically by systemd on shutdown, you may do so manually with `umount -R /mnt` as a safety measure. If the partition is "busy", you can find the cause with fuser.

重启计算机：

    # reboot

移除安装媒介，并还原 BIOS 中的启动选项。可以用 root 用户和设置的密码登录.

## 安装之后

您现在应该有了一个完全可用的 Arch 系统，以此为起点，您可以将这些优雅的工具加以改造成理想的样子。强烈建议您阅读 General recommendations (简体中文)，特别是前两个部分.

请继续阅读 General recommendations (简体中文) 的剩余页面，它包含了安装后的众多教程，包括设置图形用户界面，声卡和触摸板等等。

如果想捣鼓一大堆应用程序，详见 List of Applications (简体中文).

Arch Linux 中文化 页面还包含了关于系统、软件中文支持的内容。

Category:

- Getting and installing Arch (简体中文)