以下安装步骤的目的是安装一个及其基本的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


arch源码安装mysql 安装 arch_Windows


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分区

lvm2mdadm(软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 字样设置语言参数*

arch源码安装mysql 安装 arch_arch源码安装mysql_02

*在没有处理过的终端界面不要更改到zh_CN.UTF-8,在之后的

#非必要步骤# 编辑 /etc/vconsole.conf 添加如:KEYMAP=de-latinl 终端键盘布局;添加如:FONT=lat2-16
FONT_MAP=8859-2 可以设置终端字体*。

但是字体这事好像不是我现在能简介出来的,有待扩展

设置网络

启用NetworkManager
systemctl enable NetworkManager.service

创建 /etc/hostname 并在其中设定本机名

arch源码安装mysql 安装 arch_linux_03

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

Microcode - 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

arch源码安装mysql 安装 arch_archlinux_04