Archlinux 安装指北
起因:
昨天决定放一天假,想到的娱乐方式是尝试一下Archlinux,一个因难以安装和易于使用而出名的系统。我想以我多年装系统的经验,再加上用了一年多Linux,应该问题不大,结果还是在google和youtube和官方文档的帮助下搞了七八个小时。不过用起来体验确实非常爽,自由度极大,而且一劳永逸。
准备工作:
首先去arch官网下载最近的iso文件并刻录成usb启动盘并用它来启动系统。与ubuntu类似,采用一个live系统来引导,不同之处在于需要自己配置的地方很多,过程较长,如果在安装结束前重启,可能会发现新系统缺少必要组件而不得不重新用live系统重新引导。但是这种强大的配置功能也使得修复系统很轻松。
wifi-menu // 连接无线。有线连接可跳过此步。
ip add // 确认网络连接。
ping www.google.com
vim /etc/pacman.d/mirrorlist // 修改软件仓库源。
pacman -Syyy // 源连接速度测试。
硬盘分区:
现在的新机器一般都可以采用efi + gpt的分区方式。拟分区情况如下:
/boot 500M efi
/ 120G ext4
/home 其余所有空间 ext4
分区命令:
lsblk //查看当前分区状况
fdisk /dev/<sda...> // 进入分区菜单。
(fdisk command) g // 建立gpt分区表。
(fdisk command) n // 建立新分区,启示扇区可用默认值,结束扇区可输入 +xxG。
(fdisk command) t // 修改磁盘类型,efi分区值为1,其余可按L查询。
... // 建立其他分区。
(fdisk command) w // 执行上述任务并退出。
磁盘格式化:
mkfs.fat -F32 /dev/sda1 // 将efi分区格式化为fat32。
mkfs.ext4 /dev/sda2 // 其余分区使用ext4。
...
加载磁盘(boot分区先不加载):
mount /dev/sda2 /mnt // 将根目录磁盘 (注意磁盘编号!)。
mkdir /mnt/home // 创建home目录。
mount /dev/sda3 /mnt/home // 加载home目录。
mount
生成fstab文件:
mkdir /mnt/etc
genfstab -U -p /mnt >> /mnt/etc/fstab // 按当前磁盘装载情况生成配置文件。
cat /mnt/etc/fstab // 检查配置文件。
硬盘分区及加载结束。
新世界
pacstrap -i /mnt base // 加载基础包。
arch-chroot /mnt // 切换根目录到新系统。
注意此时新系统一无所有,所需工具都要安装(现在所用的命令都是由live系统提供的),以下仅提及必要软件:
pacman -S linux linux-headers linux-firmware // 安装kernel和常见驱动,可选多个kernel。
pacman -S base-devel // 包含很多基础开发包,包括gcc, sudo, which, pacman等。
pacman -S networkmanager wpa_supplicant wireless_tools netctl // 网络工具。
pacman -S dialog vim // 对话框和文本编辑工具。
systemctl enable NetworkManager // 启动NetworkManager服务。
mkinitcpio -p linux // 创建初始环境。
编码设置,修改编码文件,启用en_US.utf8, zh_CN.utf8, zh_CN.GB2312, zh_TW.utf8:
vim /etc/locale.gen // 如上所述修改编码配置。
locale-gen // 生成编码。
用户设置:
passwd // 修改root用户密码。
useradd -m -g users -G wheel <your_name> // 建立新用户并加入到wheel用户组。
password <your_name> // 设置新用户密码。
visudo // 修改sudo控制文件,启用 '%wheel All=(ALL) ALL'。
启动配置:
pacman -S grub efibootmgr dosfstools os-prober mtools // 安装启动所需工具。
mkdir /boot/EFI
mount /dev/sda1 /boot/EFI // 装载启动分区到 /boot/EFI 目录。
grub-install --target=x86_64-efi --bootloader-id=GRUB --recheck // 安装GRUB。
mkdir /boot/grub/locale
cp /usr/share/local/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo // 设置翻译文件。
grub-mkconfig -o /boot/grub/grub.cfg // 生成grub配置。
系统安装结束。现在可以重启了。
图形界面
我用的是xfce4,装好重启即可:
pacman -S xorg-server xorg-xinit // 安装图形驱动。
pacman -S xfce4 // 安装xfce。
如果xfce4的音量键有bug,可以安装一个volumeicon
软件,并设置为自动启动(settings-sessions and startup)。
USB加载:
插入usb盘可以被系统识别,但是thunar不会自动加载,所以还需要一些额外工作。
pacman -S gvfs thunar-volman // xfce的thunar需要此依赖来进行高级功能。
pacman -S ntfs-3g // 安装NTFS驱动。
pacman -S udiskie // 大存储移动硬盘装载。
并且要在设置里打开removable storage
的相关选项。可以用udiskie -a
来加载外置硬盘,也可以把此命令放到启动项里。
快捷键
设置位置:setting-keyboard。以下是我目前的快捷键配置。
cmd + g: google-chrome-stable // 启动chrome。
cmd + f: thunar // 启动文件管理器。
cmd + t: xfce-terminal // 启动终端。
ctrl + shift + p: xfce4-screenshooter -r // 截取屏幕区域。
如需要设置音量快捷键,需要先安装alsa-utils
,然后设置:
<your_key>: amixer set Master 5%+
<your_key>: amixer set Master 5%-
中文及字体
中文输入法可以安装fcitx
,然后在设置用添加pinyin
,重新登录即可。
字体比较推荐文泉驿微软雅黑(用pacman安装wqy-microhei
)和苹果的menlo(在AUR仓库,名为ttf-meslo
)。
VS Code的字体可以设置为 Meslo LG M
。
terminal可能在其余设置都没有问题的情况下仍然显示中文为乱码,可以新建一个快捷键来解决:
<your_key>: env LANG=zh_CN.utf xfce4-terminal
字体补充:
我从未想过字体渲染如此复杂。最大的影响因素是显示器的dpi,其次是字体和渲染引擎。参考Michael Yang的博客,目前linux上比较好的解决方案是安装Noto(思源)字体:
sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji
下载fonts.conf并放到 ~/.config/fontconfg
目录下,然后刷新字体缓存:
fc-cache --force --verbose
fc-cache-32 --force --verbose
再按自己需要设置dpi和各应用字体。目前我的chrome字体设置分别是Noto Serif CJK SC
, Noto Serif CJK SC
, Noto Sans CJK SC
, Noto Sans Mono CJK SC
。文驿泉雅黑在terminal的显示还不错。
其他工具
AUR 是arch的一大利器。先用git克隆用户仓库,然后进入此仓库执行makepkg -sic
。此方法可以让pacman更新此软件。
PDF 阅读可以安装 zathura
和 zathura-pdf-poppler
。
KVM 需要安装 qemu
,virsh
(?)和 virt-manager
,并执行virt-manager
启动。
参考:
Installation guide, https://wiki.archlinux.org/index.php/installation_guide
Arch Linux Full Installation Walkthrough, https://www.youtube.com/a00wbjy2vns
Archlinux 安装指南, https://www.cnblogs.com/klb561/p/9038386.html
如何在windows上享受更棒的字体渲染, https://sspai.com/post/52557
Linux下终极字体解决方案, https://https://ohmyarch.github.io/