装了很多回archlinux
,跟了很多遍各种教程和官方 wiki ,也来自己写一个简单的笔记吧。
安装之前的准备略去不写,就从archlinux
的 iso 启动之后开始吧。其实archlinux
也只是安装过程看上去高级一点,滚动更新的理念和大部分所谓主流发行版有点区别,用惯了 TUI 操作的人对于无 GUI 操作应当还是比较适应的,更何况提供了好几个 terminal 可以多线程操作,避免在等待的时候没事干(不是),甚至看到有老哥速通archlinux
安装(这居然也有速通?)
至于跟archlinux
这个话题有关的争议,反正不在这个笔记的叙述范围之内,快速进入正题吧。
进入archlinux
安装环境之后,我们选择 Arch Linux install medium (x86_64, UEFI)
进入archlinux
的安装环境,这是一个比较小的 live 系统,其 bash 已经可以给我们完成很多任务。
archlinux 镜像中现在启用了 reflector
服务,会自己更新镜像源,然而在存在 GFW 的特殊网络环境中,这个服务并不适合被启用,我们还是老老实实地禁用它吧。
systemctl stop reflector.service
查看服务状态,按q
退出
systemctl status reflector.service
确认 UEFI
模式(保险起见)
ls /sys/firmware/efi/efivars
若有输出即是 UEFI
如果使用无线网络(有线跳过即可):
iwctl # 进入交互式命令行
device list # 列出无线网卡设备名,比如无线网卡看到叫 wlan0
station wlan0 scan # 扫描网络
station wlan0 get-networks # 列出所有 wifi 网络
station wlan0 connect wifi-name # 进行连接,注意这里无法输入中文。回车后输入密码即可
exit # 连接成功后退出
随便 ping
一个网站,应该能看到网络的连接情况。按 Ctrl+C
退出。
同步时钟:
timedatectl set-ntp true
timedatectl status
更新国内镜像源:
vim /etc/pacman.d/mirrorlist
在最上面加入以下镜像源的任意一条
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch # 清华大学开源软件镜像站
Server = https://repo.huaweicloud.com/archlinux/$repo/os/$arch # 华为开源镜像站
Server = http://mirror.lzu.edu.cn/archlinux/$repo/os/$arch # 兰州大学开源镜像站
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch # 中国科学技术大学开源镜像站
你问我为什么把科大放最下面?我就爱用 THU 源
现在我们进入磁盘分区阶段。
使用 lsblk
查看当前磁盘的情况,找到要用的磁盘和分区
lsblk
使用 cfdisk
对需要使用的磁盘分区:注意,SATA 磁盘名称为 sdx (x=a~z),NVME 磁盘名称为 nvmexn1 (x=0~n)。(接下来我们都以 SATA 磁盘举例,请 NVME 用户注意)
cfdisk /dev/sdx
使用上下方向键在需要操作的分区中移动,使用左右方向键在不同的操作中移动。我们 [New]
一个分区,指定大小,默认为 Linux filesystem
,我们再选中并更改类型即可。
我们需要:一个内存大小 50% ~ 100% 的 Swap
分区,类型为 Linux swap
,一个自定义大小的分区(2GiB 以上),类型为 Linux filesystem
,因为我们使用 Btrfs
文件系统。
[Write]
并且 [Quit]
,这时将对磁盘进行操作,这个操作不可逆!谨慎删除分区!
使用 fdisk -l
查看分区的情况
格式化并创建子卷
EFI:(双系统请跳过这步,不需要格式化):
mkfs.fat -F32 /dev/sdxn
Swap:
mkswap /dev/sdxn
Btrfs 分区:(archlinux为卷标,可自定义,但不可以包含特殊字符和空格)
mkfs.btrfs -L archlinux /dev/sdxn
挂载:
mount -t btrfs -o compress=zstd /dev/sdxn /mnt
使用df -h
复查挂载情况,若不对,用umount
卸载重来。
创建子卷:
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
复查:
btrfs subvolume list -p /mnt
卸载:
umount /mnt
准确按照如下顺序挂载子卷!
mount -t btrfs -o subvol=/@,compress=zstd /dev/sdxn /mnt
mkdir /mnt/home
mount -t btrfs -o subvol=/@home,compress=zstd /dev/sdxn /mnt/home
mkdir -p /mnt/boot
mount /dev/sdxn /mnt/boot
swapon /dev/sdxn
复查:df -h
,free -h
使用pacstrap
安装基本包:终于进入安装了 :)
pacstrap /mnt base base-devel linux linux-firmware btrfs-progs
若提示 GPG 证书错误,使用pacman -S archlilnux-keyrinig
更新解决。
安装亿些必要软件(把zsh
换成bash
也是可以哒~老东西用惯了):
pacstrap /mnt networkmanager vim sudo zsh zsh-completions
生成 fstab file:
genfstab -U /mnt > /mnt/etc/fstab
cat /mnt/etc/fstab
有正常输出即可。
chroot(就快成功了!)
arch-chroot /mnt
设置主机名,同样,不要有特殊字符和空格:
vim /etc/hostname
设置 hosts:
vim /etc/hosts
输入:
127.0.0.1 localhost
::1 localhost
127.0.1.1 主机名
设置时区:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
同步时间:
hwclock --systohc
地区化:
vim /etc/locale.gen
编辑/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
设置密码:
passwd root
安装微码(根据 CPU):
pacman -S intel-ucode # Intel
pacman -S amd-ucode # AMD
用GRUB
引导:
pacman -S grub efibootmgr os-prober
安装GRUB
:
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH
vim /etc/default/grub
去掉 GRUB_CMDLINE_LINUX_DEFAULT 一行中最后的 quiet 参数,把 loglevel 的数值从 3 改成 5。这样是为了后续如果出现系统错误,方便排错,加入 nowatchdog 参数,这可以显著提高开关机速度。
为引导,Windows
添加一行:
GRUB_DISABLE_OS_PROBER=false
生成配置文件:
grub-mkconfig -o /boot/grub/grub.cfg
若引导了Windows
,会"Found Windows Boot Manager",若双硬盘双系统,则先不着急,进入archlinux
后重新执行该命令。
拔掉U盘,
exit
umount -R /mnt
reboot
进入系统啦!
善后:
systemctl enable --now NetworkManager #联网
#无线:
nmcli dev wifi list # 显示附近的 Wi-Fi 网络
nmcli dev wifi connect "Wi-Fi名(SSID)" password "网络密码" # 连接指定的无线网络
neofetch #你会爱上它的
大功告成。