Beginners' guide (简体中文)
相关文章
欢迎,本向导写给 Arch 新用户,但是会尽量做到成为所有用户的参考和信息库。
本文档指导您使用Arch安装脚本来安装Arch Linux:一个简单、轻量级、适合计算机水平较高用户使用的发行版。建议在安装前先浏览一下FAQ。
社区维护的 ArchWiki应该有办法解决遇到的疑难。若在其它地方找不到解决办法,IRC 频道(irc://irc.freenode.net/#archlinux-cn) 和论坛都是求助的好地方。为了贯彻Arch之道,如遇陌生的命令,可输入man command
以查询相关man
手册页。
Contents
系统需求
理论上,Arch Linux能在任何内存空间不小于 256MB 的i686兼容机上运行。最基本的base组中包含的包将占用约 800MB 存储空间。若您存储空间极度有限,可手动挑选base组中的包进行安装,前提是你必须知道你在做什么。
准备最新的安装媒介
最新的官方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。
各种虚拟机软件的使用步骤大同小异,一般有如下:
- 创建虚拟硬盘镜像,用来装载操作系统
- 适当地配置虚拟机参数
- 将下载的 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 (简体中文).
建立网络连接
安装程序会自动运行 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
您现在应该成功连接有线网络。若无,详见 网络配置。
无线网络
使用 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 (简体中文).
激活无线网络接口:
# 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
使用代理服务器
若通过代理服务器连接网络,您需要 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
表示磁盘和分区,请按照您系统的实际状况修改命令。不要直接复制和执行。如果不需要重新分区,可以跳到 #创建文件系统,否则继续。
选择分区表类型
如果是在已有系统的机器上安装,系统已经进行了分区。如果是干净安装,根据系统是 BIOS 还是 UEFI 进行选择:
- 主引导记录(MBR): 用于 BIOS 系统 ("msdos")
- GUID 分区表(GPT): 用于 UEFI 系统
通过下面命令可以判断出一个磁盘的分区表类型:
# parted /dev/sdx print
分区工具
Arch 安装盘中包含了多种分区工具,可以根据分区表的类型进行选择:
下面例子里面使用 parted,它同时支持 BIOS/MBR 和 UEFI/GPT. 以交互模式启动,可以用 (parted) help
查看帮助,用 (parted) quit
退出。
创建新分区表
如果设备没有分区,或者要改变分区表类型,需要新建分区表。
打开需要新建分区表的设备:
# 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
挂载分区
必须先挂载 /
(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_(简体中文).
安装基本系统
使用 pacstrap 来安装基本系统。如果您不想手动选择安装哪个包,忽略 -i
即可。如果您想通过 AUR (简体中文) 或者 ABS (简体中文) 编译安装软件包,需要装上 base-devel:
# pacstrap -i /mnt base base-devel
此章节会给您安装好最基本的 Arch 系统,其它软件以后会用 pacman (简体中文) 安装得到。
生成 fstab
用以下命令生成 fstab. 之所以用 UUID 是因为它们能唯一且独立地标识,详见 fstab#Identifying filesystems. 如果您想用卷标,用 -L
代替 -U
即可。
# genfstab -U -p /mnt >> /mnt/etc/fstab # nano /mnt/etc/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
并提交您的本地化选项:
# echo LANG=en_US.UTF-8 > /etc/locale.conf
终端字体和键盘映射
如果您在#修改语言 时就已修改键盘布局和字体过,您就得再相应地编辑 /etc/vconsole.conf
以使该变动对新系统生效,比如:
# nano /etc/vconsole.conf
KEYMAP=de-latin1 FONT=lat9w-16
此章节只对您的虚拟终端生效,即对 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
硬件时间
计算机的所有操作系统都会根据硬件时钟确定当前时间,要么按照 UTC 时间解读,要么按照本地时间解读。所以要统一机器上所有系统的硬件时间模式,否则可能会发生冲突。
建议所有操作系统都把硬件时间设置成 UTC 时间,如果设置成本地时间,多个操作系统可能会同时进行夏令时调节,造成重复修正。在不同时区旅行时也可能造成本地时间错误。
可以用下面命令自动生成 /etc/adjtime
, 将硬件时间设置为 UTC
# hwclock --systohc --utc
-
# hwclock --systohc --utc
内核模块
一般情况下 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
确认下您的网络接口名。
有线网络
动态 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
- 使用 netctl-ifplugd
您还可以用 netctl-ifplugd
, 它能很好地处理对新网络的动态连接。
安装 ifplugd, netctl-ifplugd
要用到它:
# pacman -S ifplugd
接着在相应接口上激活:
# systemctl enable netctl-ifplugd@interface_name.service
静态 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.
无线网络
安装 iw 和 wpa_supplicant, 您要靠它们连网:
# pacman -S iw wpa_supplicant
添加无线网络
- 使用 wifi-menu
安装 dialog, wifi-menu
要用到它:
# pacman -S dialog
完成以下并重启之后,您可以使用 wifi-menu interface_name
来连网,interface_name
是您的无线网络接口名。或者直接执行:
# 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
自动连接到已知网络
安装 wpa_actiond, netctl-auto
要用到它:
# pacman -S wpa_actiond
激活 netctl-auto
服务,它会自动连接到已知网络,并且出色地处理重新连接于漫游:
# systemctl enable netctl-auto@interface_name.service
调制解调器,ISDN 或 xDSL(PPPoE)
创建初始 ramdisk 环境
如果您的根分区位于 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
下面命令会自动生成配置文件,若想自动检测硬盘上安装的其它操作系统,请在执行下面命令前先安装 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
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
重启计算机:
# reboot
移除安装媒介,并还原 BIOS 中的启动选项。可以用 root 用户和设置的密码登录.
安装之后
您现在应该有了一个完全可用的 Arch 系统,以此为起点,您可以将这些优雅的工具加以改造成理想的样子。强烈建议您阅读 General recommendations (简体中文),特别是前两个部分.
请继续阅读 General recommendations (简体中文) 的剩余页面,它包含了安装后的众多教程,包括设置图形用户界面,声卡和触摸板等等。
如果想捣鼓一大堆应用程序,详见 List of Applications (简体中文).
Arch Linux 中文化 页面还包含了关于系统、软件中文支持的内容。