安装前准备工作
下载镜像文件
- archlinux-x86_64.iso
-
b2sums.txt
可以选择官网下载,我这里下载磁力链接后下载速度为0,所以最后从阿里镜像站点下载的。
验证文件真实性
$ b2sum -c b2sums.txt
archlinux-2024.04.01-x86_64.iso: OK
archlinux-x86_64.iso: OK
b2sum: archlinux-bootstrap-2024.04.01-x86_64.tar.gz: No such file or directory
archlinux-bootstrap-2024.04.01-x86_64.tar.gz: FAILED open or read
b2sum: archlinux-bootstrap-x86_64.tar.gz: No such file or directory
archlinux-bootstrap-x86_64.tar.gz: FAILED open or read
b2sum: WARNING: 2 listed files could not be read
这里第一行和第二行都显示OK,表示验证通过,后边两个文件显示FAILED open or read
是因为没有下载。
我电脑上之前安装过git,使用git的命令行运行以上命令进行验证。
创建虚拟机
我是用的是windows自带的Hyper-V创建的虚拟机,如何创建虚拟机可以参考怎么创建Hyper-V虚拟机。我的虚拟机配置如下:
首先进行光驱配置,打开虚拟机的配置项,选中SCSI控制器,添加光驱:
应用
:然后选择固件,也就是设置启动顺序,将光驱启动移动到最上边,点击应用
:
最后设置安全,这里一定不要勾选
安全引导方式,不然进入不了引导程序(虚拟机安装Arch Linux无法进入安装引导程序),点击应用
、确定
:
启动虚拟机
接着上边的步骤,点击启动
按钮启动虚拟机:
选择安装模式
正常情况下应该进入引导系统,如以下界面,这里选择默认的第一种方式(可以通过上下箭头选择其它菜单项),然后点击Enter (或者等待5秒)进入安装程序:检查引导模式
通过上一步,进入到具有root权限虚拟控制台,下边检查引导模式:
cat /sys/firmware/efi/fw_platform_size
输出如下:检查是否连接网络
ping archlinux.org
正常情况下是可以看到如下,按下Ctrl+c
可以结束ping:
对硬盘进行分区
可以参考我的教程:fdisk分区工具学习。下图是我的硬盘分区结果:
格式化分区
首先格式化EFI分区,这个在物理机上操作时需要慎重
,双系统安装可以跳过这一步骤,安装完成后,将ArchLinux添加到之前的efi引导程序菜单,否则格式化后可能无法引导到之前的系统。
mkfs.fat -F 32 /dev/sda1
然后格式化swap分区,该分区主要作为内存扩展,当内存不够是,可以作为内存使用。
mkswap /dev/sda2
最后格式化文件系统分区,之后作为系统的根目录。
mkfs.ext4 /dev/sda3
最后的硬盘分区格式化(初始化)的结果如下图:挂载系统分区
按照下边命令顺序挂载文件系统。
# 将/dev/sda3挂载位根目录/
mount /dev/sda3 /mnt
# 将引导分区挂在到/boot目录
mount --mkdir /dev/sda1 /mnt/boot
# 初始化交换分区
swapon /dev/sda2
开始安装系统
首先安装基础软件包base:
pacstrap -K /mnt base
运行结果如下,安装基础包成功:然后安装固件软件包linux-firmware(相当于驱动):
# 虚拟机安装可以跳过
pacstrap -K /mnt linux-firmware
运行结果如下,安装固件成功:最后安装ArchLinux核心包linux:
pacstrap -K /mnt linux
运行结果如下,安装linux核心成功:初始化配置系统:
生成fstab文件,记得加上-U
(使用UUID)或者-L
(使用labels标签)参数(如果报错,可以通过/mnt/etc/fstab
文件查找错误信息):
genfstab -U /mnt >> /mnt/etc/fstab
root用户切换到新系统,在切换之后/
目录就是之前的/mnt
目录了:
arch-chroot /mnt
设置时区和硬件时钟:
# 设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 设置硬件时钟
hwclock --systohc
进行本地化配置,主要是指语言和编码,这里使用英语和UTF-8。首先要生成语言文件:
# 将en_US.UTF-8 UTF-8写入文件/etc/locale.gen最后一行:
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
# 生成英语UTF-8的语言文件
locale-gen
运行结果如下则成功:然后,设置本地语言为英语UTF-8:
# 将LANG=en_US.UTF-8写入文件/etc/locale.conf
echo "LANG=en_US.UTF-8" > /etc/locale.conf
设置主机名称:
echo 'archlinux' >> /etc/hostname
设置密码,输入passwd
后需要输入两次密码,两次输入一致才会设置成功:
passwd
选择兼容linux的引导系统,我们选择GRUB引导系统。 首先安装grub和efibootmgr软件包,中间需要输入一次y
同意安装:
pacman -S grub efibootmgr
然后正式安装grub引导程序到efi分区
/boot
:
# efi引导分区为/boot
# grub相关功能模块安装到/boot/x86_64-efi
# grub引导程序名称为GRUB
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
最后完成grub配置:
# 生成配置文件到/boot/grub/grub.cfg
grub-mkconfig -o /boot/grub/grub.cfg
到这里就完成ArchLinux系统的初始化配置了。
进行重启
在重启reboot
之前弹出光驱中的安装盘。
# 生成配置文件到/boot/grub/grub.cfg
# 退出安装的新系统
exit
# 卸载硬盘
umount -R /mnt
# 重启
reboot
选择第一行进入新系统:输入用户名密码登录:
最后终于完成ArchuLinux安装了,虽然过程很坎坷,但是最终还是安装成功了,之后会给遇到的问题进行整理发布。如果安装遇到问题,欢迎大家留言一起探讨。