ArchLinux 安装指南(新手向)

2020年03月01日 937点热度 6人点赞 15条评论

最近小山把电脑主系统从 Windows 换到了 Linux,刚开始因为懒,用的是基于 Arch 的 Manjaro。不过没几天,就被小山一个误操作,把/etc目录给删了,熟悉 Linux 的人都知道这个目录的重要性,导致我只能重装系统。不过这次我选择了原汁原味的 ArchLinux,虽然整个安装过程没有 Manjaro 那么方便,不过也没有多么复杂。

所以我就想写一篇面向新手 Arch 安装指南,本指南的目标是让你在 10 分钟之内装好它,包括桌面环境和显卡驱动等,虚拟机和物理机都适用。即使你已经装好了 ArchLinux,我相信本指南某些地方一样可以帮助到你。

本指南和其他安装教程/指南的不同之处在于,安装后的 ArchLinux 是可以真正日常使用的系统,不只是炫技用的。小山现在天天使用 ArchLinux,所以我遇到的问题都会在本指南给你解决方案,如果你遇到了其他问题也可以加入 QQ 群与我讨论。

ArchLinux

前言

既然你已经准备安装 ArchLinux,想必对 ArchLinux 已经有一个大致的了解了,如果你还不了解 ArchLinu,可以前往以下网页简单的了解它。

ArchLinux 简介:https://wiki.archlinux.org/index.php/Arch_Linux

ArchLinux 常问问题:https://wiki.archlinux.org/index.php/Frequently_asked_questions

ArchLinux 与其他发行版的区别:https://wiki.archlinux.org/index.php/Arch_compared_to_other_distributions

可能有一些刚接触(了解) ArchLinux 的小伙伴在困惑它是否适合自己?

如果你符合下面这几点,我觉得就可以使用 ArchLinux。

  • 自己动手解决问题的能力,喜欢折腾钻研的精神
  • 想要自己定制系统,不喜欢其他发行版的局限性。
  • 追求一切保持简单,不喜欢多余的东西。

如果你是一个刚接触 Linux 的小白,我也很推荐使用 ArchLinux 来入门。因为 ArchLinux 的 Wiki 非常详细,你遇到的大部分问题几乎都能在 Wiki 找到答案,同时它也是很好的学习资料。ArchLinux 还有一个用户友好的社区。等你慢慢熟悉之后就会发现,原来本指南安装步骤是如此简单。

如果你只是想找一个拥有 ArchLinux 的特性,同时又省心省力的发行版,那么 Manjaro 可能是你更好的选择,这是最流行的基于 ArchLinux 的发行版,提供预设桌面环境以及图形化安装。

准备工作

你需要一台支持 UEFI 引导的电脑,最好是有线网络连接和有线键鼠(触摸板也可以)。

如果电脑不支持 UEFI,那么本指南某些步骤可能会不适合你,下面我会说明如何查看电脑是否支持 UEFI。只要不是特别老的电脑,基本都支持。如果不支持 UEFI 还想继续安装,可以加入 QQ 群与我交流。

安装系统前肯定要下载系统,前往 https://mirrors.163.com/archlinux/iso/latest/ 下载 iso 文件,下载完成后建议使用文件校验工具配合 sha1sum.txt 验证文件完整性。

准备一个 U 盘,U 盘大小大于 ISO 文件大小即可,用于制作安装启动盘。

注意:制作启动盘会清空 U 盘数据,请在制作之前做好数据备份工作。

前往 https://etcher.io 下载 Etcher(制作启动盘工具),Etcher 是跨平台软件,Windows、macOS 和 Linux 都可以使用。

如果你无法成功从官网下载 Etcher,可以通过网盘下载:https://share.weiyun.com/5OvrT9N

U 盘插入电脑后打开 Etcher,点击 [Flash form file] 选择 ArchLinux 的 iso 文件,如果你的电脑有多个 U 盘或者移动硬盘,可能需要手动更改目标设备,最后点击「Flash」开始制作。

启动盘制作完成后,重启你的电脑使其引导至启动盘,就像安装 Windows 一样。

ArchLinux 启动选项菜单出现后,选择第一项启动。

当显示类似下面的界面,说明安装环境启动成功,如果你遇到了某些错误,可以加入 QQ 群向我询问。

ArchLinux ISO

执行ls /sys/firmware/efi/efivars检测当前引导模式是否是 UEFI

如果提示无法访问,表示当前不是以 UEFI 模式启动的,检查你的电脑是否支持以及 BIOS 设置 。

