跳转至

X86安装

LiveCD系统上操作

禁用reflector服务

systemctl stop reflector.service

确认是否处于UEFI模式

ls /sys/firmware/efi/efivars

连接无线网络

iwctl
device list
station wlan0 scan
station wlan0 get-networks
station wlan0 connect wifi-name
exit
ping www.bilibili.com

更新时钟

timedatectl set-ntp true
timedatectl status

分区

lsblk
parted /dev/nvme0n1
mktable gpt
mkpart EFI 0% 800MB
mkpart SWAP 800MB 16GB
mkpart PRI 16GB 100%
print
quit
fdisk -l

格式化

mkfs.vfat /dev/nvme0n1p1
mkswap /dev/nvme0n1p2
mkfs.xfs /dev/nvme0n1p3
# mkfs.ext4 /dev/nvme0n1p3
# mkfs.btrfs /dev/nvme0n1p3

挂载

Ext4/XFS

mount /dev/nvme0n1p3 /mnt
mkdir /mnt/efi
mount /dev/nvme0n1p1 /mnt/efi
swapon /dev/nvme0n1p2
df -h

Btrfs

# 为了创建子卷, 必须先挂载子卷所属的顶级子卷
mount -t btrfs /dev/nvme0n1p3 /mnt
# 创建子卷
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
# btrfs subvolume create /mnt/@snapshots
# 由于顶级子卷占据着/mnt目录, 所以需要先卸载才能挂载@子卷到/mnt
umount /mnt
# 将子卷@挂载到/mnt上
mount -t btrfs -o subvol=/@,compress=zstd,noatime /dev/nvme0n1p3 /mnt
# 将子卷@home挂载到/mnt/home上
mkdir /mnt/home
mount -t btrfs -o subvol=/@home,compress=zstd,noatime /dev/nvme0n1p3 /mnt/home
# 将子卷@snapshots挂载到/mnt/.snapshots上
# mkdir /mnt/.snapshots
# mount -t btrfs -o subvol=/@snapshots /dev/nvme0n1p3 /mnt/.snapshots
# 将顶级子卷(默认子卷ID为5)挂载到/mnt/.btrfsroot上, 方便从文件系统查看顶级子卷情况
mkdir /mnt/.btrfsroot
mount -t btrfs -o ro,subvol=/,noatime /dev/nvme0n1p3 /mnt/.btrfsroot
# 将/dev/nvme0n1p1挂载到/mnt/efi上
mkdir /mnt/efi
mount /dev/nvme0n1p1 /mnt/efi
# 挂载交换分区
swapon /dev/nvme0n1p2
df -h

系统安装

pacstrap /mnt base base-devel linux linux-headers linux-firmware archlinux-keyring
pacstrap /mnt networkmanager dhcpcd iwd vi vim sudo bash-completion
# 如果使用了timeshift
pacstrap /mnt btrfs-progs

生成fstab

genfstab -U /mnt >> /mnt/etc/fstab

chroot

arch-chroot /mnt

chroot后的系统上操作

设置主机名

echo "vmware-archlinux" > /etc/hostname

设置hosts文件

echo "127.0.0.1   localhost
::1         localhost
127.0.1.1   myarch" > /etc/hosts

设置root密码

passwd root

设置时区

ln -sf /usr/share/zoneinfo/Australia/Sydney /etc/localtime

硬件时间设置

hwclock --systohc

安装微码

根据芯片类型选择安装微码.

pacman -S intel-ucode
pacman -S amd-ucode

安装引导程序

pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
vim /etc/default/grub
# 1. 去掉 GRUB_CMDLINE_LINUX_DEFAULT 一行中最后的 quiet 参数
# 2. 把 loglevel 的数值从 3 改成 5。这样是为了后续如果出现系统错误,方便排错
# 3. 加入 nowatchdog 参数,这可以显著提高开关机速度
grub-mkconfig -o /boot/grub/grub.cfg

退出

exit
umount -R /mnt
reboot

重启后的系统上操作

测试网络

systemctl enable --now NetworkManager
# systemctl enable --now dhcpcd
curl cip.cc

创建用户

useradd -m -G wheel -s /bin/bash wenzexu

设置用户密码

passwd wenzexu

开启32位库支持

vim /etc/pacman.conf
# 去掉[multilib]一节中的注释
pacman -Syyu

修改fstab文件(若要使用Btrfs, Timeshift)

修改/etc/fstab文件, 在子卷的挂载选项中, 除了顶层子卷即subvolid=5保留之外, 将其他的所有subvolid=<value>的键值对都删去, 只剩下subvol=<path>, 这是因为Timeshift不会在回滚后自动更新subvolid, 会导致直接无法启动, 具体请见这里.

安装KDE

pacman -S plasma-meta konsole dolphin # 基本包
# plasma-meta 元软件包、konsole 终端模拟器和 dolphin 文件管理器
pacman -S  plasma-workspace # 若还需要wayland支持, 安装这些包
# N卡用户需要额外安装egl-wayland,xdg-desktop-portal包是为了如obs此类工具录制屏幕使用
# xdg-desktop-portal包组提供了不同环境下使用的软件包
# 例如kde用户可选择xdg-desktop-portal-kde包

安装Gnome

pacman -S gnome

配置启动sddm

systemctl enable --now sddm # KDE
systemctl enable --now gdm # Gnome

进入图形操作界面后的系统上操作

切换到root

su

将当前用户添加到sudoers

cd /etc
chmod 600 sudoers
echo "wenzexu ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
chmod 400 sudoers

安装VMware工具(可选)

pacman -S open-vm-tools
systemctl enable vmtoolsd
systemctl enable vmware-vmblock-fuse
pacman -S gtkmm3
reboot

执行自动化安装程序

检查必须在用户wenzexu下运行.

cd ~
sudo pacman -S --needed --noconfirm wget
wget -O setup.sh "https://raw.githubusercontent.com/ricolxwz/awesome-scripts/master/arch/setup.sh"
chmod a+x setup.sh
./setup.sh

启用蓝牙

sudo systemctl enable --now bluetooth

电源管理方案

sudo pacman -S power-profiles-daemon

安装Pipewire

sudo pacman -S pipewire-pulse pipewire-alsa pipewire-jack

评论