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