稍后的安装操作会使用终端文本编辑器 nano 编辑文件,介绍一下基本用法,方向键控制光标,Ctrl + S 是保存,Ctrl + X 是退出,如果你在没有保存的情况下退出,它会询问你是否保存,这时候按下Y再按下回车即可。

安装操作的某些命令可能会比较复杂,一定要注意命令参数间的空格以及参数前的连字符数量。

检查网络

执行ip -brief link查看网卡是否被列出,输出的第一列为网卡名称,名为 lo 的网卡是虚拟网卡,如果还有其他网卡被列出,则表示网卡正常。

有线网卡接口名称一般以 e 开头,无线网卡接口名称一般以 w 开头。

有线网卡会自动配置 DHCP,一般不需要手动干预。

无线网卡执行wifi-menu扫描无线网络,然后选择无线网络并按回车,第一个提示让你设置网络名称,直接按回车默认,第二个提示输入无线网络密码,输入完密码按回车等待网络连接。

如果你是静态 IP 网络,推荐更换为 DHCP 网络再继续。

最后检查网络是否正常,执行ping -W 1 -c 4 url.cn测试网络连通性。

如果网络正常,执行timedatectl set-ntp true同步系统时间。

开启 SSH 服务(可选)

如果你觉得手动输入命令太麻烦或者担心输错,想直接从米V米复制命令的话,可以为安装环境开启 SSH,这样就可以在同一网络下的另一台电脑或手机远程执行命令。

执行passwd设置为安装环境密码,输入的时候不会显示,只管输入就可以了。

启动 SSH 服务:systemctl start sshd

执行ip -brief -4 address查看 IP 地址,输出第三列是网卡对应的 IP 地址,IP 地址不包含/后面的掩码位。比如输出的是192.168.1.2/24,IP 地址应该是192.168.1.2

然后就可以使用 SSH 客户端连接至安装环境了,下面简单说一下 Windows 10、macOS、Linux、Andorid 和 iOS 的 SSH 客户端如何使用。

记得把下列命令中的${IP}替换为安装环境的 IP 地址

Windows 10 打开 PowerShell,执行ssh [email protected]${IP},如果提示 ssh 命令不存在,可以按照 https://docs.microsoft.com/windows-server/administration/openssh/openssh_install_firstuse 进行安装。

Linux 和 macOS 在终端执行ssh [email protected]${IP}

如果询问Are you sure you want to continue connecting (yes/no/[fingerprint])?,输入yes再继续。

Android 前往 https://juicessh.com/changelog 下载安装 JuiceSSH,打开后点击右上角的闪电图标,「类型」选择 [SSH],然后在下方输入[email protected]${IP},点击 [确定] 连接即可。

iOS 安装 Termius,然后点击右上角的添加,选择 [New Host],「Hostname」填写安装环境的 IP 地址,勾选「SSH」或「Use SSH」,然后「Username」和「Password」分别填写root和密码,最后保存,点击列表中的项目连接即可。

PS:用 SSH 执行命令的输出在安装环境的电脑上不会显示

硬盘分区

如果你需要 Linux + Windows 双系统,建议使用两个硬盘分别安装。如果你想使用单硬盘安装双系统,可以加入 QQ 群与我交流。

下面的分区操作会清空目标硬盘数据,请在安装前做好数据备份工作。

执行fdisk -l查看硬盘以及分区,确定要用于安装系统的硬盘路径,比如我这里是/dev/sda

如果你有多块硬盘,第一块硬盘一般为/dev/sda 或/dev/nvme0n1 (NVME),第二块硬盘一般为/dev/sdb 或/dev/nvme0n2 (NVME),U 盘或移动硬盘也会被列出,注意不要选错。

如果你的硬盘没有被列出,可能是在 BIOS 开启了 RAID 模式(部分笔记本会默认开启),前往 BIOS 将硬盘模式改为 AHCI 模式即可。注意:更改后可能会导致现有的 Windows 无法启动。

检查硬盘

确定了硬盘路径后,开始给硬盘分区,执行fdisk ${diskPath}进入 fdisk 交互界面,把${diskPath}替换为硬盘路径。示例:fdisk /dev/sda

Fdisk

如果显示类似上面的界面,就可以进行下面的操作了。

接下来的每一步都至关重要,不要搞错了。

执行g创建新的 GPT 分区表

执行n创建第一个分区,第一个分区是 UEFI 引导必备的 ESP 分区。

出现Partition number按回车,出现First sector按回车,出现Last sector输入+260M 并按回车,第一个分区创建完毕。

执行t更改第一个分区类型,改为EFI System 类型分区。如果不更改分区类型,UEFI 将无法引导系统。

出现Partition type输入 1 并按回车,提示Changed type of partition 'Linux filesystem' to 'EFI System'.即为更改成功,注意后面一定要是EFI System

