尝试了Manjaro两周之后,还是感觉Arch用起来更舒服,但之前那篇《Arch Linux 安装指北》里的有些内容现在已经有更好的处理方式,所以把新的安装过程记录在此。

连接无线网:

$ iwctl
$ help
$ device list
$ station wlan0 get-networks	//假设网卡名称为 "wlan0"
$ station wlan0 connect router_name 
$ station wlan0 show

设置时间:

$ timedatectl set-ntp true
$ date

磁盘分区和格式化:

假定分区为sda1,sda2和sda3(boot,/, 和/home):

$ lsblk
$ cfdisk /dev/sda	// 假定安装磁盘名为 /dev/sda
$ mkfs.fat -F32 /dev/sda1	// boot 分区设为 FAT32
$ mkfs.ext4 /dev/sda2		// 其他分区使用 EXT4
$ mkfs.ext4 /dev/sda3

加载除boot以外的分区:

mount /dev/sda2 /mnt	// 首先加载根目录
mkdir /mnt/home
mount /dev/sda3 /mnt/home   //然后加载home目录

安装系统软件包:

$ pacstrap /mnt base linux linux-firmware

生成fstab文件:

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

进入新系统:

$ arch-chroot /mnt

同步本地时间:

$ ln -sf /usr/share/zoneinfo/Australia/Melbourne /etc/localtime
$ hwclock --systohc --utc

安装基本工具包:

$ pacman -S base-devel iwd vim grub efibootmgr

生成文字编码:

$ vim /etc/locale.gen	// 取消注释 en_US.utf8, zh_CN.utf8, zh_TW.utf8
$ locale-gen

管理员账户:

$ passwd	// 更改root密码
$ useradd -m -g users -G wheel user_name	// 增加新用户到wheel组
$ passwd user_name
$ visudo	// 取消注释 "%wheel ALL=(ALL).." 给wheel用户sudo权限

安装GRUB启动器:

$ mkdir /boot/efi
$ mount /dev/sda1 /boot/efi		// 假定sda1是预留给boot的分区
$ grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB --removable
$ grub-mkconfig -o /boot/grub/grub.cfg

如果机器上已经安装有Windows,则应使用如下命令替代刚才的grub-mkconfig命令:

$ pacman -S os-prober   //安装检测其他系统的软件
$ os-prober
$ fdisk -l			// 查找Windows的EFI分区
$ mkdir /boot/windows
$ mount /dev/sdax /boot/windows	    //假定sdax为查找到的Windows的EFI分区
$ grub-mkconfig -o /boot/grub/grub.cfg

如果提示不支持NTFS格式,请安装ntfs-3g包。

重启电脑:

$ exit
$ umount -R /mnt
$ reboot

Wifi配置:

创建文件/etc/systemd/network/wireless.network,内容如下:

[Match]
Name=wlp*
Name=wlan*

[Network]
DHCP=yes
IPv6PrivacyExtension=yes

[DHCP]
RouteMetric=1024

使用 systemctl enablesystemctl start 启动服务 systemd-networkd, systemd-resolved, 和iwd,然后安装第一步的方法连接Wifi。

图形界面:

pacman -S xorg-server xorg-xinit    // 安装图形驱动
pacman -S xfce4     // 安装xfce4

如果需要自动启动图形界面,则需要修改shell的profile文件,对bash是~/.bash_profile文件:

if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
    exec startxfce4
fi

中文显示及字体:

建议安装若干字体以显示中文和特殊符号。

$ sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji wqy-microhei
$ fc-cache --force --verbose

安装fcitxfcitx-configtool,然后添加pinyin并重新登录即可。

至此必要安装过程结束。后续内容为可选配置。


Yay:

一个很好用的包管理器。

$ pacman -S --needed git base-devel
$ git clone https://aur.archlinux.org/yay.git
$ cd yay
$ makepkg -si

Terminal 及 窗口管理器

Terminal: Alacritty Shell prompt: starship Display manager: LightDM, lightdm-gtk-greeter Tiling window manager: BSPWM Keyboard input Manager: SXHKD Status bar: Polybar Key name tool: xorg-xev Compositor: picom

USB磁盘加载:

$ pacman -S gvfs thunar-volman ntfs-3g usidkie

然后将udiskie放入启动项中(Session and Startup)。

音量键:

安装volumeicon软件并设为开机启动。也可以安装alsa-utils并设置快件键:

<your_key>: amixer set Master 5%+
<your_key>: amixer set Master 5%-

Dmenu:

安装dmenu软件,并使用dmenu_run来运行。

可将自定义命令放入/usr/bin中使dmenu可以调用。

Qemu:

安装软件qemulibvirtvirt-manager,并启动libvirtd服务,然后运行virt-manager来启动管理界面。


先装Arch后装Windows

正常安装Arch,留出空间给Windows,然后正常装Windows,然后启动时按功能键进入主板设置,将windows启动顺序往后调,然后进入Arch后执行os-prober那一段即可。

解决Windows和Linux的时间冲突:

$ timedatectl set-local-rtc 1 --adjust-system-clock

也可以安装ntp来解决。

解决GPG 服务器错误

如果在安装软件导入gpg key时出现错误gpg: keyserver receive failed: Server indicated a failure,可以尝试修改文件 /etc/resolve.conf如下:

nameserver 8.8.8.8
nameserver 8.8.4.4

解决 Picom 与 Polybar 冲突

在同时启用 picompolybar时,状态栏顶部的颜色可能发生变化,导致看起来状态栏没有贴边。解决方式是,找到polybar的配置文件中border-color一行,看起来应该类似于#AARRGGBB的格式,其中AA值是它的alpha值,将其改为FF即可。

Qemu 错误解决

如果遇到错误failed to initialize firewall backend,可安装软件iptablesdnsmasqebtables,然后重启libvirtd服务。

如果遇到错误Network default not active,可点击按钮Edit -> Connection details,然后启动默认网络并开启auto-start at boot