Arch Linux Beginners’ guide (简体中文)


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

准备


理论上,Arch Linux能在任何内存空间不小于 256MB 的i686)兼容机上运行。最基本的base组中包含的包将占用约 800MB 存储空间。官方Arch Linux安装媒介的准备方法在此分类)中介绍,建议始终使用最新的 ISO 镜像。

引导安装媒介


让系统从 Arch 安装介质中启动。大多现代操作系统允许您在POST时手动设置引导设备,在开机屏幕中一般会显示需要的按键。进入BIOS设置界面后,修改设备引导顺序。把包含 Arch ISO 的设备设为系统引导首选。再选 “Save & Exit” (或您 BIOS 相应的选项),您的计算机接着应该会开始常规的引导流程了。
当Arch菜单出现时,选 “Boot Arch Linux” 并按 Enter进入安装环境。启动参数#.E9.85.8D.E7.BD.AE)页面提供了额外的参数修改。
启动完成后会以 root 登录并进入zsh)命令提示, grml config提供了额外的配置。编辑配置文件时可以使用 nanovim

UEFI 模式

如果您使用 UEFI) 主板,且 UEFI 启动模式(优于 BIOS/Legacy 模式)已启用,CD/USB 会自动通过systemd-boot 启动 Arch Linux。要确认是否已进入UEFI模式,检查下面目录是否有文件:
# ls /sys/firmware/efi/efivars
详情参阅 UEFI#UEFI Variables
早期的设备对 UEFI 的支持并不规范,请通过主板,机型等关键字在网络和 Wiki 中进行搜索,看看有没有需要注意的事项。

设置键盘布局

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

控制台键盘布局 默认为us(美式键盘映射)。如果您正在使用非美式键盘布局,通过以下的命令选择相应的键盘映射表:

  1. # loadkeys layout

将 layout 转换为您的键盘布局,如frukdvorakbe-latin1。这里有国家的二位字母编码表。使用命令localectl list-keymaps列出所有可用的键盘布局。
要修改终端字体,请阅读 Fonts (简体中文)).

连接到因特网

有线连接

安装程序会在启动时自动运行 dhcpcd 守护进程以尝试有线连接。需要网页验证的网络可以通过ELinks浏览器进行登录。
可以用 ping 命令检查网络是否正常,如果网络不可用,需要 手动配置网络)。下面用 netctl 做示例。
为了防止冲突,首先停用 dhcpcd 服务,将 enp0s25 替换为正确的有线接口:

  1. # systemctl stop dhcpcd@enp0s25.service

要保存设置,在配置基本系统之前将修改过的文件复制到新系统中。详见 。Category:Network configuration包含了其它配置方法,比如拨号连接。
网络设备名可以通过 ip linkiw dev(无线网络)可以查到设备名称。通常以 en (ethernet), wl (WLAN) 或 ww (WWAN)开头。

无线网络连接

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

  1. # wifi-menu -o wlp2s0

生成的配置文件位于 /etc/netctl中,对于需要用户名和密码的网络,请参考 WPA2 Enterprise#netctl 页面。
如果网络还不可用,可以尝试手动配置网络,除了驱动,大多无线网卡还需要固件。按照 检查驱动状态中列出的方法设置无线固件。然后按照手动设置 中的步骤配置网络。iwwpa_supplicant 都已经位于安装介质中。

其它

有其它配置示例, 静态 IP 地址,将 netctl 示例文件复制到 /etc/netctl

  1. # cp /etc/netctl/examples/ethernet-static /etc/netctl

然后启用配置:

  1. # netctl start ethernet-static

更新系统时间

systemd-timesyncd 确保系统时间是正确的:

  1. # timedatectl set-ntp true

timedatectl status 检查服务状态.详情阅读 Time (简体中文)).

准备存储设备


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

此部分为新系统准备存储空间,更详细的介绍请阅读Partitioning (简体中文))。

识别设备

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

  1. # lsblk

