Arch从入门到入土

前言：Arch linux 是一个轻量、灵活、滚动更新的 Linux 发行版，衍生了诸多优秀的桌面端 linux。其官方 Wiki 更是被称为技术界的 “武林秘籍”；
但由于该 Wiki 的中文版比较陈旧，安装教程不太清楚，故先以虚拟机安装 Arch 为例实际操作一番。

准备工作：需要虚拟机环境（这里推荐使用 VMware Workstation Pro), 以及一个 ISO 镜像
VM 学习版：https://www.ahhhhfs.com/33472/
官方镜像： https://geo.mirror.pkgbuild.com/iso/2023.08.01/

一、新建虚拟机
1. 打开 VM，文件 — 新建虚拟机 — 典型 — 下一步，对于硬盘要求建议至少 20G，作为后续分区使用；CPU 及内存根据实际需求分配，一般取半数。
注意：完成后需先在编辑虚拟机设置 — 选项中设置引导为 UEFI，否则会导致奇怪的 Boot 问题。

2. 开启此虚拟机，随后进入界面，回车，跑码后进入 tty1。

二、联网并分区
1. 使用 dhcpcd 命令获取 IP 地址，由于虚拟机使用 NAT 故联网容易。
2. 使用 ping www.baidu.com 命令检查是否联网，若出现 ttl,time=xx ms 等数据说明成功，随后再 Ctrl+C 停止命令运行，避免百度被 DDOS 攻击死掉。
3. 使用 timedatectl set-ntp true 命令更新系统时间，该命令无输出，正所谓无事发生就是最好的。
4. 使用 fdisk -l 命令查看系统分区，由于虚拟机的存在只会显示一块硬盘。
5. 接下来是 Arch 安装中较难的一部分，以 20G 硬盘空间为例，我们需要划分出 512MB 的引导分区，15G 的根分区以及 5G 左右的交换分区。由于纯命令行分区比较繁琐，这里使用 cfdisk 命令打开分区工具。

回车选择 gpt 类型，可以看到如下界面：

使用左右方向键移动至New, 新建一个分区，大小为512MB, 回车确认，并移动至type将其类型改为EFI system，随后如法炮制，建立根分区（类型为 linux filesystem）和交换分区（linux swap）。
注意：上诉操作完成后需在Write中选择yes, 否则无法保存分区，随后quit回到命令行。

6. 分区结束后分别对其进行格式化，命令为
mkfs.fat -F32 /dev/sda1
mkfs.ext4 /dev/sda2
mkswap -f /dev/sda3
注意不同分区类型与格式所用命令不同。
7. 格式完成后进行挂载，使用如下命令：
swapon /dev/sda3
mount /dev/sda2 /mnt
mkdir /dev/sda2 /mnt/home
ls /mnt
mkdir /mnt/boot
mkdir /mnt/boot/EFI
mount /dev/sda1 /mnt/boot/EFI
ls /mnt
完成后即可开始组件下载。

三、安装基本组件
1. 使用大名鼎鼎的vim编辑器，将下载镜像源改为国内，提高下载速度vim /etc/pacman.d/mirrorlist

推荐使用清华源，在首行中改为如下命令：
Server = http://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch, 随后ESC，: wq 保存退出。

2. 安装基本包，使用命令pacstrap /mnt base base-devel linux linux-firmware dhcpcd一路回车下载。

3. 生成fstab文件 ，使用命令genfstab -U /mnt > /mnt/etc/fstab自动挂载分区，并用cat /mnt/etc/fstab观察分区情况。
4. 使用arch-chroot /mnt命令切换至系统环境下，此时可以设置时区，语言和主机名（hostname）。
设置上海为系统时区：
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
设置主机名： vim /etc/hostname，写入任意你想要的名字。随后在vim /etc/hosts中输入如下内容，将name改为主机名。
127.0.0.1 localhost
::1 localhost
127.0.1.1 name.localdomain name
设置语言： 使用vim /etc/locale.gen命令去掉 en_US.UTF-8 UTF-8 以及 zh_CN.UTF-8 UTF-8 行前的注释符号，并用locale-gen生成新 locale，用echo 'LANG=en_US.UTF-8' > /etc/locale.conf命令确认输出。

4. 设置 root 密码：使用passwd命令，设置并重复密码。
5. 安装微码：根据硬件选择命令：
pacman -S intel-ucode # Intel
pacman -S amd-ucode # AMD
6. 安装引导程序：pacman -S grub efibootmgr os-prober与 GRUB：
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH
生成配置文件：grub-mkconfig -o /boot/grub/grub.cfg。
7. 退出并重启虚拟机：
exit # 退回安装环境
umount -R /mnt # 卸载新分区
reboot # 重启
若成功进入登录界面即为成功，可使用neofetch命令打印系统信息。

四、安装图形界面
为便于在虚拟机中操作，我们可以安装 KDE-plasma，Xfce 等桌面环境。
1. 使用dhcpcd获得地址。
2. 新建普通用户useradd -m -G wheel username （替换 username 为你的用户名）
并设置密码passwd username 。
3. 配置 Sudo, 使用pacman -S sudo安装并在ln -s /usr/bin/vim /usr/bin/vi
visudo中删除 %wheel ALL=(ALL)ALL 前的注释符。
4.reboot 后开始安装驱动。由于NVIDIA fuck you 众所周知的原因，独显驱动比较难以安装，建议先只上核显。

以此为例，若为 AMD 核显，命令为sudo pacman -S xf86-video-amdgpu，
OpenGL 和 mesa:
sudo pacman -S mesa xf86-video-amdgpu vulkan-radeon libva-mesa-driver mesa-vdpau
sudo pacman -S opencl-mesa lib32-vulkan-radeon lib32-mesa
5. 使用命令pacman -S plasma-meta konsole dolphin安装 KDE 组件。
6. 开启 sddm 守护进程：
systemctl enable sddm
systemctl start sddm
7.reboot 后进入桌面环境，安装完成。

PS：设备的多样导致安装中可能会出现一些奇怪的问题，需要自行搜索学习，以不断提高技术水平。