2025.1.19 , 修改部分内容
2024.1.11,增加部分安装后的设置内容,修改部分BUG
2024.1.10, 修改EFI分区挂载点
2024.1.1 ,修改部分内容
2023.1.29 , 更新部分内容,加入了fcitx5安装
2023.2.1,换了块硬盘,测试了一下全新安装,半个小时完成,发现并修改一处错误
2023.2.2 , 修改部分内容
2023.2.9 , 最后加入hyprland桌面环境的安装过程链接
2023.2.28,修复了桌面安装的链接
2023.3.5,修改swapfile创建方式,修改部分内容
前言
机器老了,Gentoo编译不动了,寻思着换个系统吧,不折腾了
这次要对Archlinux下手了,在这里记录一下安装过程,可能有人需要,但是这不是教程,只能作为参考
关于Archlinux就不多说了,不知道的人也没必要看这个
其实安装Archlinux和Gentoo比较起来还是非常简单的…这两个系统难在安装后的配置… 😃
2024.1.1,目前使用archinstall还是挺方便的,但是我没弄明白怎么在安装的时候使用WIN10的EFI分区,所以还是按照传统方式安装
想到哪写到哪,可能有不少遗漏的地方,没事的时候就多翻翻archlinux wiki
本文使用archlinux官方镜像,如果使用其他镜像,可能有部分命令无法运行
一、安装前准备
1.下载ISO
在官方页面找一个镜像站下载最新的ISO文件
使用ventoy创建启动U盘,并把ISO文件复制到U盘
2.用USB启动
前2步没什么好说的…安装系统的常规操作
二、开始安装
1.检查是否是UEFI启动
# efivars --list
如果命令结果显示了内容且没有报告错误,则系统是以 UEFI 模式引导,那么就可以继续往下看,
否则就不是UEFI引导,本文不适合非UEFI引导的安装,如果强行按照本文继续安装,发生任何损失本人概不负责
2.检查网络
本文不包括无线连接的内容,如有需要,请参考官方安装教程
# ping -c3 baidu.com
如果启动模式和网络都没有问题,那么就可以开始安装了
3.更新系统时间
# timedatectl set-ntp true
4.更新mirrorlist
# reflector -c China -p https --delay 3 --completion-percent 95 --sort score --save /etc/pacman.d/mirrorlist
检查一下mirrorlist文件,个人习惯使用bfsu的镜像,可以打开mirrorlist文件把bfsu调到最上面
# cat /etc/pacman.d/mirrorlist
然后停止reflector服务
# systemctl stop reflector
5.硬盘分区
这是比较重要的部分
首先,查看硬盘设备
# lsblk -f
以我本人为例
只列出了本次安装需要用到的分区,与安装无关的硬盘就不列出来了
硬盘 | 分区 | 格式 |
---|---|---|
sda | sda1 | vfat(win10的EFI分区) |
sdb | sdb1 | btrfs(整块硬盘只有一个分区,安装archlinux) |
注意,这里要谨慎操作,我安装的时候就把U盘给格了…幸好不影响安装
(1)清空硬盘
这一步是可选的,如果你和我一样,在单独的一块硬盘安装linux,可以这么操作
如果你是在某个硬盘其中的一个分区安装,那么千万不要执行这个命令
# sgdisk --zap-all /dev/sdb
(2)分区
关于cfdisk或者其他分区工具,请自行查找使用方法,这里只是简单的单硬盘分一个区
如果你是在某个硬盘其中的一个分区安装,那么千万不要加 -z 参数
# cfdisk -z /dev/sdb
选择gpt,回车
方向键左右,选择(new)新建一个分区,选择(write)输入’yes’保存,最后选择(quit)退出
(3)格式化
# mkfs.btrfs -f /dev/sdb1
6.BTRFS创建子卷并挂载
(1)挂载btrfs分区
# mount /dev/sdb1 /mnt
(2)创建子卷
我的个人习惯创建子卷,可以根据你自己的需要增加和减少子卷
# btrfs su cr /mnt/@ // 挂载到 root,必需
# btrfs su cr /mnt/@home // home ,可选
# btrfs su cr /mnt/@pkg // 放置pacman -S 安装软件是下载的文件 , 可选
# btrfs su cr /mnt/@log // log 文件, 可选
# btrfs su cr /mnt/@snapshots // 快照文件, 可选
# btrfs su cr /mnt/@swap // swapfile ,可选
创建完成后查检一下
# btrfs su li /mnt
创建一个32G大小的swapfile,这个根据自己需要创建
# btrfs filesystem mkswapfile -s 32g /mnt/@swap/swapfile
如果一切正常,那就开始挂载子卷吧
(3)挂载子卷
首先先取消(1)部分对btrfs分区的挂载
# umount /mnt
挂载根目录子卷
(这是SSD硬盘的参数,如果是机械硬盘,有些参数不太合适,请自行查询挂载参数)
# mount -t btrfs -o defaults,compress-force=zstd:5,space_cache=v2,autodefrag,discard=async,subvol=@ /dev/sdb1 /mnt
创建其他子卷的挂载目录
# mkdir -pv /mnt/{efi,home,var/log,var/cache/pacman/pkg,.snapshots,.swap}
挂载其他子卷
其实 pkg 文件是不需要 compress 的,但是据我目前所知, btrfs是不支持子卷单独使用不同挂载参数…
# mount -t btrfs -o subvol=@home /dev/sdb1 /mnt/home
# mount -t btrfs -o subvol=@pkg /dev/sdb1 /mnt/var/cache/pacman/pkg
# mount -t btrfs -o subvol=@log /dev/sdb1 /mnt/var/log
# mount -t btrfs -o subvol=@snapshots /dev/sdb1 /mnt/.snapshots
# mount -t btrfs -o subvol=@swap /dev/sdb1 /mnt/.swap
别忘了挂载WIN10的EFI分区
注意别挂错分区,一定要挂载WIN10的EFI分区
# mount -t vfat /dev/sda1 /mnt/efi
激活SWAP
# swapon /mnt/.swap/swapfile
7.安装基本系统
本人系统CPU:INTEL ,显卡:NVIDIA ,使用ZEN内核和NVIDIA-DKMS驱动
这里就不介绍默认内核了
# pacstrap -K /mnt base base-devel linux-zen linux-zen-headers linux-firmware intel-ucode texinfo git helix mtools dosfstools btrfs-progs pacman-contrib sudo
8.生成FSTAB
# genfstab -U /mnt >> /mnt/etc/fstab
检查一下
# cat /mnt/etc/fstab
9.chroot
# arch-chroot /mnt
我个人使用helix作为默认编辑器
# ln -s /usr/lib/helix/hx /usr/bin/hx
10.本地化的一些工作
(1)时区
# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# hwclock --systohc
(2)locale
# vi /etc/locale.gen
搜索en_US和zh_CN
取消下面两行的注释
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
保存退出
# locale-gen
(3)LANG
不建议设为zh_CN
# echo "LANG=en_US.UTF-8" > /etc/locale.conf
(4)主机名
# echo '主机名' > /etc/hostname
11.grub引导和一些其他工具
# pacman -S grub efibootmgr os-prober networkmanager
# grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=Archlinux
# grub-mkconfig -o /boot/grub/grub.cfg
15.收尾工作
(1)root密码
# passwd
(2) 创建用户并设置密码
# useradd -m -G wheel 用户名
# passwd 用户名
(3) 启用 networkmanager管理网络
# systemctl enable NetworkManager
三、安装完成重启
# exit
# swapoff /mnt/.swap/swapfile
# umount -R /mnt
# reboot
四、重启后的一些设置
先用root登录
设置一下sudo
# EDITOR=hx visudo
找到下面一行,取消注释
%wheel ALL=(ALL:ALL) ALL
双系统时间问题
百度:Windows 系统使用 UTC
# timedatectl set-ntp true
双启动引导
# hx /etc/default/grub
取消最后一行的注释
重新生成grub.cfg文件
# grub-mkconfig -o /boot/grub/grub.cfg
设置archlinuxcn
# hx /etc/pacman.conf
取消Color和ParallelDownloads = 5 两行的注释,添加一行ILoveCandy(下载包时使用吃豆人动画)
Color
ParallelDownloads = 5
ILoveCandy
在文件最后加入archlinuxcn仓库
全部仓库地址在这里
[archlinuxcn]
Server = https://mirrors.bfsu.edu.cn/archlinuxcn/$arch
# pacman -Sy archlinuxcn-keyring
安装rust,本人正在学习rust中~
先退出root,用自己的账号登录
$ sudo pacman -S rustup
配置rustup使用国内境像,编辑.bashrc,如果后期使用zsh,则在.zshrc中添加下面两行
$ hx ~/.bashrc
export RUSTUP_DIST_SERVER=“https://rsproxy.cn”
export RUSTUP_UPDATE_ROOT=“https://rsproxy.cn/rustup”
$ source ~/.bashrc
创建cargo文件夹,新建config文件,加入下面的内容
$ mkdir -v ~/.cargo
$ hx ~/.cargo/config.toml
[source.crates-io]
replace-with = ‘rsproxy-sparse’
[source.rsproxy]
registry = “https://rsproxy.cn/crates.io-index”
[source.rsproxy-sparse]
registry = “sparse+https://rsproxy.cn/index/”
[registries.rsproxy]
index = “https://rsproxy.cn/crates.io-index”
[net]
git-fetch-with-cli = true
使用rustup安装rust的稳定版,如果想用beta或者nightly,就把stable改为beta或者nightly
$ rustup default stable
安装paru,管理AUR软件 ,也可以用yay ,我个人比较喜欢paru,因为它是用rust写的,仅此而已,反正我是不喜欢python 😦
$ sudo pacman -S paru
修改一下paru配置文件,具体项目根据自己需求设置
$ sudo hx /etc/paru.conf
这是我的paru配置文件
[options]
PgpFetch
Devel
Provides
DevelSuffixes = -git -cvs -svn -bzr -darcs -always -hg -fossil
BottomUp
RemoveMake
SudoLoop = true
CleanAfter
AUR编译优化
$ sudo hx /etc/makepkg.conf
CFLAGS=“-march=native -O2 …” # 先将 -march 和 -mtune 删除,再添加 -march=native
MAKEFLAGS=“-j$(nproc)” # 不要忘记去掉“#”,多核处理器可以启用并行编译,缩短编译时间
BUILDDIR=/tmp/makepkg # 去掉“#”,使用内存文件系统进行编译
COMPRESSZST=(zstd -c -z -q --threads=0 -) # 在压缩时使用多个 CPU 核心
注意:
在 tmpfs 中构建大型软件包时可能会内存不足。
tmpfs 目录挂载时不能使用 noexec 选项,否则编译命令无法执行。
在 tmpfs 中编译的文件重启后会消失,设置 PKGDEST 选项可以将构建结果保存到其它目录。
OK,基本系统安装完毕
五 安装桌面
我使用JaKooLit/Arch-Hyprland配置,这一步要求网络(都懂)
如果没有条件,可以百度其他桌面环境安装
首先安装uwsm
$ paru uwsm
$ git clone --depth=1 https://github.com/JaKooLit/Arch-Hyprland.git ~/Arch-Hyprland
$ cd ~/Arch-Hyprland
$ ./install.sh
运行安装脚本会自动安装所需要的包,包括显卡和声卡驱动等等,基本属于即开即用了,只需要少量的自定义设置。
等待一段时间之后,重启进入桌面.
WIN + ENTER打开终端
安装字体,个人比较喜欢fira,根据自己喜好选择字体吧
$ sudo pacman -S noto-fonts-cjk ttf-firacode-nerd ttf-hack-nerd
打开字体引擎
$ sudo vi /etc/profile.d/freetype2.sh
取消最后一行的注释
安装输入法
$ sudo pacman -S fcitx5-im fcitx5-chinese-addons
编辑环境变量,这些环境变量在启动Hyprland的时候生效
$ hx .config/hypr/UserConfigs/ENVariables.conf
加入下面的内容
env = LANG,zh_CN.UTF-8
env = INPUT_METHOD,fcitx
#env = GTK_IM_MODULE,fcitx #这一行注释掉
env = QT_IM_MODULE,fcitx
env = XMODIFIERS,@im=fcitx
env = SDL_IM_MODULE,fcitx
env = GLFW_IM_MODULE,ibus
设置开机启动fcitx5
hx .config/hypr/UserConfigs/Startup_Apps.conf
加入一行
exec-once = fcitx5 -d --replace