结果中会包含 Arch 安装设备(例如 USB 安装盘),不是所有设备都适合安装。磁盘设备名一般以 sda, sdb 的形式出现,如果设备上有分区,会以 sda1,sda2 的名称出现。rom, loopairoot 格式的分区可以忽略。
文章后面会用 sdxY 表示磁盘和分区,请按照您系统的实际状况修改命令。不要直接复制和执行。如果不需要重新分区,可以跳到 #创建文件系统,否则继续。

分区工具

硬盘首先要分区),接着将分区格式化为需要的文件系统)。
有两种分区类型:

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

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

警告: 如果使用不兼容分区表格式的工具,会造成分区表损坏和所有数据丢失。

下面例子里面使用 parted,它同时支持 BIOS/MBR 和 UEFI/GPT. 以交互模式启动,可以用 (parted) help 查看帮助,用 (parted) quit 退出。
可以在启动 Arch 安装之前先用 Live 分区系统进行分区,GParted 就很不错,它就有现成的 Live CD.

创建新分区表

如果设备没有分区,或者要改变分区表类型,需要新建分区表。
打开需要新建分区表的设备:

  1. # parted /dev/sdx

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

  1. (parted) mklabel msdos

为 UEFI 系统创建 GPT 分区表:

  1. (parted) mklabel gpt

分区方案

您可以决定磁盘应该分为多少个区,每个分区又挂载在系统的哪个目录。将分区如何映射至目录(一般称此为挂载点),取决于您的分区方案#.E5.88.86.E5.8C.BA.E6.96.B9.E6.A1.88)。

  • 至少需要创建一个 / (root) 目录,有些分区类型和 启动加载器)组合有额外的分区要求:
  • BIOS/GPT + GRUB: 需要按照 BIOS 启动分区设置 的方式创建一个 1M 或 2M 的 EF02 类型分区.
  • UEFI 的主板,需要一个 EFI 系统分区.
  • 如果您需要加密磁盘,则必须加以调整分区方案。系统安装后,也可以再配置加密文件夹,容器或 home 目录。

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

用 parted 进行分区

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

  1. # parted /dev/sdx

用下面命令创建分区:

  1. (parted) mkpart part-type fs-type start end
  • part-type 是分区类型,可以选择 primary, extendedlogical,仅用于 MBR 分区表.
  • fs-type 是文件系统类型,所有支持的类型列表在 这里. 这里并不会实际创建文件系统,而是把分区的编码类型写入到磁盘供启动管理器使用。参阅 Wikipedia:Disk partitioning#PC partition types.
  • start 是分区的起始位置,可以带单位, 例如 1M 指 1MiB.end 是设备的结束位置(不是 与 start 值的差),同样可以带单位,也可以用百分比,例如 100% 表示到设备的末尾。
  • end 是设备的结束位置(不是 与 start 值的差),同样可以带单位,也可以用百分比,例如 100% 表示到设备的末尾。
  • 为了不留空隙,分区的开始和结束应该首尾相连。

如果看到下面警告:

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

表示分区没 对齐,请按照 GNU Parted#Alignment 进行修正。
下面命令设置 /boot 为启动目录:

  1. (parted) set partition boot on
  • partition 是分区的编号,从 print 命令获取。

UEFI/GPT 示例

首先需要一个 EFI 系统分区.如果是和 Windows 双系统启动,此分区已经存在,不要重新创建。
用下面命令创建分区 (建议大小是 512MiB)。

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

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

  1. (parted) mkpart primary ext4 513M 100%

/ (20GiB),剩下的给 /home

  1. (parted) mkpart primary ext4 513M 20.5G
  2. (parted) mkpart primary ext4 20.5G 100%

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

  1. (parted) mkpart primary ext4 513M 20.5G
  2. (parted) mkpart primary linux-swap 20.5G 24.5G
  3. (parted) mkpart primary ext4 24.5G 100%

BIOS/MBR 示例

单根目录分区:

  1. (parted) mkpart primary ext4 1M 100%
  2. (parted) set 1 boot on

