1.设置root用户密码
passwd root
ip address
查看ip地址,远程连接 ip 端口为22。用户:root,密码:root
2. 禁用 reflector 服务
2020 年,archlinux 安装镜像中加入了 reflector 服务,它会自己更新 mirrorlist(软件包管理器 pacman 的软件源)。在特定情况下,它会误删某些有用的源信息。这里进入安装环境后的第一件事就是将其禁用。也许它是一个好用的工具,但是很明显,因为地理上造成的特殊网络环境,这项服务并不适合启用。
- 通过以下命令将
reflector服务禁用:
systemctl stop reflector.service
- 通过以下命令查看该服务是否被禁用,按下
q退出结果输出:
systemctl status reflector.service
3. 再次确认是否为 UEFI 模式
禁用 reflector 服务后,我们再来确认一下是否为 UEFI 模式:
ls /sys/firmware/efi/efivars
使用 iwctl 进行连接:
iwctl # 进入交互式命令行
device list # 列出无线网卡设备名,比如无线网卡看到叫 wlan0
station wlan0 scan # 扫描网络
station wlan0 get-networks # 列出所有 wifi 网络
station wlan0 connect wifi-name # 进行连接,注意这里无法输入中文。回车后输入密码即可
exit # 连接成功后退出
timedatectl set-ntp true # 将系统时间与网络时间进行同步
timedatectl status # 检查服务状态
vim /etc/pacman.d/mirrorlist
mkfs.fat -F32 /dev/nvme0n1p1
mkswap /dev/nvme0n1p5
mkfs.btrfs -L myhome /dev/nvme0n1p2 -f
mount -t btrfs -o compress=zstd /dev/nvme0n1p2 /mnt
btrfs subvolume create /mnt/@ # 创建 / 目录子卷
btrfs subvolume create /mnt/@home # 创建 /home 目录子卷
btrfs subvolume list -p /mnt
umount /mnt
mount -t btrfs -o subvol=/@,compress=zstd /dev/nvme0n1p2 /mnt # 挂载 / 目录
mkdir /mnt/home # 创建 /home 目录
mount -t btrfs -o subvol=/@home,compress=zstd /dev/nvme0n1p2 /mnt/home # 挂载 /home 目录
mkdir -p /mnt/boot # 创建 /boot 目录
mount /dev/nvme0n1p1 /mnt/boot # 挂载 /boot 目录
swapon /dev/nvme0n1p5 # 挂载交换分区
pacstrap /mnt base base-devel linux linux-firmware btrfs-progs
pacman -S archlinux-keyring
pacstrap /mnt networkmanager vim sudo zsh zsh-completions
genfstab -U /mnt > /mnt/etc/fstab
cat /mnt/etc/fstab
arch-chroot /mnt
cat <<EOF > /etc/vconsole.conf
KEYMAP=us
EOF
cat /etc/vconsole.conf
mkinitcpio -P
echo "ArchLinux" >> /etc/hostname
vim /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 ArchLinux.localdomain ArchLinux
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc
sed -i 's/^#en_US.UTF-8/en_US.UTF-8/' /etc/locale.gen
sed -i 's/^#zh_CN.UTF-8/zh_CN.UTF-8/' /etc/locale.gen
locale-gen
echo "LANG=en_US.UTF-8" >> /etc/locale.conf
echo "LANG=en_US.UTF-8" >> /etc/profile
passwd root
pacman -S intel-ucode # Intel
pacman -S amd-ucode # AMD
pacman -S grub efibootmgr os-prober
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH
vim /etc/default/grub
进行如下修改:
- 去掉
GRUB_CMDLINE_LINUX_DEFAULT一行中最后的quiet参数 - 把
loglevel的数值从3改成5。这样是为了后续如果出现系统错误,方便排错 - 加入
nowatchdog参数,这可以显著提高开关机速度
grub-mkconfig -o /boot/grub/grub.cfg
pacman -S dhcpcd iwd networkmanager iproute2
systemctl enable dhcpcd
systemctl enable iwd
systemctl enable NetworkManager # 设置开机自启并立即启动 NetworkManager
useradd -m -G wheel -s /bin/bash vconlln
passwd vconlln
vim /etc/sudoers
找到如下这样的一行,把前面的注释符号 # 去掉:
#%wheel ALL=(ALL:ALL) ALL
vconlln ALL=(ALL) NOPASSWD:NOPASSWD:ALL
exit
umount -R /mnt
reboot
sudo pacman -S openssh
sudo systemctl enable --now sshd
sudo vim /etc/pacman.conf
[archlinuxcn]
SigLevel = Never
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
sudo pacman -Sy --needed niri alacritty fuzzel swaylock swayidle waybar swaybg xwayland-satellite sddm mako
- niri:平铺式窗口管理器
- alacritty:GPU加速的终端模拟器
- fuzzel:用于快速搜索应用
- swaylock:搭配swayidle,实现闲置一段时间后锁屏
- swayidle:闲置管理工具,可以设置超时后执行的动作
- waybar:高度可自定义的 Wayland 状态栏
- swaybg:Wayland 的桌面壁纸管理工具
- xwayland-satellite:用于运行 x11 应用的 Wayland 桥接工具
- sddm:登录管理器
- mako:通知管理器
sudo systemctl enable --now sddm.service
systemctl --user add-wants niri swayidle
这样做可以让 swayidle 软件包接管锁屏、睡眠等系统操作。
sudo pacman -S niri xdg-desktop-portal-gtk xdg-desktop-portal-gnome alacritty swaybg swayidle hyprlock xwayland-satellite dolphin sddm brightnessctl wireplumber grim flameshot breeze wshowkeys-git fcitx5 fcitx5-qt fcitx5-chinese-addons blueman noto-fonts libnotify pipewire pipewire-pulse
sudo pacman -S ttf-fira-code
systemctl --user add-wants niri.service mako.service
systemctl --user add-wants niri.service waybar.service
sudo pacman -S noto-fonts-emoji otf-font-awesome# 搜索可用的 CaskaydiaCove 相关包,这是waybar配置文件中的首选字体
yay -Ss caskaydia
yay -Ss cascadia# 安装找到的包
yay -S ttf-cascadia-code-nerd
fc-cache -fv