PS:给 ESP 分区分配 260M 空间是为了兼容不同硬盘,不同的 UEFI 固件,以及存放系统内核和 initramfs。对于某些早期或者有缺陷的 UEFI 实现,可能至少需要分配 512M。

执行n新建分区,第二个分区是系统分区,把所有剩余空间都分配给它。

出现Partition number按回车,出现First sector按回车,出现Last sector按回车,第二个分区创建完毕。

执行p打印分区表,对照下方截图,如果类似,则代表分区无误。

分区

最后执行w保存分区表并退出。

PS:有些教程的分区步骤会创建一个额外的 SWAP(交换空间)分区,关于交换分区和交换文件的选择参考下方的【设置交换空间】章节

PPS:如果你用来装系统的硬盘空间比较大,或者是想把系统和数据存放在不同的分区,想多几个分区也可以,具体操作可以加入 QQ 群与我交流。

格式化并挂载分区

格式化 ESP 分区为 FAT32:mkfs.fat -F 32 ${partPath},把${partPath}替换为第一个分区的路径,示例:mkfs.fat -F 32 /dev/sda1

PS:如果你在格式化 ESP 分区的时候提示:WARNING: Not enough clusters for a 32 bit FAT!,请尝试使用mkfs.fat -s 2 -F 32 ${partPath}mkfs.fat -s 1 -F 32 ${partPath}命令来格式化 ESP 分区,否则 UEFI 固件可能会无法读取 ESP 分区。

格式化系统分区为 ext4:mkfs.ext4 ${partPath},把${partPath}替换为第二个分区路径,示例:mkfs.ext4 /dev/sda2

如果你使用的是固态硬盘,想要发挥出极限性能,可以在系统分区尝试 XFS 文件系统:mkfs.xfs ${partPath},不过它可能需要手动维护。参考:https://wiki.archlinux.org/index.php/XFS

PS:XFS 分区的调整大小目前只支持扩容,不支持减少。

挂载系统分区:mount ${partPath} /mnt,把${partPath}替换为第二个分区路径,示例:mount /dev/sda2 /mnt

创建 ESP 分区挂载路径:mkdir /mnt/boot

挂载 ESP 分区:mount -o fmask=0077,dmask=0077 ${partPath} /mnt/boot,把${partPath}替换为第一个分区路径,示例:mount -o fmask=0077,dmask=0077 /dev/sda1 /mnt/boot

检查分区是否挂载成功:df,如果输出包含类似以下行,则代表挂载成功。

/dev/sda2       20248140  45084  19151464   1% /mnt
/dev/sda1         262128      1    262128   1% /mnt/efi

设置镜像源(推荐)

安装环境默认启用了所有的软件源镜像,为了让安装速度快一些,可以只使用中国的镜像,如果你不在中国可以省略这个操作。

执行curl -L -o /etc/pacman.d/mirrorlist "https://www.archlinux.org/mirrorlist/?country=CN"下载中国镜像源文件

执行nano /etc/pacman.d/mirrorlist使用 nano 文本编辑器编辑镜像源文件,删除前几行#Server = 前面的#,然后保存并退出。

PS:某些镜像同时提供 HTTP 和 HTTPS 协议,这些镜像只需要删除 HTTPS 行前面的#

PPS:由于这个文件是按照字母排序的,推荐安装完系统后选择一个速度较快的镜像源,并把它放在其他镜像源前面,阿里云华为云腾讯云这些云服务商也有 ArchLinux 的镜像,但是还没有加入到官方镜像列表,大家也可以手动添加他们的镜像源使用。

安装系统

安装所需软件包到系统分区:pacstrap /mnt base base-devel linux linux-firmware amd-ucode intel-ucode bash-completion git grub nano networkmanager openssh pacman-contrib

虚拟机用户不需要安装amd-ucode intel-ucode

如果你使用了 XFS 文件系统,还需要安装xfsprogs

静静的等待安装完成

安装完成后执行genfstab -U /mnt >> /mnt/etc/fstab生成 fstab 文件

最后执行arch-chroot /mnt进入新安装的系统环境

系统初始化设置

设置中国时区:ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

同步硬件时钟:hwclock -w

注意把下列命令的${hostname}替换为你的主机名,主机名建议使用小写字母组成,最多 64 个字符,你可以使用下面的输入框验证主机名是否正确。

设置系统主机名:echo ${hostname} > /etc/hostname

执行nano /etc/hosts编辑 Hosts 文件并添加以下行:

127.0.0.1 localhost 
127.0.0.1 ${hostname}
::1 localhost ip6-localhost ip6-loopback
::1 ${hostname}

