以下安装步骤的目的是安装一个及其基本的Arch Linux
从2021年4月起,Arch Linux安装镜像中已经包含了一个官方的简易安装程序archinstall。可以支持在连接网络后进行英文交互式安装。Arch Linux - News: Installation medium with installer
0.准备工作:
查看启动方式
ls /sys/firmware/efi/efivars
如果指令执行成功,则系统以UEFI方式启动如果不存在,则可能为BIOS启动
键盘布局与终端字体设置
#非必要步骤#
默认是qwerty-US的键盘布局,无需更换,更换不影响安装在硬盘上的系统
ls /usr/share/kbd/keymaps/**/*.map.gz | less
查看所有键盘布局,找到对应包名,如/usr/share/kbd/keymaps/i368/qwertz/de-latin1.map.gz
loadkeys de-latin1
设置布局
ls /usr/share/kbd/consolefonts/
查看所有终端字体
setfont*
设置字体
*这里setfont指令比较复杂,需要查看手册
网络连接
有线网络自动连接
无线网络使用 iwctl 连接
移动网络使用 mmcli 连接
设置时间
timedatectl set-ntp true
timedatectl set-timezone Asia/Shanghai
一些指令参数:
set-ntp true 启动网络对时;
list-timezones 查询所有时区信息;
set-timezone 可以将时区改为任意时区,中国一般是 Asia/Shanghai ;
set-local-rtc true 使用本地时作为系统时钟时间。这是Windows默认的时间计算方式,设为true可以与Windows统一时间计算方式;也可以在Windows系统中修改注册表使Windows与Linux统一时间计算方式
status 查看当前时钟状态
换源
reflector -c China > /etc/pacman.d/mirrorlist
使用reflector从Arch Mirror List拉取最新的镜像,镜像按速度排序。
也可以打开 /etc/pacman.d/mirrorlist 手动添加国内的镜像源。如USTC镜像:Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
1.分区
分区与GPT标记
我习惯使用 fdisk(学的就是这个),另有 parted,需要可视界面则可使用cfdisk或gparted
fdisk -l
查看磁盘信息,用于分辨要安装的磁盘
fdisk /dev/sda
对 磁盘sda 分区(交互模式)
分区指令序列:
n -> [分区号] -> [分区起始点] -> +[磁盘大小] -> t -> [分区号] -> [标记号]
w 保存分区表并退出
标准的的GPT(仅UEFI)磁盘分区有:
标记为 1 efi 的EFI系统分区,大小最小300MiB
标记为 19 Linux Swap 的 swap 分区,大小视情况而定。非必须;如果要使用挂起到硬盘(休眠),则推荐分配与内存相同大小的swap分区;另有使用swap文件的swap方案;Linux Mint的默认swap大小为2GiB,可能使用swap文件,因为重新分区时没有看到单独的swap分区
标记为 20 Linux File System 或 23 Linux Root(x86_64) 的系统分区(根分区)
自己想的,不保证正确:对于机械硬盘,0磁道在磁盘最外围,访问速度最快。swap分区需要尽可能靠外以提高IO性能。
!:额外安装BIOS启动系统,要在磁盘前2TB内创建一个1MiB大小的标记为4 BIOS boot的分区用来安装grub
格式化与挂载
使用mkfs.xxx格式化成除swap的任何格式,swap需要 mkswap 指令:
- mkfs.fat -F 32 /dev/sda1 #建立FAT32分区,作为EFI分区
- mkfs.ext4 /dev/sda3 #建立ext4分区,作为root分区
- mkswap /dev/sda2 #建立swap分区
然后 /mnt 为根,挂载对应磁盘
根分区挂载到 /mnt ,efi 挂载到 /mnt/boot ,同时使用 swapon 指令启用刚分好的swap分区
mount /dev/sda3 /mnt
mount --mkdir /dev/sda1 /mnt/boot
swapon /dev/sda2
2.安装软件
使用 pacstrap /mnt [软件包名] 安装软件,这一步非常自由,你想装什么就装什么,Arch 不会给你任何限制。
基本软件
pacstrap -K /mnt base linux linux-firmware
以上这些包会提供一个最小的Arch Linux环境。安装base包时需要添加-K参数初始化Arch Keyring
base:Arch Linux 基础套件
linux:标准Linux内核,可用linux-lts,linux-zen 或 自编译内核等替代
linux-firmware:一般驱动程序,在虚拟机、容器中运行的Linux不需要安装
其他推荐参考:
Arch live CD使用的包应用程序列表 - Arch Linux 中文维基建议阅读 - Arch Linux 中文维基
要考虑设备驱动、网络配置、文件管理、RAID、LVM、文本编辑、手册等:
设备驱动
不包含在linux-firmware包中的设备驱动,如b43-fwcutter 等
网络配置
Network configuration - ArchWiki
systemd就可以管理网络,但莫得GUI,可以安装一个额外的网络管理器
pacstrap /mnt networkmanager
内置的DHCP与DNS客户端一般够用,也可额外装;ip(iproute2)包含在base中
文件系统管理
File systems - ArchWiki (archlinux.org)
pacstrap /mnt dosfdtools
各种用户空间软件:FAT(dosfstools) exFAT(exfatprogs*) NTFS*(ntfs-3g) ext4 (e2fsprogs*)
*exfat:Linux5.4中加入支持,这个包就是被包含进内核的实现
*NTFS:Linux5.15后,Arch Linux加入ntfs3内核模块实现NTFS读写,无需安装
*e2fsprogs:被base依赖:base->coreutils->libcap->pam->krb5->libldap->e2fsprogs
LVM与RAID分区
lvm2,mdadm(软RAID) dmraid(硬RAID)
先了解软件包吧,目前没有组过RAID再看,有待扩展
文本编辑
文本编辑在配置Arch中占大头,文本编辑软件相当于Arch的设置
pacstrap /mnt nano vim
vim 与vi 没有关系。如果需要可以安装vi,但一般会有使用vim替代vi的配置方式
手册
pacstrap /mnt man-db man-pages texinfo
texinfo:GNU软件除了man之外还包含info,且后者一般较详细
3.配置系统
生成分区表
genfstab -U /mnt >> /mnt/etc/fstab
-U指使用UUID生成fstab
切换到新系统
arch-chroot /mnt
设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
生成系统时钟文件
hwclock --systohc
以上指令为将RTC设为UTC并生成对应的/etc/adjtime文件。adjtime文件存放系统时钟的初始值。也可以使用--localtime 设置RTC为本地时,与 timedatectl 的设置同步即可
本地化
编辑 /etc/locale.gen,取消注释en_US.UTF-8 UTF-8 以及zh_CN.UTF-8 UTF-8需要的本地化
之后使用 locale-gen 生成区域设置
创建 /etc/locale.conf 添加如:LANG=en_US.UTF-8 字样设置语言参数*
*在没有处理过的终端界面不要更改到zh_CN.UTF-8,在之后的
#非必要步骤# 编辑 /etc/vconsole.conf 添加如:KEYMAP=de-latinl 终端键盘布局;添加如:FONT=lat2-16
FONT_MAP=8859-2 可以设置终端字体*。
但是字体这事好像不是我现在能简介出来的,有待扩展
设置网络
启用NetworkManager
systemctl enable NetworkManager.service
创建 /etc/hostname 并在其中设定本机名
Initramfs
#非必要步骤#
如果使用了LVM、RAID等高级硬盘技术,需要编辑 /etc/mkinitcpio.conf 并添加对应设置并运行 mkinitcpio -P。否则可能出现系统无法启动的情况,有些使用iSCSI技术的USB盘在进行外置启动时可能也需要配置此项。
对于一般的系统,这一步在安装内核时已由pacman完成配置,无需此步骤。
设置root密码
passwd
为root用户添加密码
安装引导与启用CPU微码更新
Arch boot process#Boot loader - ArchWiki (archlinux.org)
安装任意一个引导工具(以下以grub为例),并设置引导。
UEFI还需要安装 efibootmgr
pacman -Syu grub efibootmgr
grub(UEFI):grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub(BIOS):grub-install --target=i386-pc /dev/sdx
可添加--recheck选项验证引导安装是否存在错误
如果要创建移动启动盘(可被UEFI固件检测)
grub-install --target=x86_64 --efi-directory=/boot --removeable
如果需要安全启动,请自行参考GRUB - ArchWiki
如果安装于实体机且使用Intel或AMD的处理器,需要启用微码更新:
AMD处理器需要安装 amd-ucode
pacman -Syu amd-ucode
Intel处理器则需要安装 intel-ucode
pacman -Syu intel-ucode
grub 使用 grub-mkconfig -o /boot/grub/grub.cfg 即可生成带微码更新的默认引导设置
4.结尾:
退出chroot环境,卸载安装区域并重启
umount -R /mnt & reboot