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