执行nano /etc/locale.gen编辑本地化配置文件,删除以下行前面的#,可以使用Page UpPage Down健来快速翻页上下滚动。

#en_US.UTF-8 UTF-8
#zh_CN.UTF-8 UTF-8
#zh_HK.UTF-8 UTF-8
#zh_SG.UTF-8 UTF-8
#zh_TW.UTF-8 UTF-8

你如果需要其他本地化,也可以删除其他行前的#,不过行末尾一定要是 UTF-8。

然后保存退出,执行locale-gen生成本地化环境。

设置默认本地化环境:echo LANG=en_US.UTF-8 > /etc/locale.conf

设置 root 用户密码:passwd

注意把下列命令的${username}替换为你的用户名,用户名建议使用小写字母组成(不能包含大写字母、不能以数字开头),最多 32 个字符,你可以使用下面的输入框验证用户名是否正确。

创建一个普通用户:useradd -m -G wheel -s /bin/bash ${username}

设置新用户密码:passwd ${username}

执行VISUAL=nano visudo编辑 sudo 配置文件,删除# %wheel ALL=(ALL) ALL行前面的#以便可以让刚刚创建的新用户使用sudo命令获取 root 权限。

安装引导管理程序(重要):

安装 GRUB:grub-install --removable --target=x86_64-efi --efi-directory=/boot,出现Installation finished. No error reported.字样表示安装成功。

生成 GRUB 配置文件:grub-mkconfig -o /boot/grub/grub.cfg

退出 chroot 环境:exit

执行umount /mnt/efiumount /mnt卸载分区,执行顺序不能错。

执行reboot重启系统,如果没有意外,你应该成功启动至安装好的系统并看到以下界面,login前面显示的是主机名。输入刚才创建的新用户名和密码登陆系统。

成功启动

PS:如果你安装了多个系统,可能重启后并不会进入 ArchLinux,解决方法请参考文章最后。

进阶设置

root 权限小贴士

sudo 是用来临时获取 root 权限的命令,如果你执行的命令需要 root 权限,就在命令前面加上sudo,sudo 询问密码的时候请输入当前用户密码,而不是 root 密码。

虽然su也可以用于获取 root 权限,但是它不安全,不到万不得已的时候千万不要使用su命令,如果你需要获取完整的 root 权限,可以使用sudo -i进入 root 用户环境。

root 权限虽好,但不能滥用,使用之前确保你执行的命令的确需要 root 权限才能正常工作,滥用 root 权限轻则会导致一些程序无法正常工作,重则会危及系统的安全。

执行sudo systemctl enable --now NetworkManager启用网络管理器(注意大小写)

如果是无线网络,执行nmtui使用图形界面进行配置,选择「Activate a connection」连接无线网络。

如果你还想继续使用 ssh 操作,执行sudo systemctl start sshd启动 SSH。

启用 NTP 同步时间服务:sudo systemctl enable systemd-timesyncd.service

每周自动清理不需要的 Pacman 软件包缓存:sudo systemctl enable paccache.timer

如果你使用的硬盘支持 TRIM 特性(大多数固态硬盘都支持),建议启用定时执行 TRIM:sudo systemctl enable fstrim.timer

执行sudo nano /etc/pacman.conf编辑 Pacman 配置文件,删除以下行前面的#以启用 32 位系统库的支持。

#[multilib] 
#Include = /etc/pacman.d/mirrorlist

保存后执行sudo pacman -Sy更新软件数据库

添加 ArchLinuxCN 存储库(推荐):

Arch Linux 中文社区仓库是由 Arch Linux 中文社区驱动的非官方软件仓库,包含许多官方仓库未提供的额外的软件包,以及已有软件的 git 版本等变种。一部分软件包的打包脚本来源于 AUR,但也有许多包与 AUR 不一样。(关于 AUR 的介绍请见下面的章节)

ArchLinuxCN 依靠镜像加速可以提供比 AUR 更好的体验,而且还省去了部分软件的编译。如果你的网络环境导致无法从 AUR 顺利安装某些软件包,推荐添加。

执行sudo nano /etc/pacman.conf编辑 Pacman 配置文件,在底部添加以下行。

[archlinuxcn]
Server = https://mirrors.163.com/archlinux-cn/$arch

保存后执行sudo pacman -Sy更新软件数据库

上面的配置使用了网易的 ArchLinuxCN 镜像,你也可以选择其他镜像:https://github.com/archlinuxcn/mirrorlist-repo

安装 CPU 调频守护程序(可选):

CPU 调频守护程序可以帮助我们更好的控制 CPU 的频率和功耗

