一、准备
1.kvm环境
如需要教程,可参考ubuntu20.04安装KVM虚拟机第一、二、三部分,注意:如要支持UEFI,还需要确保KVM宿主机安装了 OVMF
2. archlinux ISO镜像
下载地址:https://archlinux.org/download/ ,注意找中国的服务器下载。
3.官方文档(安装时查阅)
正如见过的其他教程一样,推荐学习官方wiki文档,因为很多专业术语都能找到相应的知识。
二、创建虚拟机
创建虚拟机有virt-manager图形化工具安装方式和virt-install命令安装方式,见ubuntu20.04安装KVM虚拟机第四部分。
这里以命令方式创建:
# 创建磁盘镜像
$ qemu-img create -f qcow2 archlinux.qcow2 40G
# 创建archlinux虚拟机
$ sudo virt-install --name archlinux \
--os-variant=archlinux \
--memory 2048 --vcpus 2 \
--disk path=./archlinux.qcow2 \
--cdrom=/media/hollowman/软件/ISO/archlinux-2022.03.01-x86_64.iso \
--boot uefi \
--network bridge=virbr1
三、安装虚拟机
接下来,会就进入archlinux安装虚拟机系统的界面了
注意: 此时的根目录位于加载iso的安装环境(可以看到操作符为:root@archiso~#),并且默认情况下已经预配置好并启用了 systemd-networkd、systemd-resolved、iwd 和 ModemManager。不过,我们需要安装系统的磁盘镜像,此时还没有进行分区,因此还需要进行一些安装操作才能正常使用。
1.连接网络
iso安装环境已经包含的基础的联网功能,硬件环境也会自动识别。
用 ip address
来查看网络设备:
root@archiso~# ip link
用 ping
检查网络连接:
root@archiso~# ping archlinux.org
2.更新系统时间
用 timedatectl
命令确保系统时间是准确的
root@archiso~# timedatectl set-ntp true
用 timedatectl status
来检查时间服务状态。
root@archiso~# timedatectl status
3.建立硬盘分区
用fdisk -l
查看设备,找到磁盘设备名,我这里查看后是/dev/vda
root@archiso~# fdisk -l
archlinux用uefi启动,至少需要三个分区(efi分区,swap交换分区和根分区/)
用fdisk /dev/vda
来对/dev/vda进行分区操作:
root@archiso~# fdisk /dev/vda
这里创建:/dev/vda1:500M,/dev/vda2:2G,/dev/vda3:余下的空间作为根目录,有关交互命令:
4.格式化分区
root@archiso~# mkfs.vfat -F 32 /dev/vda1 #/dev/vda1创建为vfat格式,作为uefi启动分区
root@archiso~# mkfs.ext4 /dev/vda3 #/dev/vda3创建为ext4格式,作为根分区
root@archiso~# mkswap /dev/vda2 #/dev/vda2创建为交换分区
root@archiso~# swapon /dev/vda2 #启用交换分区
5.挂载分区
root@archiso~# mount /dev/vda3 /mnt #根分区挂在到/mnt目录
root@archiso~# mkdir /mnt/boot
root@archiso~# mount /dev/vda1 /mnt/boot #启动分区挂载到/mnt/boot目录
6.将系统安装到磁盘镜像
1) 更新安装源列表
archlinux的iso安装环境通过pacstrap脚本进行安装的,其中安装源位于/etc/pacman.d/mirrorlist
文件中,并且是从上往下依次查找服务器,因此,需要将下载速率快的源(国产源)放在文件的最顶端,如清华的:Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
root@archiso~# vim /etc/pacman.d/mirrorlist #在最上方添加清华大学的安装源
2) 安装必需的软件包
使用pacstrap
脚本,安装base软件包、Linux内核以及常规硬件的固件:
root@archiso~# pacstrap /mnt base linux linux-firmware
安装vim的原因是,后续配置系统需要编辑一些配置文件,而base基本软件包并不包含vim软件。
base-devel包中包括了gcc,make,sudo等等基础开发包,如果你是开发人员建议安装,如果仅仅使用安装base即可,这里先不安装。
3) 建议安装的常用软件包
文本编辑器vim ,联网工具dhcpcd,页面帮助工具man-db 及 openssh都是建议安装的工具,这些软件对后续安装及系统开机配置都有着重要的作用。
root@archiso~# pacstrap /mnt vim dhcpcd man-db openssh
7. 生成fstab文件
用以下命令生成 fstab 文件 (用 -U 或 -L 选项设置 UUID 或卷标):
root@archiso~# genfstab -U /mnt >> /mnt/etc/fstab
强烈建议在执行完以上命令后,检查一下生成的 /mnt/etc/fstab 文件是否正确。
root@archiso~# cat /mnt/etc/fstab
至此,基本的系统已经安装到了磁盘镜像中,只不过这个系统算是最小化安装,需要进行本地化配置、网络配置、个性化安装等操作才可以形成一个可用的个性化系统。
四、配置系统
1.改变根目录
之前的操作,根目录位于ISO的安装环境,而对磁盘镜像系统的一些配置可以切换到其本身根目录(/dev/vda3),也就是ISO安装环境的/mnt目录。
root@archiso~# arch-chroot /mnt
[root@archiso /]#
注意看,切换root目录后,命令提示符发生了变化。
2.设置时区:
[root@archiso /]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #将时区设为上海
[root@archiso /]# hwclock --systohc #生成 /etc/adjtime:
3.本地化
程序和库如果需要本地化文本,都依赖区域设置,后者明确规定了地域、货币、时区日期的格式、字符排列方式和其他本地化标准。
1)字符编码设置
需在这两个文件设置:locale.gen
与 locale.conf
。
编辑/etc/locale.gen
,然后取消掉 en_US.UTF-8 UTF-8
和 zh_CN.UTF-8 UTF-8
前的注释(#)。
[root@archiso /]# vim /etc/locale.gen
接着执行 locale-gen
以生成 locale 信息:
[root@archiso /]# locale-gen
然后创建 locale.conf
文件,并编辑设定 LANG 变量,比如:
[root@archiso /]# vim /etc/locale.conf
LANG=en_US.UTF-8
2)键盘布局修改
制台键盘布局默认为 us(美式键盘映射),如果你的键盘布局不是这个,则需要修改。
列出所有可用的键盘布局,可以使用:
[root@archiso /]# ls /usr/share/kbd/keymaps/**/*.map.gz
如果您想要更改键盘布局,如德语键盘布局(文件名为 sunt5-de-latin1.map.gz
),你只需要将与该键盘布局一致的文件名添加进 loadkeys,但请省略路径和扩展名。
[root@archiso /]# loadkeys de-latin1
4.网络配置
1) 主机名设置
[root@archiso /]# vim /etc/hostname
hollowman.cn #添加你要设置的主机名
也可以通过hostnamectl命令直接创建主机名:
[root@archiso /]# hostnamectl set-hostname hollowman.cn
2) 其他网络配置
之前安装的 base 包并不含有任何网络管理工具。对于新安装的系统环境,请接着完成网络配置,配置过程中可能包括要安装合适的网络管理软件。 如果之前没有安装dhcpcd,这里也可以进行安装。
[root@archiso /]# pacman -S dhcpcd
5.Initramfs
通常不需要自己创建新的 initramfs,因为在执行 pacstrap 时已经安装 linux,并且已经运行过 mkinitcpio 了,因此,一般来说这一步可略过。
对于 LVM、 system encryption 或 RAID 等分区配置,请修改 mkinitcpio.conf 并用以下命令重新创建一个 Initramfs:
[root@archiso /]# mkinitcpio -P
6.Root密码
[root@archiso /]# passwd
7.安装引导程序
只有安装 Linux 引导加载程序,才能在安装后启动系统,可以使用的的引导程序已在 启动加载器 中列出,请选择一个安装并配置它,GRUB (简体中文) 是最常见的选择。
1) 安装软件包 grub
和 efibootmgr
[root@archiso /]# pacman -S grub efibootmgr
2) 用grub-install命令命令安装grub引导程序到磁盘镜像:
[root@archiso /]# grub-install --target=x86_64-efi --efi-directory=/boot
3) 生成主配置文件
[root@archiso /]# grub-mkconfig -o /boot/grub/grub.cfg
五、重启和使用
输入 exit 或按 Ctrl+d 退出磁盘镜像根目录 ,回到 ISO安装环境。
输入 reboot 重启,需移除iso,否则仍会从iso启动
使用安装成功的archlinux系统。