ArchLinux双系统装机笔记

笔者大一时期折腾 ArchLinux 双系统的笔记存档

LiveCD 阶段 #

此处略过烧录 镜像 的过程,建议用 Ventoy 免烧录

网络 #

这里只给出使用无线网络的情况,如果目标机使用以太网则略去 iwd 的步骤

但无论哪种情况,都请配置 NTP 时间

iwctl

device list
station ANY_DEVICE scan
station ANY_DEVICE get-networks
station ANY_DEVICE connect ANY_SSID

timedatectl set-ntp true

分区 #

Windows 更新将会覆写 EFI 分区导致 Linux 无法启动,笔者这里额外创建一个,然后创建 swap 分区,以便正常使用睡眠和休眠功能

以 EFI 分区为 FAT32 格式,Linux 主分区为 ext4 格式初始化 fstab,挂载它们,为下一步做准备

fdisk /dev/nvme0n1

mkfs.ext4 /dev/nvme0n1p5

mkfs.fat -F32 /dev/nvme0n1p4

mkswap /dev/nvme0n1p6

mount /dev/nvme0n1p5 /mnt && mkdir /mnt/efi && mount /dev/nvme0n1p4 /mnt/efi

genfstab -L /mnt >> /mnt/etc/fstab

软件包 #

LiveCD 在 /etc/pacman.d/mirrorlist 自动测速并选择镜像源,稍后 mirrorlist 将会自动拷贝到待装系统中

笔者希望手动覆盖该文件从而采用南大的镜像源,你也可以使用自己喜欢的镜像源

Server = https://mirrors.nju.edu.cn/archlinux/$repo/os/$arch

接下来向刚刚挂载的新文件系统中导入基础软件包与 fstab,ArchLinux 就安装好了

pacstrap /mnt base linux linux-firmware

预安装阶段 #

arch-chroot /mnt

工具 #

网络支持 (如 NetworkManager) 是必须的,否则在稍后重启系统时配置网络非常困难

ntfs-3g 和 exfat-utils 提供挂载支持,便于我们创建双系统共享盘

pacman -S networkmanager ntfs-3g exfat-utils sudo vim

本地化 #

国内用户一般使用上海时区

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

笔者选择自动生成语言配置:取消 /etc/locale.gen 中所有需要的语言的注释,然后编辑新生成的语言配置 /etc/locale.conf ,设置语言为你想要的语言,例子中为英语

en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8

locale-gen

LANG=en_US.UTF-8

主机名 #

host 的配置在 /etc/hostname/etc/hosts

myhostname
127.0.0.1    localhost
::1          localhost
127.0.1.1    myhostname.localdomain    myhostname

引导 #

笔者选择 grub 的另一个目的是联动另一个分区的 Windows Boot Manager,这样便于我们在 grub 界面中自行选择双系统中的一个启动

如果你想要实现优雅的休眠/睡眠,需要对 grub 进行额外配置:

pacman -S grub efibootmgr

grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=ArchLinux

调整位于 /etc/grub.d/40_custom 的配置,将下面的 FS_UUID 替换为 Windows10 主分区的 UUID,如果你不知道分区的 UUID,可以使用 blkid 查看

if [ "${grub_platform}" == "efi" ]; then
    menuentry "Windows Boot Manager" {
        insmod part_gpt
        insmod fat
        insmod chain
        search --no-floppy --fs-uuid --set=root ANY_FS_UUID
        chainloader /EFI/Microsoft/Boot/bootmgfw.efi
    }
fi

编辑 /etc/default/grub ,将下面的 SWAP_UUID 替换为 swap 分区的 UUID,这一步指引 ArchLinux 将休眠镜像保存至 swap 分区

GRUB_CMDLINE_LINUX_DEFAULT - quiet
GRUB_CMDLINE_LINUX + acpi_backlight=vendor
GRUB_CMDLINE_LINUX + resume=UUID=ANY_SWAP_UUID

生成 grub.cfg

grub-mkconfig -o /boot/grub/grub.cfg

/etc/fstab 中设置共享盘并开启 swap 分区

/dev/sda1       /home/goudunzii/data ntfs-3g defaults 0 0
/dev/nvme0n1p6  none             swap    defaults 0 0

swapon /dev/nvme0n1p6

启动休眠功能的最后一步,我们需要编辑 /etc/mkinitcpio.conf ,加入 resume 钩子

这里需要将 resume 字段至少加在 udev 字段之后

HOOK=(base udev ... resume)

mkinitcpio -P

修改 root 密码,然后重启

passwd root

新系统阶段 #

字体 #

重启之后的一些工作需要在终端中进行,笔者希望替换一个对眼睛更加友好的 tty 字体

该配置位于 /etc/vconsole.conf

pacman -S terminus-font

FONT="ter-118b"

创建账户 #

下面的指令为例创建自己的账户并添加 sudoers

useradd -m -s /bin/bash goudunz1

/etc/sudoers

goudunz1 ALL=(ALL) ALL

多媒体 #

新系统的网络配置可以转用 NetworkManager

为了声音和蓝牙的正常工作,这里还需要其它几个软件包

sudo systemctl enable --now NetworkManager

device wifi connect ANY_SSID password ANY_PASSWD

sudo pacman -S alsa-utils alsa-plugins bluez bluez-utils

sudo systemctl enable --now bluetooth

桌面 #

笔者建议在安装桌面之前先自查显卡驱动

  • OPENGL mesa
  • vega6(AMD) xf86-video-amdgpu
  • Intel xf86-video-intel
  • Nvidia xf86-video-nouveau

以基于 X Server 的 KDE 为例:

在安装完需要的软件包后,你可以通过 Desktop Manager (如 sddm),联动 KDE 启动,也可以采用如下操作手动配置 X Server 和 KDE

sudo pacman -S xorg xorg-xinit plasma-meta kde-utilities dolphin

cp /etc/X11/xinit/xinitrc ~/.xinitrc

~/.xinitrc 最后一大块测试用的代码去掉,换成下面的代码

export DESKTOP_SESSION=plasma
exec startplasma-x11

然后编辑 ~/.bash_profile ,这将使得 tty1 登陆时启动 X Server,再由 X Server 联动 KDE

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

当然笔者也尝试过使用 sddm,只需一条指令

sudo systemctl enable sddm

在 KDE 上启动蓝牙还需以下两个额外的软件包

sudo pacman -S pulseaudio-bluetooth pulseaudio-alsa

电源管理 #

可以使用 tlp 优化 ArchLinux 对电源的管理

sudo pacman -S tlp tlp-rdw

sudo systemctl enable --now tlp

sudo systemctl mask systemd-rfkill

sudo systemctl mask systemd-rfkill.socket

输入法 #

以 fcitx5-rime 为例:

安装软件包后,还需要配置 fcitx5 的自启动和环境变量 (在 ~/.xprofile 中)

sudo pacman -S fcitx5-im fcitx5-rime wqy-microhei

export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS=@im=fcitx5

mkdir ~/.config/autostart && cp /usr/share/applications/org.fcitx.Fcitx5.desktop ~/.config/autostart/

~/.local/share/fcitx5/rime/default.custom.yaml 中对 rime 配置添加 patch 以实现首选明月拼音简化字

patch:
  schema_list:
    - schema: luna_pinyin_simp
    - schema: luna_pinyin

参考 #