Arch Linux
pre-install
- 了解 archlinux
- (Optional) 安装前的准备
install
systemctl stop reflector.service
timedatectl set-ntp true
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
vim /etc/pacman.d/mirrorlist
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
lsblk
cfdisk /dev/nvme?n1
size | type | comment
1G | EFI System | /boot
32G*0.6=18G | Linux Swap |
free | Linux filesystem | /
mkfs.fat -F32 /dev/nvme?n1p1
mkswap /dev/nvme?n1p2
mkfs.btrfs -L Arch /dev/nvme?n1p3
mount -t btrfs -o compress=zstd /dev/nvme?n1p3 /mnt
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
btrfs subvolume list -p /mnt
umount /mnt
mount -t btrfs -o subvol=/@,compress=zstd /dev/nvme?n1p3 /mnt
mkdir -p /mnt/home
mount -t btrfs -o subvol=/@home,compress=zstd /dev/nvme?n1p3 /mnt/home
mkdir -p /mnt/boot
# Mount EFI
mount /dev/nvme?n1p1 /mnt/boot
# Mount Linux Swap
swapon /dev/nvme?n1p2
pacstrap /mnt base base-devel linux linux-firmware btrfs-progs
pacstrap /mnt networkmanager vim sudo zsh zsh-completions
genfstab -U /mnt > /mnt/etc/fstab
arch-chroot /mnt
vim /etc/hostname
arch
vim /etc/hosts
# Add
127.0.1.1 arch.local arch
# timedatectl set-timezone Asia/Shanghai
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc
vim /etc/locale.gen
# Find and uncomment
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
locale-gen
vim /etc/locale.conf
LANG=en_US.UTF-8
passwd root
useradd -m -G wheel -s /bin/bash <user>
passwd <user>
EDITOR=vim visudo
# Uncomment
%wheel ALL=(ALL:ALL) ALL
# AMD CPU
pacman -S amd-ucode
# AMD GPU
sudo pacman -S mesa lib32-mesa vulkan-radeon lib32-vulkan-radeon
# Intel CPU
pacman -S intel-ucode
# NVIDIA GPU
sudo pacman -Syu linux-headers
sudo pacman -S nvidia nvidia-utils nvidia-settings nvidia-dkms
sudo mkinitcpio -P
sudo modprobe nvidia
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="loglevel=5 nowatchdog"
grub-mkconfig -o /boot/grub/grub.cfg
exit
umount -R /mnt
shutdown -h now
sudo systemctl enable --now NetworkManager
lsblk -o name,mountpoint,size,uuid
# Get UUID of Swap Partition
sudo vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=5 nowatchdog resume=UUID=<swap_uuid>"
sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo vim /etc/mkinitcpio.conf
HOOKS=(base udev resume ...)
sudo mkinitcpio -P
sudo reboot
Personal do
sudo pacman -Rns \
xfce4-dict \
xfce4-terminal \
xfce4-screenshooter \
xfce4-clipman-plugin \
ristretto
# xfce4-notifyd \
# xfwm4 \
reference
cross-reference
mark
- archwsl.md
- pacman.md
- yay.md
- flatpak.md
- openssh.md
- tigervnc.md
- firewalld.md
- pipewire.md
- bluez.md
- mount.md
extra
cache
troubleshoot
Bluetooth service was skipped because of an unmet condition check …
sudo modprobe bluetooth
sudo systemctl restart bluetooth
systemctl status bluetooth
annex