安装:sudo pacman -S cpupower

启用:sudo systemctl enable cpupower

如果你不需要桌面环境和图形界面,那么你的安装到这里就可以结束了,也可以看看下面的 AUR 介绍和推荐阅读。

安装显卡驱动、Vulkan 和硬件加速支持:

如果不知道自己该装那个,可以加入 QQ 群与我交流。

小山只实际测试过 AMD 和 Intel 的显卡驱动安装,Nvidia 显卡驱动安装尚未测试。

Vulkan 是跨平台图形接口,目前主要用途是在 Linux 下运行 Windows 游戏以及部分 Linux 游戏(详见:Linux 运行 Windows 游戏指南),但并不是所有显卡都支持它,你可以前往 http://vulkan.gpuinfo.org/listreports.php?platform=linux 查询你的显卡是否支持 Vulkan。

AMD

显卡驱动(GCN 1 及以上架构):sudo pacman -S mesa lib32-mesa xf86-video-amdgpu libva-mesa-driver lib32-libva-mesa-driver mesa-vdpau lib32-mesa-vdpau opencl-mesa lib32-opencl-mesa ocl-icd

显卡驱动(TeraScale 1 2 3 架构):sudo pacman -S mesa lib32-mesa xf86-video-ati libva-mesa-driver lib32-libva-mesa-driver mesa-vdpau lib32-mesa-vdpau opencl-mesa lib32-opencl-mesa ocl-icd

Vulkan:sudo pacman -S vulkan-icd-loader lib32-vulkan-icd-loader vulkan-radeon lib32-vulkan-radeon

andvlk 是由 AMD 开源的 AMD GPU Vulkan 实现,这个实现比 Mesa 的 RADV 在某些场景下性能会好一些,并且系统允许安装多个 Vulkan 实现并让软件自行选择,推荐游戏玩家安装。

Intel

显卡驱动:sudo pacman -S mesa lib32-mesa xf86-video-intel

硬件视频加速:如果你的 Intel CPU 架构是 Broadwell (6代) 或以上的安装intel-media-driver,反之则安装libva-intel-driver lib32-libva-intel-driver

OpenCL:如果你的 Intel CPU 架构是 Broadwell (6代) 或以上的安装intel-compute-runtime ocl-icd,反之则安装beignet ocl-icd,也可以选择不安装。

Vulkan:sudo pacman -S vulkan-icd-loader lib32-vulkan-icd-loader vulkan-intel lib32-vulkan-intel

Nvidia

GeForce 630 及以上型号:sudo pacman -S nvidia nvidia-utils lib32-nvidia-utils opencl-nvidia lib32-opencl-nvidia ocl-icd cuda

GeForce 620 及以下型号(开源驱动)(没有 Vulkan 支持):sudo pacman -S mesa lib32-mesa xf86-video-nouveau libva-mesa-driver lib32-libva-mesa-driver mesa-vdpau lib32-mesa-vdpau

由于 GT620 及以下型号不被 Nvidia 最新官方驱动支持,推荐使用开源驱动。

PS:如果是双显卡的笔记本,运行软件时可以选择使用的显卡(默认是集成显卡)。参见:https://wiki.archlinux.org/index.php/PRIME

PPS:虚拟机需要根据虚拟化软件不同而安装不同的显卡驱动

安装桌面环境、字体和实用工具:

我选择了 KDE Plasma 桌面环境,Plasma 是功能全面而且对新手友好的桌面环境,而且有很高的可定制性,并且它在最近的更新中,性能提升了很多。

安装:sudo pacman -S sddm plasma gst-plugins-good noto-fonts-cjk noto-fonts-emoji kdialog konsole gtk2 gtk3 xdg-user-dirs packagekit-qt5 pulseaudio-alsa

PS:如果询问选择,直接回车。

如果笔记本用户,推荐安装fwupd以便接受来自厂商的固件更新。

卸载 Plasma 附带的无用软件包:sudo pacman -Rns bluedevil kgamma5 plasma-browser-integration plasma-sdk plasma-thunderbolt plasma-vault plasma-workspace-wallpapers

软件包介绍

以下软件包根据自己的需求决定是否卸载

bluedevil: 用于管理蓝牙的系统设置界面

kgamma5: 用于调整显示器的伽玛设置

plasma-browser-integration: 用于 Plasma 的浏览器集成,支持 Chrome 和 Firefox,推荐保留。

plasma-sdk: 对 Plasma 开发者有用的应用程序

plasma-thunderbolt: 用于管理 Thunderbolt(雷电)设备的设置界面

plasma-vault: 用于创建加密的保险库(需要额外的可选依赖)

