一、预备条件
- 一台已经安装过系统的电脑和U盘:用于制作启动盘
- 镜像源:制作启动盘需要将系统先写入U盘,为了加快下载速度,这里可以选择清华的系统镜像,我使用的是2021.4.1的版本
- 写入镜像:
- Windows下可以双击iso文件将里面的所有文件复制进准备好的U盘中
- Linux系统可以使用命令完成
sudo dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress oflag=sync # bs=4M 指定一个较为合理的文件输入输出块大小。 # status=progress 用来输出刻录过程总的信息。 # oflag=sync 用来控制写入数据时的行为特征。确保命令结束时数据及元数据真正写入磁盘,而不是刚写入缓存就返回。
二、安装
1. 进入BIOS
各个厂家的BIOS进入方式都不太相同,比较常见的有F12、F2、Del键等,这个大家根据各自的型号进入即可。进入后找到U盘作为启动项 boot即可。进入安装介质之后选择install,网上的教程一般都直接进入了,但是我在进入install前按下e键修改了最后的label信息,使其和U盘的分区名相一致,否则无法进入
2. 连接网络
# 连接网络(无线),有线网的话一般开机即可使用
iwctl #进入交互式命令行
device list #列出设备名,比如无线网卡看到叫 wlan0
station wlan0 scan #扫描网络
station wlan0 get-networks #列出网络 比如想连接CMCC-5AQ7这个无线
station wlan0 connect CMCC-5AQ7 #进行连接 输入密码即可
exit
# 获取dhcp
dhcpcd
3. 分区
一般Linux至少会分为3个区域,启动分区(/boot)、交换分区(虚拟内存)、根分区(/),其实还有很常见的home分区(/home)。我在这边为了方便起见就分了前三个区域。根据RedHat文档,/boot分区一般200MB左右,虚拟内存根据物理内存大小浮动,详情见其表格
# 分区 300m->efi 2G->交换 剩余->根目录
cfdisk /dev/sda
# 查看分区情况
fdisk -l
# 文件系统
mkfs.vfat /dev/sda1 # efi
mkswap -f /dev/sda2 # 交换分区
mkfs.ext4 /dev/sda3 # 根目录vm.bios.efi=0
4. 挂载并初始化
# 挂载
swapon /dev/sda2
mount /dev/sda3 /mnt
mkdir -p /mnt/boot/
mount /dev/sda1 /mnt/boot/
# 初始化基础软件包
pacstrap /mnt base base-devel linux linux-firmware dhcpcd iwd vim openssh avahi
# 生成分区表
genfstab -U /mnt >> /mnt/etc/fstab
# 查看分区表信息
cat /mnt/etc/fstab
5. 进入所安装的系统
# 进入挂载系统中
arch-chroot /mnt
# 常用软件开机自启动
systemctl enable dhcpcd iwd sshd avahi-daemon
# 更改根用户密码
passwd root
6. 设置时间同步
# 时间同步
timedatectl set-ntp true
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc
7. 配置grub引导
# 配置引导
pacman -S grub efibootmgr intel-ucode
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
grub-mkconfig > /boot/grub/grub.cfg
8. 完成安装
# 完成安装
exit # 退回安装环境#
umount -R /mnt # 卸载新分区
reboot # 重启
三、遇到的问题
1. 网卡不识别问题
我在安装环境中使用iwctl
命令能够识别出无线网卡,但是重启进入arch后却无法找到之前的那个无线网卡,在此记录一下解决方案
(1) 查看网卡型号
lspci -vnn |grep 0280
# 输出类似如下的信息
# 08:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM43142 802.11b/g/n [14e4:4365] (rev 01)
(2) 根据这个网卡型号,去Google可得出是博通网卡驱动问题,需要手动安装,前提是需要先加入ArchlinuxCN仓库(是由 Arch Linux 中文社区驱动的非官方软件仓库,包含许多官方仓库未提供的额外的软件包),这里为了提升下载速度我选用清华的镜像
cat << EOF >> /etc/pacman.conf
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
EOF
sudo pacman -Syy && sudo pacman -S archlinuxcn-keyring
(3) 安装驱动
pacman -S linux-headers
pacman -S broadcom-wl-dkms
(4) 重启进入系统,并使用iwctl连接无线网
2. 盖上盒子休眠
# 修改文件里的HandleLidSwitch为ignore
vim /etc/systemd/logind.conf
# 重启
reboot
3. 使用root用户无法ssh
在使用root用户登录的时候即使密码正确也还一直提示“Permission denied, please try again.”
# 找到PermitRootLogin这一选项取消注释并修改为yes
vim /etc/ssh/sshd_config
# 重启ssh服务
systemctl restart sshd
4. 开机连接wifi
# 安装网络管理包
pacman -S wpa_supplicant dialog netctl
# 使用wifi-menu创建profile
wifi-menu
# 查看profile,会有类似于wlan0-XXX之类的文件
ls /etc/netctl/
# 设置开机启动,最后一个参数就是上一步看到的文件名
netctl enable wlan0-XXX
参考
https://archlinuxstudio.github.io/ArchLinuxTutorial/#/rookie/basic_install