20Gib / 分区,剩下的给 /home

  1. (parted) mkpart primary ext4 1M 20G
  2. (parted) set 1 boot on
  3. (parted) mkpart primary ext4 20G 100%

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

  1. (parted) mkpart primary ext4 1M 100M
  2. (parted) set 1 boot on
  3. (parted) mkpart primary ext4 100M 20G
  4. (parted) mkpart primary linux-swap 20G 24G
  5. (parted) mkpart primary ext4 24G 100%

格式化文件系统并使用swap

仅仅分区是不够的,还需要 mkfs 将分区格式化为指定的文件系统)。
先查看所有分区:

  1. # lsblk /dev/sdx

如果新创建了 UEFI 系统分区,需要格式化成 fat32vfat32 文件系统,否则无法启动。Windows 双启动系统不要再格式化。

  1. # mkfs.vfat -F32 /dev/sdxY

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

  1. # mkfs.ext4 /dev/sdxY

若您分了一个 swap) 区,也不要忘了格式化并启用它:

  1. # mkswap /dev/sdaX
  2. # swapon /dev/sdaX

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

  1. # mount /dev/sdxR /mnt

然后挂载其余单独分区(除了 Swap),比如 /boot/var。先创建目录,然后挂载分区:

  1. # mkdir /mnt/home
  2. # mount /dev/sda2 /mnt/home

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

  1. # mkdir -p /mnt/boot
  2. # mount /dev/sdXY /mnt/boot

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

安装


选择安装镜像

如果想要安装某个软件,必须先从 /etc/pacman.d/mirrorlist 中定义的镜像站中下载安装包到本地。在live系统里,该文件中所有的镜像站都默认开启,并且按照镜像系统被创建时各镜像站的与官方镜像站的同步状态和速度来排序。
当系统在下载软件包的时候,列表中排的越靠前的镜像站优先级越高。你可以手动调整/etc/pacman.d/mirrorlist文件来将地理位置上离你比较近的镜像站放在文件最开头,当然,调整该文件应该以获得尽量大的下载速度为主要的标准,参考 Mirrors 来获取更多信息。
mirrorlist 文件也会被 pacstrap 复制到新系统,所以最好现在就设置,以中科大源为例:

  1. # nano /etc/pacman.d/mirrorlist
  2. Server = http://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch

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

安装基本软件包

使用 pacstrap 来安装基本系统。如果您想通过 AUR (简体中文)) 或者 ABS (简体中文)) 编译安装软件包,需要装上 base-devel

  1. # pacstrap -i /mnt base base-devel

使用 -i 选项时会在实际安装前进行确认。此章节会给您安装好最基本的 Arch 系统,其它软件以后会用 pacman (简体中文)) 安装得到。

配置


fstab

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

  1. # genfstab -U -p /mnt >> /mnt/etc/fstab

强烈建议 在执行完以上命令后,后检查一下生成的 /mnt/etc/fstab 文件是否正确。若在运行 genfstab 或是之后发生错误,后续修改请直接手动编辑 fstab 文件。详见 fstab

chroot

将配置文件复制到/mnt的新系统 (例如 netctl 配置文件在 /etc/netctl), 然后 chroot) 到新系统:

  1. # arch-chroot /mnt /bin/bash

Locale

本地化的程序与库若要本地化文本,都依赖 Locale, 后者明确规定地域、货币、时区日期的格式、字符排列方式和其他本地化标准等等。在下面两个文件设置:locale.genlocale.conf.
/etc/locale.gen是一个仅包含注释文档的文本文件。指定您需要的本地化类型,只需移除对应行前面的注释符号()即可,建议选择帶UTF-8的項:

  1. # nano /etc/locale.gen
  2. en_US.UTF-8 UTF-8
  3. zh_CN.UTF-8 UTF-8
  4. zh_TW.UTF-8 UTF-8

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

  1. # locale-gen

/etc/locale.gen 生成指定的本地化文件,每次 glibc 更新之后也会运行 locale-gen
创建 locale.conf 并提交您的本地化选项:

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

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

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

终端字体和键盘映射

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