plasma-workspace-wallpapers: Plasma 额外附带的壁纸

创建 XDG 用户目录:systemctl --user start xdg-user-dirs-update.service

执行sudo SYSTEMD_EDITOR=nano systemctl edit sddm编辑 SSDM 服务单元配置,文件内容:

[Service]
Environment="LANG=zh_CN.utf8"

如果是繁体中文用户,可以把zh_CN.utf8改为zh_TW.utf8

安装蓝牙支持(可选):

安装:sudo pacman -S bluedevil bluez bluez-utils pulseaudio-bluetooth

启用:sudo systemctl enable --now bluetooth

设置交换空间(可选)

交换空间(Swap)是硬盘上的一块区域,通俗的讲就是虚拟内存,跟 Windows 下的虚拟内存(分页文件)是一样的,当内存不够用的时候内核会把部分内存数据转移到交换空间,从而使需要更多内存的程序可以运行。

交换空间是可选的,如果你运行的程序需要 12G 的内存,而你只有 8G 的内存,那么你可以创建 4G 的交换空间使程序正常运行,如果你的物理内存足够程序使用,可以不需要交换空间。

由于交换空间是使用硬盘作为存储介质,所以它无法达到像物理内存的速度,特别是在机械硬盘上,硬盘速度太慢,会使交换空间弊大于利。

可能有些人会告诉你虚拟内存的大小需要是物理内存的两倍,无论是 Windows 还是 Linux,这种说法是完全错误的,虚拟内存的大小完全根据需求来确定(Windows 可以自动管理虚拟内存大小)。

我的建议:如果你拥有 12G 或更多的物理内存,可以先不着急创建交换空间,等物理内存不够用的时候,再创建交换空间也不迟。

你或许也可以尝试一下 ZswapZRAM,两者皆在提供在内存中提供压缩的交换空间,从而使物理内存可以容纳更多的数据,减少硬盘上的交换空间的 I/O 操作,有效延长固态硬盘寿命,代价是使用更多的 CPU。

以下提供手动创建并启用交换空间的方法,你也可以使用systemd-swap自动管理 交换空间(Swap)、Zswap 和 ZRAM。参见:https://github.com/Nefelim4ag/systemd-swap

注意:当你启用了交换空间,Plasma 的电源菜单会出现「休眠」选项,但是它并不会工作,因为休眠需要配置内核参数以及 initramfs hook。

交换分区 VS 交换文件:

交换空间用硬盘上的一块区域作为虚拟内存,这块区域既可以是一个文件,也可以是一个完整的分区。

以前的 Linux 安装会建议为交换空间创建一个单独的分区,以确保交换空间的最佳性能。这种说法是因为在机械硬盘上,硬盘扇区的开头速度会更快,完整的分区还可以避免碎片等问题。但是缺点也很明显,一旦建立分区,调整大小会非常麻烦,自由度较低。

现在的电脑大多数都使用固态硬盘,没有了机械硬盘的一些限制,所以更推荐使用交换文件,这样可以使交换空间更加灵活。

创建交换空间:

创建一个 4G 大小的交换空间文件(可以根据自己的需求更改大小):sudo fallocate -l 4G /swapfile

设置正确的权限防止漏洞:sudo chmod 600 /swapfile

格式化交换空间文件:sudo mkswap /swapfile

启用交换空间文件:sudo swapon /swapfile

执行sudo nano /etc/fstab编辑 fstab 文件,在最下面添加一行/swapfile none swap defaults 0 0以便在系统启动时自动启用交换空间。

删除交换空间:

关闭交换空间文件:sudo swapon /swapfile

删除交换空间文件:sudo rm -f /swapfile

编辑/etc/fstab删除上面添加的那一行

优化交换空间:

执行sudo nano /etc/sysctl.d/99-swap-optimization.conf创建并编辑交换空间优化策略文件

文件内容:

vm.swappiness = 5
vm.vfs_cache_pressure=50

Plasma 桌面环境配置

执行sudo systemctl enable --now sddm.service启动显示管理器(用于管理桌面环境),输入密码登陆桌面环境。


点击屏幕左下角的按钮打开应用启动器,点击「System Settings」打开系统设置。

点击「Regional Setting」,点击系统设置界面右下角的「Add languages...」添加简体中文和繁体中文,并把英文排到最后,简繁排第一和第二,然后点击右下角的「Apply」。点击左侧的「Formats」,选择「Regional」为「中国 - 简体中文 (zh_CN)」,或者选择你所在的区域,然后点击右下角的「Apply」。

按下Ctrl + Alt + Delete,选择「Log Out」注销会话并重新登录使其生效。

