ArchLinux十分精简,并且具有强大的滚动更新。最近在基于ubuntu的宿主机下通过KVM-QEMU虚拟机安装了archlinux,将过程记录下来以供参考。

1、下载启动盘

1.1、下载archlinux镜像文件

1.2、确保KVM宿主机安装了ovmf

因为UEFI模式需要特殊配置,KVM虚拟机需要安装相应组件ovmf,如果没有安装则安装之。

sudo apt install ovmf

2、进入安装系统

2.1、启动安装环境

命令行创建磁盘文件:

qemu-img create -q -f qcow2 archlinux.img 40G

创建虚拟机并启动,创建脚本中需要明确指明UEFI启动模式:–boot=uefi

sudo virt-install –connect qemu:///system \

–name archlinux \

–ram 2048 \

–vcpus=2 \

–disk path=/data/archlinux/archlinux.img,device=disk,bus=ide,size=60 \

–cdrom /home/neo/iso/archlinux-2020.02.01-x86_64.iso \

–os-type=auto \

–network bridge=br0,model=virtio,model=e1000 \

–hvm \

–os-variant=auto \

–graphics vnc,listen=0.0.0.0,port=5913 \

–virt-type=kvm \

–boot=uefi \

–noautoconsole

附:如果安装失败,需要清除虚拟磁盘,则执行以下命令即可:

virsh destroy archlinux

virsh –connect qemu:///system undefine –nvram archlinux

安装过程启动以后,通过VNC客户端连接主机

archlinux+UEFI模式在linux主机下基于KVM-QEMU命令行虚拟机安装笔记-LMLPHP

archlinux+UEFI模式在linux主机下基于KVM-QEMU命令行虚拟机安装笔记-LMLPHP

在这里执行安装过程和配置。

2.2、连接网络

arch的安装环境已经包含的基础的联网功能,硬件环境也会自动识别。有线网络使用dhcpcd命令。无限网络使用wif-menu命令找到相应无线id配置密码。设置完成之后通过ping命令来看看网络是否连接。

2.3、更新系统时间

timedatectl set-ntp true

2.4、增加国内镜像源

系统自带vim编辑器。在/etc/pacman.d/mirrorlist文件的开头加入清华源:Server = http://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch

vi /etc/pacman.d/mirrorlist

3、系统分区

接下来我们将对硬盘进行分区和安装文件系统。我们可以根据自己的需要进行分区方案选择。一般来说,我们需要,

一个分区:挂载我们的根目录

一个分区:挂载我们的引导目录,使用UEFI建议256M。

一个分区(可选):挂载交换分区。swap分区没有一个完美的值。你的内存紧张就多分点,反之同理。我8G的内存,分配了8G的swap空间。

如果你想把你的home目录分在一个单独的分区。你也可以再划分一个分区挂载home目录。

更多的分区知识和格式知识可以通过网络自己学习。

3.1、使用fdisk进行磁盘分区

fdisk /dev/sda

fdisk的使用方法可以通过网络学习,本次只用到几个命令,本次一共分了三个分区,1)UEFI启动分区,2)ext4分区,3)swap虚拟内存分区,最后通过w命令将分区写入磁盘。

archlinux+UEFI模式在linux主机下基于KVM-QEMU命令行虚拟机安装笔记-LMLPHP

使用parted工具将UEFI分区进行激活,否则可能会无法进行启动。

parted /dev/sda

(parted) set 1 boot on

(parted) q

3.2、创建文件系统

上节,我们分配了引导分区boot,交换分区swap,根分区/ ,对于文件系统的知识,可以去网络上搜索学习。

mkfs.fat -F32 /dev/sda1

mkfs.ext4 /dev/sda2

对于交换分区swap我们还要将其激活

mkswap /dev/sda2

swapon /dev/sda2

3.3、挂载分区

将根分区挂载到/mnt

mount /dev/sda2 /mnt

将引导分区挂载到/mnt/boot。

mkdir /mnt/boot

mount /dev/sda1 /mnt/boot

4、安装系统

4.1、安装基础包

pacstrap /mnt base base-devel

base-devel包中包括了gcc,make,sudo等等基础开发包。如果你是开发人员建议安装。如果仅仅使用安装base即可。

安装linux kernel

4.2、配置分区表

genfstab -U /mnt >> /mnt/etc/fstab

4.3、进入新系统

arch-chroot /mnt

此时我们就从U盘安装环境转移到我们的新安装系统中。

4.4、配置时区

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

hwclock –systohc

4.5、安装vi编辑器

因为新系统只安装了基本环境,没有包含编辑器工具,所以需要手工安装

pacman -S vi

4.6、本地化设置

进行本地化设置以正确显示本地文字和时间等标准。

编辑 /etc/locale.gen 文件。找到zh_CN.UTF-8 UTF-8和en_US.UTF-8 UTF-8,将’#’注释去掉

vi /etc/locale.gen

然会执行 locale-gen生成locale。

locale-gen

将 LANG=en_US.UTF-8 加入 /etc/locale.conf

vi /etc/locale.conf

4.7、设置主机名

在 /etc/hostname 文件的第一行输入你的host名(自己取个喜欢的名字)

vi /etc/hostname

编辑 /etc/hosts文件,添加以下内容(hostname为你的host名)

127.0.0.1 localhost.localhost localhost

::1 localhost.localhost localhost

127.0.1.1 archlinux.myvps localhost

vi /etc/hosts

4.8、设置root密码

使用passwd命令为root用户增加密码

passwd

4.9、安装Intel-ucode(非Inter CPU不需要)

pacman -S intel-ucode

4.10、安装引导

UEFI 系统的引导如下:

pacman -S grub efibootmgr

grub-install –target=x86_64-efi –efi-directory=/boot –bootloader-id=arch_grub –recheck –debug

EFI分区挂载点根据自己的当时分区方案改变。比如我的就是 /boot。

安装linux核心

pacman -S linux

默认值回车

archlinux+UEFI模式在linux主机下基于KVM-QEMU命令行虚拟机安装笔记-LMLPHP

创建启动配置文件

grub-mkconfig -o /boot/grub/grub.cfg

5、用户管理,安装必要软件

5.1、添加用户

毕竟一直使用root用户是十分不安全的,我们需要创建一个自己的工作用户。(将Name换成自己的用户名)

useradd -m -g users -G wheel -s /bin/bash Name

修改用户密码

passwd Name

如果你没有安装base-devel,则需要安装一下sudo

pacman -S sudo

编辑/etc/sudoers文件,在 root ALL=(ALL) ALL下边添加下面一行信息。

%wheel ALL=(ALL) ALL

vi /etc/sudoers

添加完以后通过以下命令退出vi变价器

:wq!

这样你的用户就可以使用sudo命令了。

5.3、安装其他工具

因为我们只是安装了基本系统,所以需要安装一些相应的工具:

pacman -S net-tools

pacman -S dhcpcd

pacman -S man

pacman -S openssh

6、重启电脑

至此,archLinux的基本安装已经完成。我们重启电脑之后,拔掉u盘,就可进入Arch的系统了。

exit

reboot

7、执行重启命令以后,KVM可能并不会真的重启,所以需要在宿主机环境下手工重新启动一下虚拟机

virsh start archlinux

再次打开VNC客户端连接虚拟机即可正常操作系统了,进入系统以后可以通过dhcpcd连接网络,后续需要一些其他工具软件安装,等以后再写笔记。

archlinux+UEFI模式在linux主机下基于KVM-QEMU命令行虚拟机安装笔记-LMLPHP

09-03 02:56