UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

333 lines (196 loc) 16.3 kB
**翻译状态:** 本文是英文页面 [Installation_guide](/index.php/Installation_guide "Installation guide") 的[翻译](/index.php/ArchWiki_Translation_Team_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "ArchWiki Translation Team (简体中文)"),最后翻译时间:2018-06-06,点击[这里](https://wiki.archlinux.org/index.php?title=Installation_guide&diff=0&oldid=523580)可以查看翻译后英文页面的改动。 本文将指导如何用官方安装镜像启动的 Live 系统安装 [Arch Linux](/index.php/Arch_Linux_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Arch Linux (简体中文)")。建议在安装前阅读 [FAQ](/index.php/FAQ_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "FAQ (简体中文)")。对于本文中使用的惯用术语,请参阅 [Help:Reading](/index.php/Help:Reading_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Help:Reading (简体中文)").请注意, 代码段可能会有占位符(格式是 `*italics*`),你可能需要手动去掉它们. 有关更详细的说明,请阅读本指南内相应的 [ArchWiki](/index.php/ArchWiki:About_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "ArchWiki:About (简体中文)") 文章或各类程序的[手册](/index.php/Man_page_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Man page (简体中文)")。有关配置的概述,请参阅 [archlinux(7)](https://jlk.fjfi.cvut.cz/arch/manpages/man/archlinux.7)。若需要交互帮助,可以使用 [IRC 频道](/index.php/IRC_channel "IRC channel")和[论坛](https://bbs.archlinux.org/)。 Arch Linux 能在任何内存空间不小于 512MB 的 [x86_64](https://en.wikipedia.org/wiki/zh:X86-64 "w:zh:X86-64") 兼容机上运行。用 [base](https://www.archlinux.org/groups/x86_64/base/) 组内的软件包进行的基本安装将占用小于 800MB 的存储空间。由于安装过程中需要从远程存储库获取软件包,机器将需要一个有效的互联网连接。 ## Contents * [1 安装准备](#.E5.AE.89.E8.A3.85.E5.87.86.E5.A4.87) * [1.1 键盘布局](#.E9.94.AE.E7.9B.98.E5.B8.83.E5.B1.80) * [1.2 验证启动模式](#.E9.AA.8C.E8.AF.81.E5.90.AF.E5.8A.A8.E6.A8.A1.E5.BC.8F) * [1.3 连接到因特网](#.E8.BF.9E.E6.8E.A5.E5.88.B0.E5.9B.A0.E7.89.B9.E7.BD.91) * [1.4 更新系统时间](#.E6.9B.B4.E6.96.B0.E7.B3.BB.E7.BB.9F.E6.97.B6.E9.97.B4) * [1.5 建立硬盘分区](#.E5.BB.BA.E7.AB.8B.E7.A1.AC.E7.9B.98.E5.88.86.E5.8C.BA) * [1.6 格式化分区](#.E6.A0.BC.E5.BC.8F.E5.8C.96.E5.88.86.E5.8C.BA) * [1.7 挂载分区](#.E6.8C.82.E8.BD.BD.E5.88.86.E5.8C.BA) * [2 安装](#.E5.AE.89.E8.A3.85) * [2.1 选择镜像](#.E9.80.89.E6.8B.A9.E9.95.9C.E5.83.8F) * [2.2 安装基本系统](#.E5.AE.89.E8.A3.85.E5.9F.BA.E6.9C.AC.E7.B3.BB.E7.BB.9F) * [3 配置系统](#.E9.85.8D.E7.BD.AE.E7.B3.BB.E7.BB.9F) * [3.1 Fstab](#Fstab) * [3.2 Chroot](#Chroot) * [3.3 时区](#.E6.97.B6.E5.8C.BA) * [3.4 Locale](#Locale) * [3.5 主机名](#.E4.B8.BB.E6.9C.BA.E5.90.8D) * [3.6 网络配置](#.E7.BD.91.E7.BB.9C.E9.85.8D.E7.BD.AE) * [3.7 Initramfs](#Initramfs) * [3.8 Root 密码](#Root_.E5.AF.86.E7.A0.81) * [3.9 安装引导程序](#.E5.AE.89.E8.A3.85.E5.BC.95.E5.AF.BC.E7.A8.8B.E5.BA.8F) * [4 重启](#.E9.87.8D.E5.90.AF) * [5 安装后的工作](#.E5.AE.89.E8.A3.85.E5.90.8E.E7.9A.84.E5.B7.A5.E4.BD.9C) ## 安装准备 根据 [Category:Getting and installing Arch](/index.php/Category:Getting_and_installing_Arch_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Category:Getting and installing Arch (简体中文)") 中所述,下载并引导安装介质。启动完成后将会自动以 root 身份登录虚拟控制台并进入 [Zsh](/index.php/Zsh_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Zsh (简体中文)") 命令提示符。 如果你想切换至其它的虚拟终端来干点别的事, 例如使用 [ELinks](/index.php/ELinks "ELinks") 来查看本篇指南,使用 `Alt+*方向鍵*` [快捷键](/index.php/Keyboard_shortcuts_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Keyboard shortcuts (简体中文)")。可以使用 [nano](/index.php/Nano#Usage "Nano"),[vi](https://en.wikipedia.org/wiki/vi "w:vi") 或 [vim](/index.php/Vim#Usage "Vim") [编辑](/index.php/Textedit "Textedit")配置文件。 ### 键盘布局 [控制台键盘布局](/index.php/Keyboard_configuration_in_console "Keyboard configuration in console") 默认为`us`(美式键盘映射)。列出所有可用的键盘布局, 可以使用: ``` # ls /usr/share/kbd/keymaps/**/*.map.gz ``` 如果您想要更改键盘布局,可以将一致的文件名添加进[loadkeys(1)](https://jlk.fjfi.cvut.cz/arch/manpages/man/loadkeys.1), 但请省略路径和扩展名. 比如, 要添加[German](https://en.wikipedia.org/wiki/File:KB_Germany.svg "wikipedia:File:KB Germany.svg")键盘布局: ``` # loadkeys de-latin1 ``` [Console fonts](/index.php/Console_fonts "Console fonts") 位于 `/usr/share/kbd/consolefonts/`, 设置方式请参考 [setfont(8)](https://jlk.fjfi.cvut.cz/arch/manpages/man/setfont.8). ### 验证启动模式 如果以在 UEFI 主板上启用 [UEFI](/index.php/UEFI "UEFI") 模式, [Archiso](/index.php/Archiso "Archiso") 将会使用 [systemd-boot](/index.php/Systemd-boot_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Systemd-boot (简体中文)") 来[启动](/index.php/Boot "Boot") Arch Linux。可以列出 [efivars](/index.php/UEFI#UEFI_variables "UEFI") 目录以验证启动模式: ``` # ls /sys/firmware/efi/efivars ``` 如果目录不存在,系统可能以 [BIOS](https://en.wikipedia.org/wiki/BIOS "w:BIOS") 或 CSM 模式启动,详见您的主板手册。 ### 连接到因特网 守护进程 [dhcpcd](/index.php/Dhcpcd "Dhcpcd") 已被默认启用来探测[有线网络设备](https://git.archlinux.org/archiso.git/tree/configs/releng/airootfs/etc/udev/rules.d/81-dhcpcd.rules), 并会尝试连接。 可以使用 [ping](/index.php/Ping "Ping") 验证连接是否正常: ``` # ping archlinux.org ``` 如果没有可用网络连接,利用 `systemctl stop dhcpcd@*网络接口*`,`TAB` [停用](/index.php/Systemd#Using_units "Systemd") *dhcpcd* 进程,`*网络接口*` 名可以通过 [Tab补全](https://en.wikipedia.org/wiki/Command-line_completion "wikipedia:Command-line completion").。要配置网络,详见[网络配置](/index.php/Network_configuration_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Network configuration (简体中文)"). ### 更新系统时间 使用 [timedatectl(1)](https://jlk.fjfi.cvut.cz/arch/manpages/man/timedatectl.1) 确保系统时间是准确的: ``` # timedatectl set-ntp true ``` 可以使用 `timedatectl status` 检查服务状态。 ### 建立硬盘分区 磁盘若被系统识别到,就会被分配为一个[块设备](https://en.wikipedia.org/wiki/zh:%E8%AE%BE%E5%A4%87%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F#.E5.91.BD.E5.90.8D.E7.BA.A6.E5.AE.9A "wikipedia:zh:设备文件系统"),如`/dev/sda`或者`/dev/nvme0n1`。可以使用 [lsblk](/index.php/Lsblk "Lsblk") 或者 *fdisk* 查看: ``` # fdisk -l ``` 结果中以`rom`, `loop` 或者 `airoot`结束的可以被忽略。 对于一个选定的设备,以下的*分区*是必须要有的: * 一个根分区(挂载在根目录) `/`. * 如果 [UEFI](/index.php/UEFI "UEFI") 模式被启用,你还需要一个 [EFI 系统分区](/index.php/EFI_system_partition "EFI system partition"). **注意:** [Swap](/index.php/Swap_space "Swap space") 可以在一个独立的分区上设置,也可以直接建立 [交换文件](/index.php/Swap#Swap_file "Swap"). 如需修改*分区表*,使用 [fdisk](/index.php/Fdisk "Fdisk") 或 [parted](/index.php/Parted "Parted"). ``` # fdisk /dev/*sda* ``` 查看[硬盘分区](/index.php/Partitioning_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Partitioning (简体中文)")以获得更多详情. **注意:** 如果需要需要创建多级存储例如 [LVM](/index.php/LVM "LVM")、[disk encryption](/index.php/Disk_encryption "Disk encryption") 或 [RAID](/index.php/RAID "RAID"),请在此时完成。 ### 格式化分区 当分区建立好了, 这些分区都需要使用适当的[文件系统](/index.php/File_systems_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "File systems (简体中文)")进行格式化。举个例子,如果想将`/dev/*sda1*`格式化成`*ext4*`, 可以运行: ``` # mkfs.*ext4* /dev/*sda1* ``` 如果您创建了交换分区(例如`/dev/*sda3*`),使用 mkswap 将其初始化: ``` # mkswap /dev/*sda3* # swapon /dev/*sda3* ``` 详情参见[文件系统](/index.php/File_systems_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#.E5.88.9B.E5.BB.BA.E6.96.87.E4.BB.B6.E7.B3.BB.E7.BB.9F "File systems (简体中文)")。 ### 挂载分区 首先将根分区[挂载](/index.php/Mount "Mount")到 `/mnt`,例如: ``` # mount /dev/*sda1* /mnt ``` 如果使用多个分区,还需要为其他分区创建目录并挂载它们(`/mnt/boot``/mnt/home`、……)。 ``` # mkdir /mnt/*boot* # mount /dev/*sda2* /mnt/*boot* ``` 接下来 [genfstab](https://git.archlinux.org/arch-install-scripts.git/tree/genfstab.in) 将会自动检测挂载的文件系统和 swap 分区。 ## 安装 ### 选择镜像 文件`/etc/pacman.d/mirrorlist`定义了软件包会从哪个[镜像源](/index.php/Mirrors "Mirrors")下载.在LiveCD启动的系统上,所有的镜像都被启用,并且在镜像被制作时,我们已经通过他们的同步情况和速度排序. 在列表中越前的镜像在下载软件包时有越高的优先权. 你可以相应的修改文件`/etc/pacman.d/mirrorlist`, 并将地理位置最近的镜像源挪到文件的头部, 同时你也应该考虑一些其他标准。 这个文件接下来还会被*pacstrap*拷贝到新系统里, 所以请确保设置正确。 ### 安装基本系统 使用[pacstrap](https://git.archlinux.org/arch-install-scripts.git/tree/pacstrap.in) 脚本,安装 [base](https://www.archlinux.org/groups/x86_64/base/) 组: ``` # pacstrap /mnt base ``` 这个组并没有包含全部 live 环境中的程序,有些需要额外安装,例如[btrfs-progs](https://www.archlinux.org/packages/?name=btrfs-progs)。[packages.both](https://projects.archlinux.org/archiso.git/tree/configs/releng/packages.both) 页面包含了它们的差异。 如果你还想安装其他软件包组比如[base-devel](https://www.archlinux.org/groups/x86_64/base-devel/), 请将他们的名字添加到*pacstrap*后,并用空格隔开.你也可以在[#Chroot](#Chroot)之后使用[pacman](/index.php/Pacman "Pacman")手动安装软件包或组. ``` # pacstrap -i /mnt base base-devel ``` ## 配置系统 ### Fstab 用以下命令生成 [fstab](/index.php/Fstab "Fstab") 文件 (用 `-U``-L` 选项设置UUID 或卷标): ``` # genfstab -U /mnt >> /mnt/etc/fstab ``` **强烈建议** 在执行完以上命令后,后检查一下生成的 `/mnt/etc/fstab` 文件是否正确。 ### Chroot [Change root](/index.php/Change_root "Change root") 到新安装的系统: ``` # arch-chroot /mnt ``` ### 时区 设置 [时区](/index.php/Time_zone "Time zone"): ``` # ln -sf /usr/share/zoneinfo/*Region*/*City* /etc/localtime ``` 例如: ``` # ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ``` 运行[hwclock(8)](https://jlk.fjfi.cvut.cz/arch/manpages/man/hwclock.8)以生成`/etc/adjtime`: ``` # hwclock --systohc ``` 这个命令假定硬件时间已经被设置为[UTC时间](https://en.wikipedia.org/wiki/UTC "wikipedia:UTC"). 详细信息请查看[Time#Time standard](/index.php/Time#Time_standard "Time"). ### Locale 本地化的程序与库若要本地化文本,都依赖 [Locale](/index.php/Locale "Locale"), 后者明确规定地域、货币、时区日期的格式、字符排列方式和其他本地化标准等等。在下面两个文件设置:`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` 会生成指定的本地化文件. 创建 `locale.conf` 并编辑:`LANG` [变量](/index.php/Variable "Variable"),比如: **Tip:** 将系统 locale 设置为`en_US.UTF-8`,系统的 Log 就会用英文显示,这样更容易问题的判断和处理。用户可以设置自己的 locale,详情参阅[Locale](/index.php/Locale#Overriding_system_locale_per_user_session "Locale")或[Locale_(简体中文)#设置 locale](/index.php/Locale_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#.E8.AE.BE.E7.BD.AE_locale "Locale (简体中文)") `/etc/locale.conf` `LANG=*en_US.UTF-8*` **警告:** 不推荐在此设置任何中文locale,或导致tty乱码。 另外,如果你需要修改[键盘布局](#Set_the_keyboard_layout), 并想让这个设置持续生效,编辑 [vconsole.conf(5)](https://jlk.fjfi.cvut.cz/arch/manpages/man/vconsole.conf.5),例如: `/etc/vconsole.conf` `KEYMAP=*de-latin1*` ### 主机名 要设置 [hostname](/index.php/Hostname "Hostname"),将其[添加](/index.php/Add "Add") 到 `/etc/hostname`, *myhostname* 是需要的主机名: `/etc/hostname` ``` *myhostname* ``` 并且添加[对应的信息](/index.php/Network_configuration#Local_network_hostname_resolution "Network configuration")到[hosts(5)](https://jlk.fjfi.cvut.cz/arch/manpages/man/hosts.5): `/etc/hosts` ``` 127.0.0.1 localhost ::1 localhost 127.0.1.1 *myhostname*.localdomain *myhostname* ``` 如果机器有一个永久的ip地址,请使用这个ip而不是`127.0.1.1`. ### 网络配置 对新安装的系统,需要再次设置网络。具体请参考 [Network configuration (简体中文)](/index.php/Network_configuration_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Network configuration (简体中文)") 对于 [无线网络配置](/index.php/Wireless_network_configuration_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Wireless network configuration (简体中文)"),[安装](/index.php/%E5%AE%89%E8%A3%85 "安装") 软件包 [iw](https://www.archlinux.org/packages/?name=iw), [wpa_supplicant](https://www.archlinux.org/packages/?name=wpa_supplicant),[dialog](https://www.archlinux.org/packages/?name=dialog) 以及需要的 [固件软件包](/index.php/Wireless#Installing_driver.2Ffirmware "Wireless"). ### Initramfs 你通常不需要创建*initramfs*,因为在你执行*pacstrap*时已经安装[linux](https://www.archlinux.org/packages/?name=linux), 这时[mkinitcpio](/index.php/Mkinitcpio "Mkinitcpio")会被自动运行. 如果修改了 [mkinitcpio.conf](/index.php/Mkinitcpio_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Mkinitcpio (简体中文)"),用以下命令创建一个Initramfs: ``` # mkinitcpio -p linux ``` ### Root 密码 设置 root [密码](/index.php/Password "Password"): ``` # passwd ``` ### 安装引导程序 你需要安装Linux引导程序以在安装后启动系统,你可以使用的的引导程序在["启动加载器"](/index.php/Boot_loaders_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Boot loaders (简体中文)")中,请选择一个并且安装并配置它,比如[GRUB](/index.php/GRUB "GRUB"). 如果你使用Intel CPU,那么需要安装[intel-ucode](https://www.archlinux.org/packages/?name=intel-ucode)并[启用英特尔微码更新](/index.php/Microcode#Enabling_Intel_microcode_updates "Microcode") ## 重启 输入 `exit` 或按 `Ctrl+D` 退出 chroot 环境。 可选用 `umount -R /mnt` 手动卸载被挂载的分区:这有助于发现任何“繁忙”的分区,并通过 [fuser(1)](https://jlk.fjfi.cvut.cz/arch/manpages/man/fuser.1) 查找原因。 最后,通过执行 `reboot` 重启系统:*systemd* 将自动卸载仍然挂载的任何分区。不要忘记移除安装介质,然后使用root帐户登录到新系统。 ## 安装后的工作 系统管理引导,图形用户界面的安装、声音管理、触摸板支持等后期工作参见 [General recommendations (简体中文)](/index.php/General_recommendations_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "General recommendations (简体中文)")。 感兴趣的各类程序,请参见[List of applications (简体中文)](/index.php/List_of_applications_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "List of applications (简体中文)")。