如果您在#设置键盘布局#.E8.AE.BE.E7.BD.AE.E9.94.AE.E7.9B.98.E5.B8.83.E5.B1.80) 时就已修改键盘布局和字体过,您就得再相应地编辑 /etc/vconsole.conf 以使该变动对新系统生效,比如:

  1. /etc/vconsole.conf
  2. KEYMAP=de-latin1
  3. FONT=lat9w-16

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

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

时间

可用的时区全集中在 /usr/share/Zone/SubZone 目录里了。选择时区:

  1. # tzselect

/etc/localtime 软链接到 /usr/share/zoneinfo/Zone/SubZone,以上海为例:

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

建议设置时间标准 为 UTC,并调整 时间漂移:

  1. # hwclock --systohc --utc

系统上安装的其它操作系统也应该一起调整。

创建初始 ramdisk 环境

在您用 pacstrap 安装 {linux 时就会自动运行 mkinitcpio,大部分用户都可以使用 mkinitcpio.conf 默认设置,如果有定制需求,请阅读re-generate the initramfs image。然后运行:

  1. # mkinitcpio -p linux

设置 Root 密码

passwd 设置一个 root 密码:

  1. # passwd

安装 bootloader

Boot loaders (简体中文)) 包含了可用选项和相应的配置. Intel CPU 也需要安装 intel-ucode 并根据 Microcode 配置 boot loader.

UEFI/GPT

安装程序假定系统使用 GPT 分区表,具有 Unified Extensible Firmware Interface#EFI 系统分区,FAT32 格式,512 MiB 或更大,gdisk type 为 EF00). EFI 系统分区挂载到 /boot
安装 systemd-boot 到 EFI 系统分区:

  1. # bootctl install

当成功执行以上命令之后,依照 systemd-boot#Configuration 中的描述为系统创建一个引导入口(将 $esp 替换为 /boot)。或者使用 /usr/share/systemd/bootctl/ 的示例配置文件。

BIOS/MBR

下面介绍在 MBR 系统上使用 Grub。安装 grubos-prober 包,并执行 grub-install. 须根据实际分区自行调整 /dev/sda, 切勿在块设备后附加数字,比如 /dev/sda1 就不对.

  1. # pacman -S grub os-prober
  2. # grub-install /dev/sda

下面命令会自动生成配置文件

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

详情参考GRUB

配置网络

该过程与#建立网络连接基本一致,只不过该配置在新系统每次开机时都会自动生效。

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

主机名

设置个您喜欢的主机名,例如:

  1. # echo myhostname > /etc/hostname

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

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

有线网络

如果您只用单一且固定的有线网络连接,启动 dhcpcd 服务,interface 是您的网络接口名:

  1. # systemctl enable dhcpcd@interface.service

无线网络

安装 iw, dialogwpa_supplicant, 您要靠它们连网:

  1. # pacman -S iw wpa_supplicant dialog

可能还需要安装固件
如果使用wifi-menu 配置网络,在执行完所有设置之后、重启然后再进行设置,以避免进程间冲突。详情请阅读 Netctl

卸载分区并重启系统

设置 root 密码:

  1. # passwd

离开 chroot 环境:

  1. # exit

systemd 在关机时会自动卸载分区,为了确保安全,可以用 umount -R /mnt 手动卸载分区。如果分区被占用,可以用 fuser)检查原因。
重启计算机:

  1. # reboot

移除安装媒介,并还原 BIOS 中的启动选项。

安装之后


您现在应该有了一个完全可用的 Arch 系统,以此为起点,您可以将这些优雅的工具加以改造成理想的样子。强烈建议您阅读 General recommendations (简体中文)),特别是前两个部分.请继续阅读 General recommendations (简体中文)) 的剩余页面,它包含了安装后的众多教程,包括设置图形用户界面,声卡和触摸板等等。如果想捣鼓一大堆应用程序,详见 List of Applications (简体中文)).Arch Linux 中文化 页面还包含了关于系统、软件中文支持的内容。

Category:Getting and installing Arch (简体中文))