ArchLinux入坑教程

2021-06-19


ArchLinux简介

Arch Linux 是通用 x86-64 GNU/Linux 发行版。Arch采用滚动升级模式,尽全力提供最新的稳定版软件。初始安装的Arch只是一个基本系统,随后用户可以根据自己的喜好安装需要的软件并配置成符合自己理想的系统。Arch Linux 是通用发行版,初始安装仅提供命令行环境:用户不需要删除大量不需要的软件包,而是可以从官方软件仓库成千上万的高质量软件包中进行选择,搭建自己的系统。如过你有闲工夫折腾,ArchLinux完全能胜任你的主力机。

个人观点

安装ArchLinux的过程,同时也是一个学习Linux的过程,期间你可能会遇到各种各样的问题,当你把问题都解决后,我相信你的能力也有所提高了

前期准备

准备一个USB存储设备,比如U盘,4G就够了 下载ArchLinux镜像 制作启动盘,推荐工具Rufus,将你下载好的镜像以DD的方式写入U盘

1.开始安装

启动到 Live 环境,Arch Linux 安装镜像不支持安全启动(Secure Boot)请提前在BIOS中禁用安全启动

1.1验证启动模式

# ls /sys/firmware/efi/efivars

如果命令没有错误地显示了目录,则系统以 UEFI 模式启动。 如果目录不存在,系统可能以 BIOS 模式启动

1.2连接网络

有线网络,插上网线就行,下面介绍一下无线网络的连接方法

ArchLinux ISO 自带了无线网络连接工具iwd 这里简述一下iwd的使用方法

iwctl #启动iwd工具
device list # 查看网卡设备
station device scan # 扫描网络
station device get-networks # 列出所有可用的网络
station device connect SSID # 连接到指定网络,SSID为WIFI名,如果有密码就输入密码
quit #退出iwd

如果上述命令[iwd#] device list 中发现网卡处于off状态,请看下面的注意事项

注意事项:许多笔记本都有一个硬件按钮或开关用于关闭无线网卡,然而无线网卡也可以通过内核来屏蔽。这一任务可由rfkill处理 P.S.我的笔记本就是这种情况,需要手动开启网卡,使用命令rfkill unblock wifi

还有一点就是,并不是所有网卡Linux内核都支持,就比如我笔记本的垃圾网卡rtl8821ce,虽然有办法编译安装内核模块,但是非常不稳定,所以为了更好的体验ArchLinux,我给自己的电脑换了块无线网卡Intel AX200,还支持WiFi6,美滋滋!

1.3换源

reflector -c China -a 6 --sort rate --save /etc/pacman.d/mirrorlist # 获取速度最快的6个镜像源,保存至/etc/pacman.d/mirrorlist
pacman -Syyy # 更新镜像源

1.4更新系统时间

timedatectl set-ntp true

1.5建立硬盘分区

这里 推荐使用cfdisk工具,上手比较简单 cfdisk -l 查看硬盘 cfdisk /dev/要分区的盘

分区示例
挂载点 分区 分区类型 建议大小
/mnt/efi /dev/efi_system_partition EFIsystem 300M
/mnt /dev/root_partition Linuxx86-64root 36G
[swap] /dev/swap_partition Linuxswap 8G
/mnt/home /dev/home_partition Linuxhome 剩余空间

1.6格式化分区

mkfs.fat -F32 /dev/efi_system_partition # 格式化EFI分区
mkfs.ext4 /dev/root_partition # 格式化root分区
mkfs.ext4 /dev/home_partition # 格式化home分区
mkswap /dev/swap_partition #初始化swap分区

1.7挂载分区

mount /dev/root_partition /mnt # 先挂载root分区
mkdir /mnt/efi # 创建挂载点
mkdir /mnt/home # 创建挂载点
mount /dev/efi_system_partition /mnt/efi #挂载EFI分区
mount /dev/home_partition /mnt/home #挂载home分区
swapon /dev/swap_partition # 启用swap分区

2.配置系统

2.1安装基本的软件包

pacstrap /mnt base linux linux-firmware vim 可选内核linux-lts linux-zen linux-hardened

2.2生成 fstab 文件

genfstab -U /mnt >> /mnt/etc/fstab
cat /mnt/etc/fstab # 检查文件是否正确

2.3进入安装的系统

arch-chroot /mnt

2.4设置时区

ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc # 同步硬件时钟

2.5设置本地化

vim /etc/locale.gen # 编辑locale.gen文件
# 取消以下注释
#en_US UTF-8
#zh_CN UTF-8
locale-gen # 生成 locale 信息
vim /etc/locale.conf #创建locale.conf文件
# 输入以下内容,指定系统区域语言
LANG=en_US.UTF-8 # 不建议改成中文,中文命令行可能会乱码
# 或者用以下命令
localectl set-locale LANG=zh_CN.UTF-8

2.6设置网络

vim /etc/hostname # 创建hostname文件,输入主机名,例如lsp
vim /etc/hosts # 添加对应的信息到hosts,内容如下
127.0.0.1	localhost
::1		localhost
127.0.1.1	lsp.localdomain	lsp # 主机名.本地域名 主机名

2.7 创建root密码

passwd

2.8 创建普通用户

# 让普通用户可以执行root命令
visudo 
# 取消下面的注释
# %wheel ALL=(ALL) ALL
useradd -m ielave # 创建普通用户ielave
usermod -aG wheel,audio,video,optical,storage ielave # 将之添加到以上组
passwd ielave # 修改密码

2.9 安装引导(这一步非常关键)

安装微码 pacman -S amd-ucode 对于 AMD 处理器,安装 amd-ucode 对于 Intel 处理器,安装 intel-ucode

2.9.1 grub引导

pacman -S os-prober grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=ArchLinux
grub-mkconfig -o /boot/grub/grub.cfg # 生成grub配置文件

2.9.2 systemd-boot引导

bootctl install 系统自带的命令 这时会在boot目录下生成一个loader文件 ,在EFI目录下生成Linux和systemd文件 cd /boot/loader 会发现有两个文件一个目录 loader.conf 可以修改引导选项的超时时间 entries目录下可自定义引导内容 cd entries/ vim ArchLinux.conf输入以下内容

title	ArchLinux
linux	/vmlinuz-linux # lts内核改成 vmlinuz-linux-lts
initrd	/amd-ucode.img # intel CPU改成 intel-ucode
initrd	/initramfs-linux.img # lts内核改成initramfs-linux-lts.img
options root="PARTUUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" rw # 根分区的  PARTUUID

根分区的PARTUUID,可以通过blkid命令可查询到,在vim中,可在命令模式下,使用命令r! blkid直接读取到文件中,然后复制粘贴就行了。以上的引导内容都可在/boot目录下找到

2.10 安装网络工具

pacman -S iwd dhcpd # 不装你就白给

3.重启

exit # 退出当前系统
umount -R /mnt/efi
umount -R /mnt/home
umount -R /mnt # 手动卸载被挂载的分区
reboot # 重启系统

4.安装后的工作

4.1连接网络

启动以下服务(start 启动 enable 开机自启)

systemctl start iwd.service # WIFI连接工具
systemctl enable iwd.service
systemctl start systemd-resolved.service # 域名解析
systemctl enable systemd-resolved.service
systemctl start dhcpd.service # dhcp
systemctl enable dhcpd.service

然后使用iwd工具正常联网,可能先得启用网卡 rfkill unblock wifi 到此为止,基本的ArchLinux就安装完毕了!!!