Archlinux装机笔记

前言

重要数据·务必备份!固态硬盘报废,连带 Linux 无了,只能重装。恐将来也会频繁装机,故写一篇笔记,希望一劳永逸。

进入桌面前

准备装机盘

  1. archlinux 找到镜像源,下载 ISO。
  2. Rufus 之类的刷 U 盘。
    • MBR 分区
    • ISO 模式

引导进装机盘

华硕主板的快捷键是 F11。如果黑屏,将 DP 线换成 HDMI。

archinstall

  1. 进临时操作系统之后,连网线,运行 archinstall
  2. 选镜像源(mirror region)
  3. 选择格式化硬盘
  4. 创建 superuser。
  5. 其他选项都检查一下。archinstall 可能会有大幅的更新。
  6. install!
  7. 最后提示 chroot,在里面 systemctl enable sddm

卡 wayland

N 卡 + nvidia 专有驱动 + wayland = 黑屏

~/.local/share/sddm/wayland-session.log 可查看 log。

  1. 先用 X11 登陆,把环境都配置好再回来。
  2. 添加内核参数:nvidia-drm.modeset=1。这是 wayland 要求的。
    • 适用于 systemd-boot:kate /boot/loader/entries/xxxx.conf。追加参数。
  3. 已经能用了,但是 BUG 很多又卡顿,Fuck Nvidia。遂放弃,或者参考

进入桌面后

添加 sudo 免密

1
2
3
4
su
vim /etc/sudoers.d/00_codesire
# 内容如下
codesire ALL=(ALL:ALL) NOPASSWD: ALL

调整快捷键

  1. Konsole
  2. System Settings
  3. KRunner
  4. (后面安装的)Flameshot: /usr/bin/flameshot gui

安装 yay

利用 git 下载预编译版安装。

1
2
3
4
sudo pacman -S git
cd ~ && mkdir -p .local/opt && cd .local/opt
git clone https://aur.archlinux.org/yay-bin.git
cd yay-bin && makepkg -si

安装中文字体

1
2
3
sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji
cd ~ && mkdir -p .config/fontconfig
kate .config/fontconfig/fonts.conf

配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
<!-- ${XDG_CONFIG_HOME}/fontconfig/fonts.conf
- vim:ft=xml:fenc=utf-8:noet:ts=3:sw=3:
-->
<fontconfig>
<alias>
<family>serif</family>
<prefer>
<family>Noto Serif</family>
<family>Noto Color Emoji</family>
<family>Noto Sans CJK SC</family>
<family>Noto Sans CJK TC</family>
<family>Noto Sans CJK JP</family>
</prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer>
<family>Noto Sans</family>
<family>Noto Color Emoji</family>
<family>Noto Sans CJK SC</family>
<family>Noto Sans CJK TC</family>
<family>Noto Sans CJK JP</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>Noto Sans Mono</family>
<family>Noto Color Emoji</family>
<family>Noto Sans Mono CJK SC</family>
<family>Noto Sans Mono CJK TC</family>
<family>Noto Sans Mono CJK JP</family>
</prefer>
</alias>
<match target="font">
<edit mode="assign" name="antialias">
<bool>true</bool>
</edit>
<edit mode="assign" name="autohint">
<bool>true</bool>
</edit>
<edit mode="assign" name="dpi">
<double>96</double>
</edit>
<edit mode="assign" name="hinting">
<bool>true</bool>
</edit>
<edit mode="assign" name="hintstyle">
<const>hintslight</const>
</edit>
<edit mode="assign" name="lcdfilter">
<const>lcdlight</const>
</edit>
<edit mode="assign" name="rgba">
<const>rgb</const>
</edit>
<edit mode="assign" name="size">
<int>15</int>
</edit>
</match>
<dir>~/.fonts</dir>
</fontconfig>

刷新字体缓存:

1
fc-cache -fv

可能需要重启生效,但是先不重启。

安装常用软件

谜之 CPU 软件包,不要全装:

1
2
sudo pacman -S amd-ucode
sudo pacman -S intel-ucode

man,浏览器,输入法,vscode,openssh,firacode,flameshot:

1
yay -S man-db man-pages google-chrome-stable fcitx5-im fcitx5-qt fcitx5-gtk fcitx5-chinese-addons fcitx5-pinyin-zhwiki visual-studio-code-bin openssh ttf-fira-code nerd-fonts-fira-code flameshot

在 System Settings 添加 Pinyin 输入。修改切换输入法的快捷键。

如果需要开启启动 sshd:systemctl enable --now sshd

网络自由,Fuck Timeout:

1
2
3
4
5
curl -Ls https://mirrors.v2raya.org/go.sh | sudo bash
sudo systemctl disable v2ray --now
yay -S v2raya-bin
sudo systemctl start v2raya.service
sudo systemctl enable v2raya.service

进浏览器管理 127.0.0.1:2017

还原 zsh

参考 Codesire-Deng/rc

1
2
3
4
yay -S zsh
chsh -s $(which zsh)
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
yay -S zsh-syntax-highlighting-git
  • 覆盖拷贝 Codesire-Deng/rc 的配置文件。
  • 安装完后,调整 konsole 和 vscode 的默认终端。

开发环境

C++ 相关

1
yay -S linux-headers cmake clang mimalloc boost cloc 

perf 相关

1
2
3
4
yay -S perf
cd ~/Downloads && git clone https://github.com/brendangregg/FlameGraph.git
sudo ln -s ~/Downloads/FlameGraph/stackcollapse-perf.pl /usr/bin/stackcollapse-perf.pl
sudo ln -s ~/Downloads/FlameGraph/flamegraph.pl /usr/bin/flamegraph.pl

Node 相关

1
2
3
4
5
6
curl -L https://raw.githubusercontent.com/tj/n/master/bin/n -o n
sudo bash n lts
sudo npm install -g n
rm n
sudo npm install -g cnpm --registry=https://registry.npmmirror.com
sudo npm install -g hexo-cli

编译 Clang 套件

若已有 yay clang-git 则可忽略此步。但是 clang-git 的质量堪忧。

参考 Clang Docs

1
2
3
4
5
6
7
git clone --depth=1 https://github.com/llvm/llvm-project.git
cd llvm-project
cmake -B build -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt" -DCMAKE_BUILD_TYPE=Release -G "Unix Makefiles" ./llvm
cmake --build build -j 14 # 不要使用全部的核心!UI会崩溃
cmake --install build
which clang-format
clang-format --version

可在 llvm-project/llvm/CMakeLists.txt 中搜索 LLVM_ALL_PROJECTS 查看所有项目。

生成 SSH key

参考 Github Docs

1
2
3
ssh-keygen -t ed25519 -C "oi_dzf@qq.com"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

将公钥添加到 Github SSH keys

systemd-boot 追加 Windows

  1. 找到 Windows EFI 分区:
    • lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT
  2. 挂载这个分区:
    • sudo mkdir /mnt/win-efi
    • sudo mount /dev/sdb1xxx /mnt/win-efi
  3. 拷贝 Windows EFI 到当前硬盘的 EFI(/boot/EFI在不同系统下可能不同,例如可能是/boot/efi/EFI
    • sudo cp -r /mnt/win-efi/EFI/Microsoft /boot/EFI
  4. 修改 bootloader 的配置,例如倒计时
  5. 重启即可。在选择界面按 d 即可指定默认项。

开机挂载硬盘

  1. 确认设备文件名
    • sudo fdisk -l
  2. 找到 UUID 和文件系统类型
    • blkid
  3. 条目追加至 /etc/fstab
    • 例如:UUID=3A848F25848EE32D /run/media/codesire/3A848F25848EE32D ntfs defaults 0 0

附:Windows 改为 UTC 时间

新建UTC.reg,内容如下:

1
2
3
4
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"RealTimeIsUniversal"=dword:00000001

用管理员运行之即可。

结语

珍爱生命,珍惜时间。