arch基础安装教程
本教程由archlinux 简明指南 和本人个性化组成(也就是说会从简明指南里面copy一些过来,并且具有设备狭义性
对应双系统,这里建议最先最小安装windows再安装archlinux
由于先用的虚拟机来记录,所以目前会缺少关于显卡驱动,和多引导系统的部分
本教程使用btrfs文件系统 GPT分区表 swap分区 EFI引导(所以默认EFI,不会对是否为EFI引导进行检查)
对于挂载,请注意,不同的存储介质对应的块设备不一样
所以,请在挂载或者其他需要对存储介质进行操作前确认你的块设备
如sda,nvme0n1p1等等,不要一股脑全抄
1. 全新安装 虚拟机和只装arch的考虑(双系统不考虑
1. 建立新的GPT分区表 (注意!!此步骤会丢失磁盘上所有数据)
- 使用命令
lsblk
来观察要安装的磁盘 - 输入一下命令来设置磁盘分区类型:
parted /dev/sdx # 执行 parted,进行磁盘类型变更
(parted) mktable # 输入 mktable
New disk label type? gpt # 输入 gpt,将磁盘类型转换为 GPT 类型。如磁盘有数据会警告,输入 Yes 即可
(parted) quit # 退出 parted 命令行交互
2. 建立EFI分区
进入 cfdisk 分区工具之后,类似上一节步骤 7-1. 分区 的分区说明,建立 EFI 分区:
- 选中 Free space > 再选中操作 [New] > 然后按下回车 Enter 以新建 EFI 分区
- 输入 分区大小(建议 >= 256MB、<= 1024MB;推荐 512MB)> 然后按下回车 Enter
- 选中操作 [Type] > 然后按下回车 Enter > 通过方向键 ↑ 和 ↓ 选中 EFI System > 最后按下回车 Enter
3. 格式化EFI分区
mkfs.vfat /dev/sdxn
2.连接网络
使用无线网络
使用 iwctl
进行连接:
iwctl # 进入交互式命令行
device list # 列出无线网卡设备名,比如无线网卡看到叫 wlan0
station wlan0 scan # 扫描网络
station wlan0 get-networks # 列出所有 wifi 网络
station wlan0 connect wifi-name # 进行连接,注意这里无法输入中文。回车后输入密码即可
exit # 连接成功后退出
如果无线网络还是无法连接,请使用 ip link
命令查看无线网卡设备,使用 ip link set <设备名> up
命令激活对应的无线网卡。若看到类似 Operation not possible due to RF-kill
的报错,继续尝试 rfkill unblock wifi
来解锁无线网卡。
有线网
直接默认会自动连接
检测网络
使用ping
来检测
ping www.bilibili.com
3.更新系统时钟(在安装过程中可选
使用 timedatectl
确保系统时间是准确的。这一步不是可选的,正确的系统时间对于部分程序来说非常重要:
timedatectl set-ntp true # 将系统时间与网络时间进行同步
timedatectl status # 检查服务状态
4. 更换成为国内软件源
使用 vim 编辑器修改 /etc/pacman.d/mirrorlist
文件。将 pacman 软件仓库源更换为国内软件仓库镜像源:
vim /etc/pacman.d/mirrorlist
放在最上面的是会使用的软件仓库镜像源,推荐的镜像源如下:
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch # 中国科学技术大学开源镜像站
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 # 兰州大学开源镜像站
ps : 不要在这里添加archlinuxcn源
或者安装pacman-mirrorlist
5.分区、格式化
建议分区配置:
- / 根目录:>= 128GB(和用户主目录在同一个 Btrfs 文件系统上)
- /home 用户主目录:>= 128GB(和根目录在同一个 Btrfs 文件系统上)
- /boot/efi EFI 分区:256MB(由电脑厂商或 Windows 决定,无需再次创建)
- Swap 分区:>= 电脑实际运行内存的 60%(设置这个大小是为了配置休眠准备)
1.开始分区
cfdisk /dev/sdx # 对安装 archlinux 的磁盘分区
- 首先创建 Swap 分区。选中 Free space > 再选中操作 [New] > 然后按下回车 Enter 以新建 swap 分区(类似 Windows 的交换文件)
- 按下回车后会提示输入 分区大小,Swap 分区建议为电脑内存大小的 60%,或者和内存大小相等 > 然后按下回车 Enter
- 默认新建的类型是 Linux filesystem,我们需要将类型更改为 Linux swap。选中操作 [Type] > 然后按下回车 Enter > 通过方向键 ↑ 和 ↓ 选中 Linux swap > 最后按下回车 Enter
- 我们再只需要一个分区即可(因为使用 Btrfs 文件系统,所以根目录和用户主目录在一个分区上),所以类似的:选中 Free space > 再选中操作 [New] > 然后按下回车 Enter 以新建分区
- 输入 分区大小(默认是剩余的全部空间。请根据实际情况输入)> 然后按下回车 Enter
- 分区类型默认即可,无需更改。接下来选中操作 [Write] 并回车 Enter > 输入 yes 并回车 Enter 确认分区操作
- 选中操作 [Quit] 并回车 Enter 以退出 cfdisk 分区工具
- 用
fdisk -l
复查,确认已经完成分区 - 格式化swap分区:
mkswap /dev/sdxn
2. 创建btrfs
- 首先我们需要将整一个分区格式化为 Btrfs 文件系统。使用如下命令进行格式化:
mkfs.btrfs -L myArch /dev/sdxn
注:
-L
选项后指定该分区的 LABLE
,这里以 myArch 为例,也可以自定义,但不能使用特殊字符以及空格,且最好有意义
2. 为了创建子卷,我们需要先将 Btrfs 分区挂载到 /mnt 下:
mount -t btrfs -o compress=zstd /dev/sdxn /mnt
注:
- -t 选项后指定挂载分区文件系统类型
- -o 选项后添加挂载参数:
- compress=zstd —— 开启透明压缩
- 使用 df 命令复查挂载情况:
df -h # -h 选项会使输出以人类可读的单位显示
3. 创建btrfs子卷
- 通过以下命令创建两个 Btrfs 子卷,之后将分别挂载到 / 根目录和 /home 用户主目录:
btrfs subvolume create /mnt/@ # 创建 / 目录子卷
btrfs subvolume create /mnt/@home # 创建 /home 目录子卷
- 复查:
btrfs subvolume list -p /mnt
- 子卷创建好后,我们需要将 /mnt 卸载掉,以挂载子卷:
umount /mnt
6. 挂载
- 在挂载时,挂载是有顺序的,需要从根目录开始挂载。使用如下命令挂载子卷:
mount -t btrfs -o subvol=/@,compress=zstd /dev/sdxn /mnt # 挂载 / 目录
mkdir /mnt/home # 创建 /home 目录
mount -t btrfs -o subvol=/@home,compress=zstd /dev/sdxn /mnt/home # 挂载 /home 目录
mkdir -p /mnt/boot/efi # 创建 /boot/efi 目录
mount /dev/sdxn /mnt/boot/efi # 挂载 /boot/efi 目录
swapon /dev/sdxn # 挂载交换分区
- 使用
df
检查挂载:
df -h
- 使用
free
检测swap
free -h # -h 选项会使输出以人类可读的单位显示
7. 安装系统
- 通过如下命令使用
pacstrap
脚本安装基础包:
pacstrap /mnt base base-devel linux linux-firmware
注:
base·devel
——base-devel
在AUR
包的安装过程中是必须用到的linux
—— 内核软件包,这里建议先不要替换为其它内核
- 安装其他功能软件
pacstrap /mnt dhcpcd iwd vim sudo zsh zsh-completions
注:
zsh
——zsh-completions
如果你是 bash 的爱好者,请把这两个包换成bash-completion- 如果你是第一次接触*nix 系统的新手,不建议换成 bash
8. 生成fstab文件
- fstab 用来定义磁盘分区。它是 Linux 系统中重要的文件之一。使用 genfstab 自动根据当前挂载情况生成并写入 fstab 文件:
genfstab -U /mnt > /mnt/etc/fstab
- 复查
cat /mnt/etc/fstab
9. change root
使用以下命令把系统环境切换到新系统下:
arch-chroot /mnt
此时,原来安装盘下的 /mnt 目录就变成了新系统的 / 目录。同时,可以发现命令行的提示符颜色和样式也发生了改变。
10. 设置主机名和时区
- 首先在 /etc/hostname 设置主机名:
vim /etc/hostname
- 接下来在 /etc/hosts 设置与其匹配的条目:
vim /etc/hosts
加入如下内容:
127.0.0.1 localhost
::1 localhost
127.0.1.1 myarch.localdomain myarch
- 随后设置时区,在
/etc/localtime
下用/usr
中合适的时区创建符号链接:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- 同步硬件时间:
hwclock --systohc
11. 设置Locale:
Locale 决定了软件使用的语言、书写习惯和字符集。
- 编辑 /etc/locale.gen,去掉 en_US.UTF-8 UTF-8 以及 zh_CN.UTF-8 UTF-8 行前的注释符号(#):
vim /etc/locale.gen
- 然后使用如下命令生成 locale:
locale-gen
- 向 /etc/locale.conf 输入内容:
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
注意,这里暂时不要设置中文,请等安装完全结束过后设置中文
12. 设置root密码
passwd root
13. 安装微码
pacman -S intel-ucode # Intel
pacman -S amd-ucode # AMD
14. 安装引导程序
- 安装包:
pacman -S grub efibootmgr os-prober
注:
-S
选项后指定要通过pacman
包管理器安装的包:grub
—— 启动引导器efibootmgr
——efibootmgr
被grub
脚本用来将启动项写入 NVRAMos-prober
—— 为了能够引导win10
,需要安装os-prober
以检测到它
- 安装GRUB到EFI
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ARCH
--efi-directory=/boot/efi
—— 将grubx64.efi
安装到之前的指定位置(EFI 分区)- -
-bootloader-id=ARCH
—— 取名为ARCH
- 接下来使用 vim 编辑 /etc/default/grub 文件:
vim /etc/default/grub
进行如下修改:
- 去掉
GRUB_CMDLINE_LINUX_DEFAULT
一行中最后的quiet
参数 - 把
loglevel
的数值从3
改成5
。这样是为了后续如果出现系统错误,方便排错 - 加入
nowatchdog
参数,这可以显著提高开关机速度 - 为了引导 win,则还需要添加新的一行 GRUB_DISABLE_OS_PROBER=false
- 最后生成
GRUB
所需的配置文件:
grub-mkconfig -o /boot/grub/grub.cfg
15. 安装完成
exit # 退回安装环境
umount -R /mnt # 卸载新分区
reboot # 重启
开机自启dhcp:
systemctl enable --now dhcpcd # 设置开机自启并立即启动 dhcp 服务
ping www.bilibili.com # 测试网络连接
如果为无线连接,则还需要启动iwd