Arch Linux (UEFI with GPT) 安装
确认主板系统是 UEFI,这里使用 GPT 分区格式,关于究竟该使用 MBR 还是 GPT 请参考这里。
下载 Arch Linux 镜像
https://www.archlinux.org/download/
验证镜像完整性
md5 archlinux-2020.04.01-x86_64.iso
将输出和下载页面提供的 md5 值对比一下,看看是否一致,不一致则不要继续安装,换个节点重新下载直到一致为止。
镜像写入 U 盘
-
Linux/Unix: dd
用 lsblk 找到 U 盘并确保没有挂载,然后用 U 盘设备文件名替换 /dev/sdx,如 /dev/sdb,不要加上数字(不要键入 /dev/sdb1 之类的东西)
dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress && sync
等待 sync 完成(所有数据都写入之后),然后拔掉 U 盘。
- MacOS: balenaEtcher
- Windows: USBWriter
从 U 盘启动 Arch live 环境
在 UEFI BIOS 中设置启动磁盘为刚刚写入 Arch 系统的 U 盘。
进入 U 盘的启动引导程序后,选择第一项:Arch Linux archiso x86_64 UEFI CD
验证启动模式
ls /sys/firmware/efi/efivars
如果 /sys/firmware/efi/efivars 目录不存在,则系统可能是从 BIOS 模式启动的,在主板设置里使用 UEFI 模式启动。
连接 internet
-
查看连接
ip link
-
连接
对于有线网络,安装镜像启动的时候,默认会启动 dhcpcd,如果没有启动,可以手动启动:
dhcpcd
-
验证连接
ping shenyu.me
更新系统时间
timedatectl set-ntp true
磁盘分区
-
查看磁盘设备
fdisk -l
-
新建分区表
fdisk /dev/sda
- 输入
g
,新建 GPT 分区表 - 输入
w
,保存修改,这个操作会抹掉磁盘所有数据,慎重
- 输入
-
分区创建
1 扇区 = 512 字节
fdisk /dev/sda
- 新建 EFI System 分区
- 输入
n
- 选择分区区号,直接
Enter
,使用默认值,fdisk 会自动递增分区号 - 分区开始扇区号,直接
Enter
,使用默认值 - 分区结束扇区号,输入
+512M
(推荐大小) - 输入
t
修改刚刚创建的分区类型 - 选择分区号,直接
Enter
, 使用默认值,fdisk 会自动选择刚刚新建的分区 - 输入
1
,使用 EFI System 类型
- 输入
- 新建 Linux root (x86-64) 分区
- 输入
n
- 选择分区区号,直接
Enter
,使用默认值,fdisk 会自动递增分区号 - 分区开始扇区号,直接
Enter
,使用默认值 - 分区结束扇区号,这里要考虑预留给 swap 分区空间,计算公式:root 分区结束扇区号 = 磁盘结束扇区号 - 分配给 swap 分区的空间 (GB) * 1024 * 1024 * 1024 / 512,输入后
Enter
- 输入
t
修改刚刚创建的分区类型 - 选择分区号,直接
Enter
, 使用默认值,fdisk 会自动选择刚刚新建的分区 - 输入
23
,使用 Linux root (x86-64) 类型
- 输入
- 新建 Linux swap 分区
- 输入
n
- 选择分区区号,直接
Enter
,使用默认值,fdisk 会自动递增分区号 - 分区开始扇区号,直接
Enter
,使用默认值 - 分区结束扇区号,比如
+8G
- 输入
t
修改刚刚创建的分区类型 - 选择分区号,直接
Enter
, 使用默认值,fdisk 会自动选择刚刚新建的分区 - 输入
19
,使用 Linux swap 类型
- 输入
- 保存新建的分区
- 输入
w
- 输入
- 新建 EFI System 分区
磁盘格式化
-
格式化 EFI System 分区
mkfs.fat -F32 /dev/sda1
如果格式化失败,可能是磁盘设备存在 Device Mapper
-
显示 dm 状态
dmsetup status
-
删除 dm
dmsetup remove <dev-id>
-
-
格式化 Linux root 分区
mkfs.ext4 /dev/sda2
-
格式化 Linux swap 分区
mkswap /dev/sda3 swapon /dev/sda3
挂载文件系统
mount /dev/sda2 /mnt
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
配置 pacman mirror
vim /etc/pacman.d/mirrorlist
安装 Arch 和 Package Group
pacstrap /mnt base base-devel linux linux-firmware
生成 fstab 文件
genfstab -U /mnt >> /mnt/etc/fstab
切换至安装好的 Arch
arch-chroot /mnt
本地化
-
安装编辑器 vim,下面修改配置需要使用
pacman -S vim
-
修改 /etc/locale.gen,取消注释下面这两行配置
en_US.UTF-8 UTF-8 zh_CN.UTF-8 UTF-8
-
生成 locale 信息
locale-gen
-
创建 /etc/locale.conf
LANG=en_US.UTF-8
网络配置
-
修改 hostname,创建 /etc/hostname
myhostname
-
配置 hosts,编辑 /etc/hosts
127.0.0.1 localhost ::1 localhost 127.0.0.1 myhostname.localdomain myhostname
-
启动 dhcpcd 服务
pacman -S dhcpcd systemctl enable dhcpcd
修改 root 密码
passwd
安装 Microcode
-
AMD CPU
pacman -S amd-ucode
-
Intel CPU
pacman -S intel-ucode
安装 GRUB
pacman -S grub
pacman -S efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
grub-mkconfig -o /boot/grub/grub.cfg
安装图形界面
pacman -S gnome gnome-extra
systemctl enable gdm
安装 NetworkManager
pacman -S networkmanager
systemctl enable NetworkManager.service
新建用户
useradd -m <username>
passwd <username>
重新启动
exit # 退出 chroot 环境
reboot
启动后需要设置的
-
开启时间自动同步
timedatectl set-ntp true timedatectl set-timezone Asia/Shanghai hwclock --systohc
-
安装配置 openssh
pacman -S openssh systemctl start sshd systemctl enable sshd
-
安装 Yay
pacman -S --needed git base-devel git clone https://aur.archlinux.org/yay.git cd yay makepkg -si