本次安装过程参照官方安装指南进行安装
本次安装旨在安装最小的操作系统和必要工具,其他软件会在后续文章中进行介绍
安装前的准备
如何制作 Arch Linux 启动盘已在中上一篇中进行介绍,这里就不作重复叙述了
启动到Live环境
注意: Arch Linux 安装镜像不支持安全启动(Secure Boot)。要引导安装介质,需要禁用安全启动。如果需要,可在完成安装后重新配置安全启动。
- 选择从带有 Arch 安装文件的介质启动,通常是要在计算机开机自检时按下某个按键,一般在启动画面会有提示。具体情况请参考主板说明书。
- 当引导加载程序菜单出现时,选择 Arch Linux install medium 并按
Enter进入安装环境。
提示: 安装映像在 UEFI 模式下使用 GRUB 引导,在 BIOS 模式下使用 syslinux 引导。请参阅 README.bootparams 获取 引导参数 列表。
控制台键盘布局
控制台键盘布局默认为 us(美式键盘)。列出所有可用的键盘布局,可以使用:
# ls /usr/share/kbd/keymaps/**/*.map.gz
如果您想要更改键盘布局,可以将相应文件名添加进 loadkeys,但请省略路径和扩展名。比如,要添加德语键盘布局:
# loadkeys de-latin1
一般默认键盘设置为us(美式键盘)
验证引导模式
上一篇 中已经教了大家如何在windows下查看引导模式。
如果要在当前安装过程中验证引导模式,请用下列命令行出 efivars 目录:
# ls /sys/firmware/efi/efivars
如果命令结果显示了目录且没有报告错误,则系统以 UEFI 模式引导。 如果目录不存在,则系统可能以 BIOS 模式 (或 CSM 模式) 引导。如果系统未以您想要的模式引导启动,请参考您的主板说明书。
连接到互联网
要在 Live 环境中配置网络连接,请跟随以下步骤:
-
# ip link此时一般会提示三个选项:
lo:全称loopback,是回环地址,一般被分配到127.0.0.1地址上,用于本机通信,经过内核处理后直接返回,不会在任何网络中出现。
enp3s0:网卡名,如果有多块网卡,会有多个类似这种名称的网卡。
wlan0:无线网卡的设备名。
注意:如果连接到wifi,请记住你的wlan0名称。
- 对于无线局域网(Wi-Fi)和无线广域网(WWAN),请确保网卡未被 [rfkill]禁用。
如果发现列出的设备中有参数为$ rfkill listno则将其依次设为启用上面的0、1、2、3为列出设备的编号$ rfkill unblock 0 $ rfkill unblock 1 $ rfkill unblock 2 $ rfkill unblock 3
再次执行rfkill list查看是否有被禁用的。
-
要连接到网络:
- 有线以太网 —— 连接网线。
- WiFi —— 使用 [iwctl]验证无线网络。
-
要进入交互式提示符(interactive prompt),执行:
$ iwctl然后交互式提示符就会以
[iwd]#前缀显示出来了。 -
首先,如果不知道你的网络设备名称,请列出所有 WiFi 设备:
[iwd]# device list -
如果列出设备的
Powered选项参数为off则说明被[rfkill]禁用,查看上面如何解除[rfkill]禁用: -
始扫描网络(注意:这个命令不会输出任何内容),执行:
[iwd]# station wlan0 scan注意: 此处的
wlan0为上文列出的无线网卡的设备名,后文中的wlan0也是如此 -
列出所有可用的网络:
[iwd]# station wlan0 get-networks -
最后,要连接到一个网络:
[iwd]# station wlan0 connect wifi名称enter后输入密码即可,如果输入的wifi名称与密码正确即可正常接入互联网
-
- ~~ 移动宽带调制解调器(移动网卡) - 使用 mmcli 实用程序连接到移动网络。~~
此方法不常用,在此不做介绍
- 配置网络连接:
如果您是通过wifi连接或者网线直连的可直接用ping命令进行验证验证- DHCP:对于有线以太网、无线局域网(WLAN)和无线广域网(WWAN)网络接口来说,动态 IP 地址和 DNS 服务器分配(由 systemd-networkd 和 systemd-resolved 提供功能)能够开箱即用。
- 静态 IP 地址:按照静态 IP 地址进行操作。
- 用 [ping]检查网络连接:
ctrl+c退出iwctl# ping www.baidu.com
注意: 默认情况下,安装映像已预配置好并启用了 systemd-networkd、systemd-resolved、iwd 和 ModemManager。但已经安装好了的系统并非如此。
更新系统时间
在 Live 环境中 systemd-timesyncd 默认启用,创建互联网连接后,时间将自动同步。
使用 timedatectl 确保系统时间是准确的:
# timedatectl status
注意: 此时显示的是美国时间,不是大陆时间,在后续设置时区时会进行调整
建立硬盘分区
系统如果识别到磁盘,就会将其分配为一个块设备,如 /dev/sda、/dev/nvme0n1 或 /dev/mmcblk0。这里使用cfdisk工具进行分区设置
# cfdisk
-
cfdisk后,可以查看当面设备被分区的情况,先将已经分好的区删除
通过上下左右键选择要操作的分区,然后通过最下的Delete键进行删除 -
将之还原为一整块空的磁盘后,便可按照下面分区示例进行分区设置
点击New后输入要分配的空间大小,之后选择Type设置分区的类型
EFI分区的的Type为EFI System
swap分区的Type为Linux swap
其他设为默认的linux filesystem即可
分配完之后选择write,然后根据提示输入yes将设置的分区写入磁盘,选择quit退出cfdisk界面
分区示例
此时我的硬盘(sda)被我分为了三个区,分别是:
/dev/sda1 Type类型为:EFI System
/dev/sda2 Type类型为:Linux Swap
/dev/sda3 Type类型为:Linux filesystem
格式化分区
创建分区后,必须使用合适的文件系统对每个新创建的分区进行格式化。详情请参阅文件系统#创建文件系统。
例如,要在根分区 /dev/da3 上创建一个 Ext4 文件系统,请运行:
# mkfs.ext4 /dev/sda3(这里的sda3是上面分区时你指定的根分区的名称)
# mkswap /dev/sda2(交换空间分区)
注意: 对于堆叠式块设备(stacked block devices)请使用恰当的块设备路径替换上文中的 /dev/ sda 处。
如果你要创建一个 EFI 系统分区,使用 mkfs.fat 将其格式化为 Fat32。
警告: 只有在分区步骤中创建 EFI 系统分区时才需要格式化。如果这个磁盘上已经有一个 EFI 系统分区了,将它重新格式化会破坏其他已安装操作系统的引导加载程序。
# mkfs.fat -F 32 /dev/sda1(EFI 系统分区)
挂载分区
将根磁盘卷挂载到 /mnt,例如:
# mount /dev/sda3(根分区) /mnt
然后使用 mkdir 创建其他剩余的挂载点(比如 /mnt/boot)并按层级顺序挂载其相应的磁盘卷。
提示: 使用 --mkdir 选项运行 mount 来创建指定的挂载点。或者,先使用 mkdir 创建挂载点再挂载。
注意: 挂载分区一定要遵循顺序,先挂载根(root)分区(到 /mnt),再挂载引导(boot)分区(到 /mnt/boot 或 /mnt/efi,如果单独分出来了的话),最后再挂载其他分区。否则您可能遇到安装完成后无法启动系统的问题。参见 en:Talk:Installation guide#Clarify root mount。
对于 UEFI 系统,挂载 EFI 系统分区:
# mount --mkdir /dev/sda1(EFI 系统分区) /mnt/boot
# swapon /dev/sda2(交换空间分区)
稍后 genfstab 将自动检测挂载的文件系统和交换空间。
挂载完成后建议使用fdisk -f命令查看设置是否正确
安装
选择镜像
文件 /etc/pacman.d/mirrorlist 定义了软件包会从哪个镜像下载。在 LiveCD 启动的系统上,在连接到互联网后,reflector 会通过选择 20 个最新同步的 HTTPS 镜像并按下载速率对其进行排序来更新镜像列表。
在列表中越前的镜像在下载软件包时有越高的优先权。您或许想检查一下文件,看看是否满意。如果不满意,可以相应的修改 /etc/pacman.d/mirrorlist 文件,并将地理位置最近的镜像源挪到文件的头部,同时也应该考虑一些其他标准。
这个文件接下来还会被 pacstrap 拷贝到新系统里,所以请确保设置正确
安装必需的软件包
使用 pacstrap 脚本,安装 base包 软件包和 Linux 内核以及常规硬件的固件:
# pacstrap -K /mnt base base-devel linux linux-firmware
配置系统
Fstab
用以下命令生成 fstab 文件 (用 -U 或 -L 选项设置 UUID 或卷标):
此命令会将挂载信息载入系统
# genfstab -U /mnt >> /mnt/etc/fstab
复查一下 /mnt/etc/fstab 确保没有错误
cat /mnt/etc/fstab
Chroot
chroot 到新安装的系统:
# arch-chroot /mnt
提示: 此处使用的是arch-chroot而不是直接使用chroot,注意不要输错。
时区
要设置时区:
# ln -sf /usr/share/zoneinfo/Region(地区名) /City(城市名) /etc/localtime
提示: 以要设置为上海时区为例,请运行 # ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime。
然后运行 hwclock 生成 /etc/adjtime以校准时间:
# hwclock --systohc
这个命令假定已设置硬件时间为 UTC 时间。详细信息请查看 系统时间#时间标准。
本地化
程序和库如果需要本地化文本,都依赖区域设置,后者明确规定了地域、货币、时区日期的格式、字符排列方式和其他本地化标准。
需在这两个文件设置:locale.gen 与 locale.conf。
编辑 /etc/locale.gen,然后取消掉 en_US.UTF-8 UTF-8 和其他需要的区域设置前的注释(#)。
# pacman -Sy (更新)
# pacman -S neovim (下载nvim)
# sudo nvim /etc/locale.gen (这里需要先了解下nvim如何使用)
接着执行 locale-gen 以生成 locale 信息:
# locale-gen
然后创建 locale.conf 文件,并 编辑设定 LANG 变量,比如:
# touch /etc/locale.conf
# nvim /etc/locale.conf (然后写入:LANG=en_US.UTF-8,此处的设置要与上面一致)
网络配置
创建 [hostname] 文件:
# touch /etc/hostname
# nvim /etc/hostname (这里写入你的网络名称,任意即可)
安装合适的网络管理软件
# pacman -s networkmanager (用于设置网络)
# systemctl enable NetworkManager (开机自启)
Initramfs (这一步建议跳过,让他默认生成)
通常不需要自己创建新的 initramfs,因为在执行 pacstrap 时已经安装 linux包,这时已经运行过 mkinitcpio 了。
对于 LVM、 系统加密 或 RAID 等分区配置,请修改 mkinitcpio.conf 并用以下命令重新创建一个 Initramfs:
# mkinitcpio -P
Root 密码
设置 Root 密码:
# passwd
新建一个用户
# useradd -m kay (这里新建的用户名为kay)
# passwd kay (设置kay用户密码)
# nvim /etc/sudoers (设置kay用户sudo权限,不然无法使用sudo)
在root ALL=(ALL:ALL)ALL下方写入
kay ALL=(ALL:ALL)ALL
安装引导程序
需要安装 Linux 引导加载程序,才能在安装后启动系统,可以使用的的引导程序已在启动加载器中列出,请选择一个安装并配置它,GRUB 是最常见的选择。
如果有 Intel 或 AMD 的 CPU,请另外启用微码更新。
警告: 这是安装的最后一步也是至关重要的一步,请按上述指引正确安装好引导加载程序后再重新启动。否则重启后将无法正常进入系统。
# pacman -S grub efibootmgr amd-ucode # 如果是intel就装intel-ucode
# mkdir /boot/grub
# nvim /etc/default/grub (取消最后一行的注释)
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB (安装GRUB)
# grub-mkconfig -o /boot/grub/grub.cfg (生成GURBU配置文件)
重启
输入 exit 或按 Ctrl+d 退出 chroot 环境。
最后,通过执行 reboot 重启系统,systemd 将自动卸载仍然挂载的任何分区。不要忘记移除安装介质,然后使用 root 帐户登录到新系统。
安装后的工作
这将在后续文件中进行介绍