ubuntu用kvm安装archlinux详细步骤

868 阅读7分钟

Arch Linux 是通用 x86-64 GNU/Linux 发行版。Arch采用滚动升级模式,尽全力提供最新的稳定版软件。初始安装的Arch只是一个基本系统,随后用户可以根据自己的喜好安装需要的软件并配置成符合自己理想的系统.

一、准备

1.kvm环境

如需要教程,可参考ubuntu20.04安装KVM虚拟机第一、二、三部分,注意:如要支持UEFI,还需要确保KVM宿主机安装了 OVMF

2. archlinux ISO镜像

下载地址: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安装虚拟机系统的界面了

2022-04-01_15-51-37.png

注意: 此时的根目录位于加载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:余下的空间作为根目录,有关交互命令:

m 帮助 g 创建格式的硬盘 p 创建分区 w 保存配置

2022-04-01_16-21-13.png

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.设置时区:

格式:ln -sf /usr/share/zoneinfo/Region(地区名)/City(城市名) /etc/localtime


[root@archiso /]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #将时区设为上海

[root@archiso /]# hwclock --systohc #生成 /etc/adjtime:

3.本地化

程序和库如果需要本地化文本,都依赖区域设置,后者明确规定了地域、货币、时区日期的格式、字符排列方式和其他本地化标准。

1)字符编码设置

需在这两个文件设置:locale.genlocale.conf

编辑/etc/locale.gen,然后取消掉 en_US.UTF-8 UTF-8zh_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

将系统 locale 设置为 en_US.UTF-8 ,系统的 log 就会用英文显示,这样更容易判断和处理问题;

设置的 LANG 变量需与 locale 设置一致,否则会出现错误 Cannot set LC_CTYPE to default locale: No such file or directory

不推荐在此设置任何中文 locale,会导致 tty 乱码。

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) 安装软件包 grubefibootmgr


[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系统。

2022-04-02_10-31-46.png