本文记录安装 archlinux 的过程,由于安装过程中所见皆是英文,过程记录不自禁也半洋半中,还请读者谅解。
test if your conputer is supported by linux
Run the ubuntu live CD to test.
make a start disk
Advice ventoy.
begin installing
Set your BIOS to boot from your start disk. For nvidia GPU owner, you need to set nomodeset for booting options.
mannual install
network config
Of course, the first thing you should do when you start arch install is to configure network.
For myself, I choose to connect to Tsinghua Secure WIFI.
connect to normal wifi
use iwctl to start.
use station {iw dev} get-network.
then you see the wifis that you can connect.
use station {iw dev} connect {ssid} to connect.
then enter your password.
use ping baidu.com or ping google.com to test if you have Internet Connection.
connect to college network
for wifi
use iwctl to start and station {iw dev} get-network to confirm your target ssid.
edit config file by vim network_config:
network={
ssid="{wifi name}"
key_mgmt=WPA-EAP
eap=PEAP
identity="{user name}"
password="{password}"
phase2="auth=MSCHAPV2"
}
start connection
ip link set wlan0 up
wpa_supplicant -i {iw dev} -c {path to your config} -B
dhcpcd {iw dev}
you can test your connnection now.
for wire connection(never test this method before)
network={
key_mgmt=IEEE8021X
eap=PEAP
identity="{user name}@login.tsinghua.edu.cn"
password="{password}"
phase2="auth=MSCHAPV2"
eapol_flags=0
}
接下来同样,但是之前的 iw dev 部分需要替换成有线控制的器件名,可以使用 ip addr show 查看.
wpa_supplicant -i {iw dev} -D wired -c {path to your config} -B
创建分区以及文件系统
使用 cfdisk 这是一个现代的 fdisk 替代品,可以方便使用。
创建之后,lsblk 用于查看分区情况,之后使用 mkfs.{filesystem type you want}
这里我使用 mkfs.btrfs,因为我听说它的性能很棒,并且原生支持创建系统还原点。
挂载系统分区
配置 btrfs
格式化为 btrfs
mkfs.btrfs -f /dev/nvme0n1p3
mount /dev/nvme0n1p3 /mnt
创建所需子卷
Do not create .snapshots subvolume, because snapper will generate it.
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
btrfs subvolume create /mnt/@var
# btrfs subvolume create /mnt/@.snapshots
umount /mnt
挂载子卷
mount -o compress=zstd,subvol=@ /dev/nvme0n1p3 /mnt
# mkdir -p /mnt/{home,var,.snapshots}
mkdir -p /mnt/{home,var}
mount -o compress=zstd,subvol=@home /dev/nvme0n1p3 /mnt/home
mount -o compress=zstd,subvol=@var /dev/nvme0n1p3 /mnt/var
# mount -o compress=zstd,subvol=@.snapshots /dev/nvme0n1p3 /mnt/.snapshots
安装工具包
pacstrap -i /mnt base
生成分区表
genfstab -U -p /mnt >> /mnt/etc/fstab
cat /mnt/etc/fstab
对我来说情况有些复杂,因为我原本就有一个用于 window 的分区。
我将 / 挂载到 /mnt,/home 挂载到 /mnt/home,efi 分区挂载到 /mnt/boot/efi.
当然,如果这里没有你需要的目录,你就创建一个。
进入待安装环境
arch-chroot /mnt
开始安装
设置 root 密码
passwd
添加用户
useradd -m -g users -G wheel fateone & passwd fateone
安装必要包
Set pacman mirror vim /etc/pacman.d/mirrorslist
Add Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
pacman -S base-devel dosfstools grub efibootmgr gnome gnome-tweaks mtools neovim networkmanager openssh os-prober sudo linux linux-headers linux-firmware
Run lspci to see what gpu you have.
For nvidia pacman -S nvidia nvidia-utils
For amd pacman -S mesa lib32-mesa vulkan-radeon lib32-vulkan-radeon libva-mesa-driver mesa-vdpau
For intel iGPU pacman -S mesa lib32-mesa vulkan-intel lib32-vulkan-intel intel-media-driver
config firmware mkinitcpio -p linux
配置语言
set language nvim /etc/locale.gen to uncomment “en_US UTF8”
locale-gen
设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc
配置 grub
install grub grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Arch --recheck
boot 失败解决方案
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Arch --recheck
将/boot/efi/EFI/Archlinux/grubx64.efi复制到 /boot/efi/EFI/BOOT/BOOTx64.EFI
防止 grub 字体出现问题
cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo
用于检测双系统,可以从 arch boot windows
nvim /etc/default/grub to set GRUB_DISABLE_OS_PROBER=false
生成 grub 配置,这一步会设置 grub 启动项
grub-mkconfig -o /boot/grub/grub.cfg
启用 sshd NetworkManager gdm
systemctl enable sshd NetworkManager gdm
之后就可以 exit chroot 环境,exit之后reboot
配置 snapper
pacman -S snapper
snapper -c root create-config /
然后可以编辑配置文件
nvim /etc/snapper/configs/root
# 建议
# SUBVOLUME="/"
# ALLOW_USERS="fateone"
systemctl enable --now snapper-timeline.timer # 自动快照
systemctl enable --now snapper-cleanup.timer # 自动清理
systemctl enable --now snapper-boot.timer # 开机关机自动快照
前面的设置中我们自己设置了 /@.snapshots 子卷,并且进行了挂载,但其实我们无需管理这些,snapper 会自动管理。因此这里可以
# sudo umount /.snapshots
# sudo btrfs subvolume delete -id {} / # 删除 /@.snapshots 子卷
sudo snapper -c root create-config /
sudo snapper -c home create-config /home
配置 zram (optional)
pacman -S zram-generator
编辑配置文件
# /etc/systemd/zram-generator.conf
[zram0]
zram-size = ram
compression-algorithm = zstd
systemctl daemon-reexec
systemctl start /dev/zram0
swapon --show
sudo systemctl enable systemd-zram-setup@zram0.service
auto install
Install by archintall command.
post install prepare
gnome extension suppport
refer edge 收藏夹
browser connector[https://gitlab.gnome.org/GNOME/gnome-browser-connector]
can use paru install gnome connector
input panel[https://extensions.gnome.org/extension/261/kimpanel] app indicator[https://extensions.gnome.org/extension/615/appindicator-support]
input method
use fcitx5
sudo pacman -S fcitx5 fcitx5-gtk fcitx5-qt fcitx5-chinese-addons fcitx5-configtool
sudo pacman -S fcitx5-im fcitx5-mozc fcitx5-pinyin-zhwiki
config refer zhihu
sudo vi /etc/environmenet
#添加如下内容,并确保有关于fcitx的配置只有这俩有
#配置的具体意义,移步他的文章查阅
XMODIFIERS=@im=fcitx
QT_IM_MODULE=fcitx
vi ~/.gtkrc-2.0
#添加如下内容
gtk-im-module="fcitx"
vi .config/gtk-3.0/settings.ini
# 在[Settings]下添加
gtk-im-module=fcitx
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/IMModule':<'fcitx'>}"