安装前的准备工作
下载镜像
可以去北京外国语(bfsu)大学的镜像站获取最新的iso,地址如下:广度优先搜索(bfsu)大学开源镜像站
准备一个U盘
任意品牌,最好是USB3.0以上的,大于8G
制作启动盘
- win10/11系统推荐使用rufus软件烧录:rufus
- linux系统:
- 先使用lsblk查看自己的U盘,找到对应的设备名称,例如 /dev/sdX(其中 X 是具体字母,如 sdb)
1
| sudo dd if=/path/to/archlinux.iso of=/dev/sdX bs=4M status=progress conv=fsync
|
基础系统安装
确认是否为 UEFI 模式
1
| ls /sys/firmware/efi/efivars
|
若输出了一堆东西,即 efi 变量,则说明已在 UEFI 模式。否则请确认你的启动方式是否为 UEFI。
启动参数修改(optional)
若正常启动后花屏,说明显卡驱动有问题(例如NviDIA显卡太新还没有开源驱动)
启动项按e添加modprobe.blacklist=nouveau
以禁用开源驱动
联网
1
2
3
4
| iwctl
device list
station wlan0 scan
station wlan0 connect "网络名_xxx"
|
更新系统时间
1
2
| timedatectl set-ntp true
timedatectl status
|
分区
先使用lsblk查看自己的硬盘,找到对应的设备名称
我在/dev/nvme0n1这块硬盘上分了三个区,swap我采用swapfile,后续会分配
- /boot 1024M ef00
- / 100G 8304
- /home 300G 8302
swap 8G 8200
使用以下命令分区
1
2
3
4
5
| lsblk
gdisk /dev/nvme0n1
用d删除旧分区
用n按上面列出的新建分区
用w确定并退出
|
接下来格式化分区
1
2
3
| mkfs.fat -F32 /dev/nvme0n1p1
mkfs.xfs /dev/nvme0n1p2
mkfs.xfs /dev/nvme0n1p3
|
mkswap /dev/nvme0n1p4
swapon /dev/nvme0n1p4
然后挂载分区
1
2
3
4
5
| mount /dev/nvme0n1p2 /mnt
mkdir /mnt/boot
mkdir /mnt/home
mount /dev/nvme0n1p1 /mnt/boot
mount /dev/nvme0n1p3 /mnt/home
|
选择镜像
1
| vim /etc/pacman.d/mirrorlist
|
最上面填入一个连接足够好的镜像站:
Server = https://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch
安装必须软件包
1
| pacstrap /mnt bash-completion iwd dhcpcd base base-devel linux linux-firmware linux-headers words man man-db man-pages texinfo vim xfsprogs ntfs-3g nvidia nvidia-utils nvidia-settings opencl-nvidia
|
生成Fstab
1
2
| genfstab -U /mnt >> /mnt/etc/fstab
vim /mnt/etc/fstab
|
Chroot至新系统
本地化
1
2
3
4
5
6
7
8
9
10
| ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc
vim /etc/locale.gen
取消注释zh_CN.UTF-8和en_US.UTF-8
locale-gen
vim /etc/locale.conf
填入LANG=en_US.UTF-8
|
网络配置
填入自己的主机名,例如AORUS
填入如下,要注意主机名相同
1
2
3
| 127.0.0.1 localhost
::1 localhost
127.0.1.1 AORUS.localdomain AORUS
|
安装微码
生成Initramfs
设置密码
安装grub
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| pacman -Sy grub efibootmgr os-prober
cd ~
mkdir MS
mount /dev/nvme1n1p1 MS
#要注意os_prober已经默认不识别其他系统了, 挂载windows的efi所在的分区再配置grub-mkconfig即可
vim /etc/default/grub
最后一行填入GRUB_DISABLE_OS_PROBER=false
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Arch --recheck
grub-mkconfig -o /boot/grub/grub.cfg
exit
umount -R /mnt
reboot
|
桌面环境安装
联网
1
2
3
4
| systemctl start iwd
dhcpcd
iwctl
station wlan0 connect "网络名_xxx"
|
开启ssh服务
1
2
| pacman -S openssh
systemctl enable --now sshd
|
新建用户并授权
1
2
3
4
5
6
| useradd -m -G wheel 用户名(horel)
EDITOR=vim visudo
取消注释 %wheel ALL=(ALL) ALL
passwd 用户名(horel)
exit
以新用户重新登陆
|
安装桌面
安装gnome桌面
1
| sudo pacman -S xorg gdm gnome gnome-tweaks gnome-browser-connector
|
安装kde桌面(推荐)
1
| sudo pacman -S plasma-meta konsole dolphin #安装plasma-meta元软件包以及终端和文件管理器
|
自启动设置
1
2
3
| sudo systemctl preset-all
sudo systemctl enable NetworkManager
sudo systemctl enable bluetooth
|
sudo systemctl enable gdm
sudo systemctl enable sddm
配置CN源
vim /etc/pacman.conf
加入以下内容
[archlinuxcn]
Server = https://mirrors.bfsu.edu.cn/archlinuxcn/$arch
pacman配置
vim /etc/pacman.conf 吃豆人、升级前后对比版本
Color
ILoveCandy
VerbosePkgLists
安装常用软件
1
| sudo pacman -S zsh neovim alacritty git wget telegram chromium neofetch gcc gdb clang llvm nodejs pnpm clash-verge-rev run-parts paru
|
设置交换文件 swapfile
1
2
3
4
| dd if=/dev/zero of=/swapfile bs=1M count=32768 status=progress #创建32G的交换空间 大小根据需要自定 最好大于等于内存
chmod 600 /swapfile #设置正确的权限
mkswap /swapfile #格式化swap文件
swapon /swapfile #启用swap文件
|
最后,向/etc/fstab 中追加如下内容:
1
| /swapfile none swap defaults 0 0
|
挂起设置
KDE 自身提供开箱即用的睡眠功能(suspend),即将系统挂起到内存,消耗少量的电量。休眠(hibernate)会将系统挂起到交换分区或文件,几乎不消耗电量。睡眠功能已可满足绝大多数人的需求,如果你一定需要休眠功能,可以参考官方文档设置休眠相关步骤。
软件安装配置
dotfiles
我个人的dotfiles,请根据自身情况修改
配置环境变量
修改这几个文件
- vi ~/.config/environment.d/envvars.conf
- vi ~/.zprofile
- vi .gitconfig
安装Fcitx5输入法
sudo pacman -S fcitx5-im fcitx5-chinese-addons
另外 CN 源有词库可用:
sudo pacman -S fcitx5-pinyin-{zhwiki,moegirl}
支持qt和gtk安装以下依赖
sudo pacman -S fcitx5-qt fcitx5-gtk
主题配置参考:fcitx5-material-color,安装完成后直接复制dotfiles的配置文件
sudo pacman -S fcitx5-material-color
fontconfig
先在.local/share/font把需要的字体放好,再从dotfiles里捞fontconfig
还有以下字体推荐安装:
1
| sudo pacman -S noto-fonts noto-fonts-extra noto-fonts-cjk noto-fonts-emoji noto-fonts-extra ttf-sarasa-gothic ttf-nerd-fonts-symbols-mono ttf-opensans ttf-jetbrains-mono adobe-source-han-serif-cn-fonts adobe-source-code-pro-fonts adobe-source-sans-pro-fonts adobe-source-serif-pro-fonts wqy-zenhei
|
在设置里除等宽设置为等宽Monospace外,其余设置为无衬线Sans Serif
Alacritty终端
安装完成后直接从dotfiles捞配置
zsh
在.config/zsh下捞配置即可
1
2
3
4
5
6
| sudo pacman -S exa zoxide
cd plugins
git clone https://github.com/z-shell/F-Sy-H.git
git clone https://github.com/zsh-users/zsh-autosuggestions.git
sudo chsh -s /bin/zsh
reboot
|
1
| dotfiles submodule update --init
|
新建.cache/zsh/history存放记录
neovim
安装依赖
1
2
| sudo pacman -S neovim nodejs pnpm python python-neovim xsel lua lua-language-server words luarocks
nvim :checkhealth不用管ruby(我不用)
|
复制dotfiles里的配置, 执行 clean_nvim.sh, 重新运行 nvim 会自动下载
hugo博客恢复
1
2
3
4
5
6
7
| wget https://github.com/gohugoio/hugo/releases/download/v0.120.4/hugo_extended_0.120.4_linux-amd64.tar.gz
tar -xvf hugo_extended_0.120.4_linux-amd64.tar.gz
mv hugo ~/.local/bin
git clone https://github.com/horel/horel.github.io.git
cd horel.github.io
hugo
hugo server --disableFastRender
|
telegram
记得登陆之前先把TG的代理设好,TG默认是使用系统代理的
chrome
SwitchyOmega
global socks5 127.0.0.1 7891
auto switch
规则列表规则 global
默认情景模式 直接连接
AutoProxy
https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/fullgfwlist.acl
Tampermonkey
可以在实用工具导出再导入
VSCode
https://code.visualstudio.com/
1
| code --list-extensions > code_extensions.txt
|
1
| cat code_extensions.txt | xargs -I {} code --install-extension {}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| "workbench.colorTheme": "One Dark Pro",
"editor.fontSize": 18,
"editor.fontFamily": "'JetBrainsMono Nerd Font', Consolas, 'Courier New', monospace",
"C_Cpp.intelliSenseUpdateDelay": 500,
"xmake.compileCommandsDirectory": "${workspaceRoot}/build",
"C_Cpp.intelliSenseEngine": "disabled",
"xmake.debugConfigType": "codelldb",
"liveServer.settings.donotShowInfoMsg": true,
"[vue]": {
"editor.defaultFormatter": "Vue.volar"
},
"vue.autoInsert.dotValue": true,
"files.autoSave": "afterDelay",
"window.titleBarStyle": "custom"
|
1
2
3
4
| selectNextSuggestion : Tab
selectPrevSuggestion : Shift + Tab
editor.action.formatDocument : ctrl+k ctrl+f
editor.action.formatDocument.none : ctrl+k ctrl+f
|
maven
设置镜像 vi .m2/settings.xml
1
2
3
4
5
6
7
8
9
10
11
| <settings>
<mirrors>
<mirror>
<id>nexus-tencentyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus tencentyun</name>
<url>
http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
</mirror>
</mirrors>
</settings>
|
其他软件
- ImageMagick 安装后可使用display命令
- android-tools 安卓工具包(adb等)
1
| sudo pacman -S imagemagick mpv flameshot ark unzip 7zip gwenview git-delta
|
gnome美化(废弃)
根据自己喜好来吧,可以参考 https://www.gnome-look.org
gnome-shell-extensions
- AppIndicator and KStatusNotifierItem Support 托盘图标支持
- ArcMenu
- Dash to Panel 在gnome40上可用
- Dash to Dock 暂未更新gnome40
- Espresso 小咖啡,记得把它配置里的消息提醒关了
- Native Window Placement 缩小托盘图标间距
- No overview at start-up 在gnome40上开机不自动overview
- OpenWeather
- Removable Drive Menu 托盘移除U盘
- Screenshot Tool
- Transparent Top Bar
- User Themes
- Workspace Indicator 工作区
外观
应用程序 & Shell
aur软件先git clone,cd进入软件目录
makepkg -si
matcha-sea
光标
aur软件 xcursor-breeze
图标
sudo pacman -S papirus-icon-theme
aur软件 papirus-folders-git
papirus-folders -C teal –theme Papirus-Light
grub
vimix-grub-theme
1
2
| git clone https://github.com/vinceliuice/grub2-themes.git
sudo ./install.sh -b -t vimix -i white
|
kde美化(推荐)
壁纸
在桌面右键,选择配置桌面。在新出现的窗口中右下角选择添加图片可以选择你想要的图片。
系统主题
系统设置 > 外观 > 全局主题 > 获取新的全局主题 ,搜索主题 layan,进行设置即可。
颜色
设置 LayanLight
窗口装饰
在 系统设置 > 外观 > 窗口装饰 中,获取新窗口装饰,搜索 layan,并应用即可。
系统图标
系统设置 > 外观 > 图标 > 获取新图标主题 ,搜索图标名 Tela-icon-theme,进行安装设置即可。
SDDM 主题
系统设置 > 开机和关机 > 登录屏幕(SDDM) > 获取新登录屏幕 ,搜索 SDDM 主题 layan 并设置即可。
欢迎屏幕
设置 Kuro
Grub
使用 CRT-Amber GRUB Theme, 切换到英文, 注销再安装grub
1
2
3
4
5
6
| Installation:
Download and extract folder from zip.
Copy entire folder to your /boot/grub/themes directory.
Edit the /etc/default/grub file with Root permissions and change the #GRUB_THEME= line to #GRUB_THEME=/boot/grub/themes/crt-amber-theme/theme.txt
Run the command sudo update grub : sudo grub-mkconfig -o /boot/grub/grub.cfg
Theme will be in use next time you reboot your system.
|
其他设置
- 系统设置 > 鼠标和触摸板 > 鼠标,光标速度-0.60
- 系统设置 > 鼠标和触摸板 > 屏幕边缘,取消左上角屏幕边界的配置
- 系统设置 > 键盘 > 虚拟键盘,Fcitx 5 Wayland
- 系统设置 > 键盘 > 快捷键,火焰截图->进行截图Meta+F1
- 系统设置 > 键盘 > 快捷键,Alacritty->Meta+回车->Ctrl+Alt+T
- 系统设置 > 键盘 > 快捷键,KWin->窗口移动到下一桌面->Meta+Tab
- 系统设置 > 默认应用程序
- 系统设置 > 窗口管理 > 虚拟桌面 > 2行添加桌面
- 系统设置 > 会话 > 桌面会话,启动为空会话
- 系统设置 > 无障碍辅助 > 抖动后放大光标
XFS备份和恢复
准备工作
1
2
| sudo pacman -S xfsprogs
sudo mkdir -p /nas/xfs_backup
|
备份
1
| sudo xfsdump -l 0 -L "root_backup_$(date +%Y%m%d)" -M "root_backup" -f /nas/xfs_backup/root_backup.dump /
|
1
| sudo xfsdump -l 0 -L "home_backup_$(date +%Y%m%d)" -M "root_backup" -f /nas/xfs_backup/home_backup.dump /home
|
验证
还原
- 进入Live环境
- 分区并格式化
- 挂载目标分区
1
2
3
| mount /dev/nvme1n1p2 /mnt
mkdir /mnt/home
mount /dev/nvme1n1p3 /mnt/home
|
1
2
| mkswap /dev/nvme0n1p1
swapon /dev/nvme0n1p1
|
- 还原根分区(/)和家目录分区(/home)
1
2
| sudo xfsrestore -f /nas/xfs_backup/root_backup.dump /mnt
sudo xfsrestore -f /nas/xfs_backup/home_backup.dump /mnt/home
|
- 重建引导和配置文件
1
| genfstab -U /mnt >> /mnt/etc/fstab
|
1
2
3
4
| arch-chroot /mnt
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Arch --recheck
grub-mkconfig -o /boot/grub/grub.cfg
exit
|
1
2
| umount -R /mnt
reboot
|
疑难问题(optional)
修gdm和nvidia冲突bug(Fuck NVIDIA!)
有个版本内核gdm和nvidia驱动冲突了,会卡gdm黑屏
把nvidia启动写进kernel modules,提前启动
1
2
3
4
5
6
7
| sudo nvim /etc/mkinitcpio.conf
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
HOOKS=(base udev autodetect modconf block filesystems keyboard fsck)
sudo nvim /etc/default/grub
内核参数加nvidia-drm.modeset=1
sudo mkinitcpio -P
sudo grub-mkconfig -o /boot/grub/grub.cfg
|
更新Chrome后每个网页都崩溃
- 系统设置里开启网络代理,手动
- 或者sudo systemctl disable systemd-resolved(可能会导致DN42域名解析错误等等)
在sddm中不会自启numlock
1
| sudo nvim /etc/sddm.conf.d/numlock.conf
|
Numlock=on