Created at 2021-10-16 15:13:00 UTC
感谢大佬手把手教程 🔗r8l8q8
今天又崩溃了,再补充一些内容
因为今天又崩溃了,所以按照这篇随笔温习了一下,发现了一些错误
archlinux 每次滚动更新都提心吊胆,生怕崩溃了
经过很长一段时间后,再滚动更新,十有八九是要崩溃了,已经习以为常了
目前一般都是 1-2 天滚动更新 1 次,大大减少崩溃率
上次崩溃是 2020-11-29,至今 2021-10-16 期间基本按照 1-2 天更新 1 次的规律,但昨天晚上滚动更新的时候再次崩溃了,内心已经毫无波澜 🙃 🙃 🙃
系统崩溃了怎么处理:
咱是小白,只能一言不合就重装,过程虽然熟门熟路,但每次都要处理很多细节,总有些想不起来,所以今天抽点空记录一下,下次重装能有个参考
首先肯定要制作一个启动盘,下载镜像,dd 命令执行,就完事了,此处略过,具体参考 🔗archlinux wiki
本文 archlinux 运行环境:
进入操作系统安装界面
同步时间、确认网络畅通、指定镜像
ping x.com
timedatectl set-ntp true
reflector -c China -a 10 --sort rate --save /etc/pacman.d/mirrorlist
由于是 archlinux 崩溃后重装,不用管硬盘分区,因为首次装系统的时候,已经分好了,直接格式化硬盘即可
这里要特别注意,不能把数据分区格式化,格了就废了
查询分区命令:
lsblk
n1p3 的 8G 分区年轻不懂事,想分配给 swap,其实没必要,现在不好搞了,就随它放着了
格式化 n1p1、n1p2、n1p4 三个分区,n1p5 是数据分区不能格式化,n1p3 分区忽略
mkfs.fat -F32 /dev/nvme0n1p1
mkfs.ext4 /dev/nvme0n1p2
mkfs.ext4 /dev/nvme0n1p4
为了防止意外,不把 n1p5 挂载到 home
mount /dev/nvme0n1p4 /mnt
mkdir /mnt/boot
mount /dev/nvme0n1p2 /mnt/boot
mkdir /mnt/boot/efi
mount /dev/nvme0n1p1 /mnt/boot/efi
安装核心模块
pacstrap -i /mnt base base-devel linux linux-firmware
配置 fstab
(这一步之前可以先把刚才没 mount 的分区 mount 到 home 下,这样 fstab 就可以直接帮我们生成完整的挂载目录。当然也可以不操作,后面会额外讲到如何手动处理磁盘挂载)
genfstab -U /mnt >> /mnt/etc/fstab
切换到新系统
arch-chroot /mnt /bin/bash
此时已经进入了刚才安装好的操作系统,环境是 /bin/bash,默认是 root 账户,所以不需要 sudo
archlinux 新系统很纯净,什么都没有,所以需要先安装一个编辑器,需要编辑配置文件,建议用 nano,因为它体积小、可视化、快捷键丰富,非常适合快速编辑的场景
pacman -S nano
设置本地语言
nano /etc/locale.gen
找到这两行,删掉注释符 #
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
配置语言
locale-gen
添加配置文件
echo LANG=en_US.UTF-8 > /etc/locale.conf
设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
设置硬件时间
hwclock --systohc --utc
操作系统引导
pacman -S dosfstools grub efibootmgr
安装 grub
grub-install --target=x86_64-efi --efi-directory=/boot/EFI --recheck
配置 grub
grub-mkconfig -o /boot/grub/grub.cfg
设置 root 密码
passwd
配置 dhcp
pacman -S dhcpcd
systemctl enable dhcpcd.service
到这里已经可以重启了,重启之后能够进入操作系统命令行界面
不重启也可以,直接安装其他工具,比如桌面
查看显卡信息
lspci | grep VGA
安装显卡驱动
pacman -S nvidia
安装 x11
pacman -S xorg
安装字体
pacman -S ttf-dejavu wqy-microhei ttf-joypixels
如果出现安装签名错误的问题,可以调整 /etc/pacman.conf,把 SigLevel 配置成 Never
在 /etc/pacman.conf 新增一个国内源,能装一些官方仓库没有的包
[archlinuxcn]
SigLevel=Never
Server=https://mirrors.ustc.edu.cn/archlinuxcn/$arch
安装桌面,此处用了 i3-gaps,是一个平铺式的桌面,linux 新用户不建议用它,手工配置不是很友好,不过熟练使用之后,能大幅提高效率,新用户还是建议用 gnome 等桌面,开箱即用很方便
pacman -S i3-gaps
基础工具
pacman -S rofi feh picom polybar zsh yay git xorg-xinit nodejs yarn npm typescript
| 工具 | 作用 |
|---|---|
| rofi | 快速启动应用 |
| feh | 查看图片、设置壁纸 |
| picom | 支持窗口透明 |
| polybar | 状态栏 |
| zsh | 比默认的 bash 更好用的终端 |
| yay | 第三方包管理器 |
| git | 略 |
| xorg-xinit | 需要桌面启动器 startx |
| nodejs | 略 |
| yarn | 包管理器 |
| npm | 只用于YCM的安装需要 |
| typescript | 略 |
安装 v2ray 或者 xray
问题说明:之前一直都用 v2ray 作为核心,但是后来出现了不兼容的情况,用 v2raya 无法启动代理服务了,换成xray 就好了(这两个装 1 个就好了)
pacman -S v2ray
或
pacman -S xray
安装 🔗v2raya
这是一个开源的 v2ray 客户端,会在本地启动一个 web 服务,可以用 systemcel 设置自启动
pacman -S v2raya
如果有需要,可以在配置终端环境变量
export https_proxy=socks5://127.0.0.1:20170
export http_proxy=socks5://127.0.0.1:20170
安装 ohmyzsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
为之后的操作准备,先 exit 退出操作系统,进入安装命令行,再把刚才的数据分区挂载后再 arch-chroot 进入系统
创建用户账户,并指定用户目录
useradd -d /home/steven -g users -s /bin/bash steven
为用户账户设置密码
passwd steven
如果上面的操作步骤 genfstab 之前,未挂载 home 目录,可以手动配置磁盘挂载
首先查找要挂载的分区 uuid
blkid
再编辑 /etc/fstab,把找到的 uuid 写入文件中,这样操作系统启动后,会自动挂载目录了
# /dev/nvme0n1p5
UUID=xxx /home ext4 defaults 0 0
到此建议重启进入操作系统,可以使用 chrome 等工具,比较方便
输入法建议使用 fcitx5
安装浏览器
yay -S google-chrome
⚠️ 注意:在 pacman 和 brew 仓库中的 vim,天然就支持了 +python3 等高级特性,所以在 archlinux 和 OS X 建议直接用 pacman -S vim 和 brew install vim
因为“网络问题”,从 github clone 项目前要先启动 v2ray 并配置 git 全局 socks 代理
编辑 ~/.gitconfig
[user]
email = <An Email Address>
name = Steven
[http]
proxy = socks5://127.0.0.1:20170
git clone 项目
git clone git@github.com:vim/vim.git
cd vim
./configure --with-features=huge \
--enable-multibyte \
--enable-rubyinterp=yes \
--enable-python3interp=yes \
--with-python3-config-dir=$(python3-config --configdir) \
--enable-perlinterp=yes \
--enable-luainterp=yes \
--enable-gui=gtk2 \
--enable-cscope \
--prefix=/usr/local
make VIMRUNTIMEDIR=/usr/local/share/vim/vim82
sudo make install
由于 vim 配置文件全部都在,所以不需要配置,直接进入 vim,就能恢复熟悉的环境了
如果不小心安装错了,比如发现 vim 不支持 python3,需要重新编译安装,删除两个关键之处:
sudo rm -rf /usr/local/bin/vim*
sudo rm -rf /usr/local/share/vim
重新编译安装即可
sudo pacman -S alsa-utils
配置 i3 的音量控制快捷键
配置文件:~/.config/i3/config
bindsym $mod+Down exec amixer set Master 5%-
bindsym $mod+Up exec amixer set Master 5%+
bindsym $mod+m exec amixer set Master toggle
pyenv、pyenv-virtualenv 配置写入 .zshrc
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc
direnv 配置写入 .zshrc
echo 'export PATH="$HOME/go/bin:$PATH"' >> ~/.zshrc
echo `eval "$(direnv hook zsh)"' >> ~/.zshrc
基本恢复