PS:简繁的顺序取决于个人,因为有些程序可能没有简体或繁体翻译,所以同时添加简繁可以在没有其中一种翻译的情况下使用另一种翻译,如果两个都没有再使用英文。

在应用启动器里找到「Konsole」,这是个终端仿真器,以后就用它执行命令,也可以通过Ctrl + Alt + T快捷键打开。

安装输入法、浏览器和其他实用工具

安装:sudo pacman -S fcitx-im fcitx-libpinyin kcm-fcitx firefox firefox-i18n-zh-cn firefox-i18n-zh-tw dolphin ark kwrite gwenview

软件包介绍

fcitx-im: Fcitx 输入法框架(或许你喜欢 IBus?

fcitx-libpinyin = 基于 libpinyin 的拼音/双拼输入法,kcm-fcitx = 集成 Fcitx 输入法设置到 Plasma 的系统设置界面,这两个软件包可以根据自己的偏好进行选择,如果你不使用拼音的话,Fcitx 也内置了很多输入法可供选择。

更多基于 Fcitx 的中文输入法参考:https://wiki.archlinux.org/index.php/Fcitx#Chinese

firefox firefox-i18n-zh-cn firefox-i18n-zh-tw: FireFox 浏览器和简繁中文语言包,如果你更喜欢使用 Chromium / Chrome,可以安装chromium软件包。

PS:Chromium 是开源版的 Google Chrome,它们的区别:https://en.wikipedia.org/wiki/Chromium_(web_browser)#Differences_from_Google_Chrome。Google Chrome 需要使用 AUR 安装,参见下方关于 AUR 的介绍。

dolphin = 文件管理器,ark = 压缩包管理器,kwrite = 文本编辑器,gwenview = 图片浏览器,这些软件包都属于 KDE 家族,可以根据自己的需要进行安装,或者用别的软件包替代。

更多 KDE 家族应用:https://kde.org/applications/

字体配置优化:d=$HOME/.config/fontconfig/conf.d && mkdir -p $d && curl -L -o $d/70-noto-fonts.conf https://cdn.mivm.cn/www.mivm.cn/archives/archlinux-installation-guide-simple/noto-fonts.conf,这个字体预设是小山改自 Noto Font CJK 附带的预设,可以自动根据语言选择对应的 Noto Fonts CJK 字体。

执行nano ~/.xprofile配置输入法环境变量,添加以下行:

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export [email protected]=fcitx

PS:输入法需要重启系统或重新登录才会生效

输入法默认激活快捷键:Ctrl + 空格

输入法的设置可以在 「系统设置」→「区域设置」→「输入法」界面修改(前提是安装了 kcm-fcitx),默认启用了很多个输入法,推荐只保留一个。

Plasma 设置优化

打开「系统设置」

字体:除了等宽字体,其余字体修改为 [Sans Serif],点击右下角的「应用」。如果你觉得字体看起来不正常(对比下图),可以加入 QQ 群与我交流。

工作空间行为:把「点击行为」修改为 [双击打开文件和文件夹],点击右下角的「应用」。这个看个人习惯,习惯 Windows 的推荐修改。

应用程序:把「默认程序」的浏览器修改为 [在下面的应用程序中],点击右下角的「应用」。否则打开链接时 Plasma 会先解析链接,造成打开速度变慢。

开机和关机:把 SDDM 的主题更改为「微风」

如果你不确定其他设置选项更改后是否会产生副作用,可以加入 QQ 群小山交流。


重启系统开启 Linux 之旅

PS:Discover 可以用于安装、更新系统软件包、来自电脑厂商固件以及 Plasma 的插件(主要用于软件包更新提醒)(不包括 AUR 软件包)

KDE on ArchLinux

安装 AUR 软件包管理器

什么是 AUR?

AUR 是 Arch 用户软件仓库(Arch User Repository),里面的软件包由来自社区的用户进行维护,他们编写好软件包的构建脚本,其他用户可以很方便的安装某个软件包。

PS:AUR 的软件包大多数都没有经过测试,使用风险需要自己承担。

AUR 软件包的安装和更新操作默认需要手动进行,并不能像使用 pacman 那样一键安装和更新,不过一些优秀的 AUR 包管理工具可以让你像使用 pacman 那样安装 AUR 包。

我推荐使用 yay 作为 AUR 包管理工具,因为它有着几乎和 pacman 一样的使用方法(参数),可以大幅度的降低学习成本。

不过我还是推荐大家学习怎么手动安装 AUR 软件包,以备不时需,下面安装 yay 的操作就是安装大部分 AUR 软件包的过程。

安装 yay 步骤:

克隆 yay 的 AUR 存储库:git clone https://aur.archlinux.org/yay.git yay

转到 yay 存储库目录:cd yay

构建软件包并安装:makepkg -is

清理工作:cd .. && rm -rf yay


现在可以使用 yay 来管理系统软件包和 AUR 软件包了,如果官方软件仓库不存在对应的包,它会自动搜索 AUR 仓库。

比如安装 Google Chrome:yay -S google-chrome

yay 更多用法参考:https://github.com/Jguer/yay/blob/next/README.md

注意:不能使用 root 权限执行yay或其他和 AUR 相关的命令,这些命令需要 root 权限时会自动请求。

AUR 软件包仓库:https://aur.archlinux.org/

关于多系统启动

如果多个系统分别被安装在不同的硬盘,那么只需要在电脑启动的时候引导不同的硬盘就可以了。

也可以加入 QQ 群小山询问如何用命令重启到指定系统

建议阅读

建议大家阅读下以下 Wiki 以方便更好的使用和管理 ArchLinux:

应用程序列表:https://wiki.archlinux.org/index.php/List_of_applications,你可以在这里按照用途找到大部分软件。

系统维护:https://wiki.archlinux.org/index.php/System_maintenance

systemctl 基本用法:https://wiki.archlinux.org/index.php/Systemd#Basic_systemctl_usage

pacman 软件包管理器:https://wiki.archlinux.org/index.php/Pacman,安装/卸载/更新软件全靠它。

AUR 存储库:https://wiki.archlinux.org/index.php/Arch_User_Repository

蓝牙:https://wiki.archlinux.org/index.php/Bluetooth

Synaptics 触摸板:https://wiki.archlinux.org/index.php/Touchpad_Synaptics,建议 Synaptics 触摸板的笔记本用户阅读。

Bash:https://wiki.archlinux.org/index.php/Bash,你输入的命令实际上是先传递到 Shell,由 Shell 传递给系统执行,而 Bash 是 Shell 的一种,也是系统安装后的默认 Shell,重点是命令自动补全和技巧。

腾讯 QQ:https://wiki.archlinux.org/index.php/Tencent_QQ,你可以加入 QQ 群小山询问如何自己折腾安装 QQ。

中国大陆用户解决方案:https://wiki.archlinux.org/index.php/General_recommendations#中国大陆用户解决方案

建议阅读 Wiki 时选择英文,看不懂的可以使用浏览器翻译一下。

如果需要中文版本的 Wiki,建议在阅读之前看下页面上提示的最后翻译更新时间,如果时间超过 1 年或者半年,那么翻译可能已经过时,有些操作可能不适用于当前版本。

如果你有能力,可以把对你有帮助的 Wiki 翻译成中文,以帮助更多的用户。


欢迎加入 QQ 群小山交流,我以后也会推出更多关于 Linux 的文章。

微信公众号二维码

微信扫描二维码关注我们

小山

一个什么都不会但要装作很厉害的人

文章评论

  • lss

    为什么一会/boot 一会/efi啊,是不是有问题

    2020年05月07日
    • 小山

      没有问题,安装好的系统不需要再改动任何了,我改动后的教程都是针对新安装的用户。
      更改 ESP 分区的挂载路径是为了以后如果想更换引导程序比较方便

      2020年05月07日
      • lss

        你创建的是/boot目录,后面实例却把引导装在了efi目录

        2020年05月07日
        • 小山

          感谢指正,示例命令是我大意了。

          2020年05月07日
  • NOEYE

    为什么我虚拟机装arch按照步骤完成后,重启还是在选择安装系统界面,步骤不报错。

    2020年04月26日
    • 小山

      把虚拟机的安装光盘移出,如果移出后无法启动,可能是你没有安装引导程序。

      2020年04月26日
      • NOEYE

        不是选择ISO映像文件安装吗?

        2020年04月26日
        • 小山

          安装完就不需要了啊

          2020年04月26日
      • NOEYE

        应该是/dev/sda1 分区类型改EFI System失败,怎么办?

        2020年04月26日
        • 小山

          你加 QQ 群吧,交流方便。

          2020年04月26日
  • 66666

    作者在吗??我,安装过程装不上 linux-firmware 镜像源里好像都没有,外国的慢的直接取消了求助!! :persevering:

    2020年03月30日
    • 小山

      我都写了安装之前先下载国内的镜像源了,有其他问题加群交流。

      2020年03月30日
  • ???

    太赞了,一次成功!! :biggrin:

    2020年03月27日
  • Lzzz

    感谢感谢。。终于装上了输入法

    2020年03月06日
  • LOGI

    🐂🍺就完事了

    2020年03月04日